{"version":3,"sources":["./$_lazy_route_resource lazy namespace object","./node_modules/moment/locale sync ^\\.\\/.*$","./src/app/app.component.html","./src/app/common/home/home.component.html","./src/app/common/main/main.component.html","./src/app/common/side-menu/side-menu.component.html","./src/app/common/top-bar/top-bar.component.html","./src/app/features/authentication/create-user/create-user.component.html","./src/app/features/authentication/list-users/list-users.component.html","./src/app/features/authentication/login/login.component.html","./src/app/features/authentication/update-users/update-users.component.html","./src/app/features/materials/create-material/create-material.component.html","./src/app/features/materials/import-bulk-materials/import-bulk-materials.component.html","./src/app/features/materials/list-materials/list-materials.component.html","./src/app/features/materials/update-materials/update-materials.component.html","./src/app/features/orders/create-order/create-order.component.html","./src/app/features/orders/list-orders/list-orders.component.html","./src/app/features/orders/update-order/update-order.component.html","./src/app/features/proyects/create-proyect/create-proyect.component.html","./src/app/features/proyects/import-blulk-proyects/import-blulk-proyects.component.html","./src/app/features/proyects/list-proyects/list-proyects.component.html","./src/app/features/proyects/reports/project-orders/project-orders.component.html","./src/app/features/proyects/update-proyect/update-proyect.component.html","./src/app/features/scopes/create-scopes/create-scopes.component.html","./src/app/features/scopes/list-scopes/list-scopes.component.html","./src/app/features/scopes/update-scopes/update-scopes.component.html","./src/app/features/suppliers/create-supplier/create-supplier.component.html","./src/app/features/suppliers/list-suppliers/list-suppliers.component.html","./src/app/features/suppliers/update-supplier/update-supplier.component.html","./node_modules/tslib/tslib.es6.js","./src/app/app-routing.module.ts","./src/app/app.component.css","./src/app/app.component.ts","./src/app/app.module.ts","./src/app/auth/auth.guard.ts","./src/app/common/helpers/custom-currency-pipe.ts","./src/app/common/home/home.component.css","./src/app/common/home/home.component.ts","./src/app/common/main/main.component.css","./src/app/common/main/main.component.ts","./src/app/common/shared/GlobalConstans.ts","./src/app/common/side-menu/side-menu.component.css","./src/app/common/side-menu/side-menu.component.ts","./src/app/common/top-bar/top-bar.component.css","./src/app/common/top-bar/top-bar.component.ts","./src/app/features/authentication/create-user/create-user.component.css","./src/app/features/authentication/create-user/create-user.component.ts","./src/app/features/authentication/list-users/list-users.component.css","./src/app/features/authentication/list-users/list-users.component.ts","./src/app/features/authentication/login/login.component.css","./src/app/features/authentication/login/login.component.ts","./src/app/features/authentication/update-users/update-users.component.css","./src/app/features/authentication/update-users/update-users.component.ts","./src/app/features/materials/create-material/create-material.component.css","./src/app/features/materials/create-material/create-material.component.ts","./src/app/features/materials/import-bulk-materials/import-bulk-materials.component.css","./src/app/features/materials/import-bulk-materials/import-bulk-materials.component.ts","./src/app/features/materials/list-materials/list-materials.component.css","./src/app/features/materials/list-materials/list-materials.component.ts","./src/app/features/materials/update-materials/update-materials.component.css","./src/app/features/materials/update-materials/update-materials.component.ts","./src/app/features/orders/create-order/create-order.component.css","./src/app/features/orders/create-order/create-order.component.ts","./src/app/features/orders/list-orders/list-orders.component.css","./src/app/features/orders/list-orders/list-orders.component.ts","./src/app/features/orders/update-order/update-order.component.css","./src/app/features/orders/update-order/update-order.component.ts","./src/app/features/proyects/create-proyect/create-proyect.component.css","./src/app/features/proyects/create-proyect/create-proyect.component.ts","./src/app/features/proyects/import-blulk-proyects/import-blulk-proyects.component.css","./src/app/features/proyects/import-blulk-proyects/import-blulk-proyects.component.ts","./src/app/features/proyects/list-proyects/list-proyects.component.css","./src/app/features/proyects/list-proyects/list-proyects.component.ts","./src/app/features/proyects/reports/project-orders/project-orders.component.css","./src/app/features/proyects/reports/project-orders/project-orders.component.ts","./src/app/features/proyects/update-proyect/update-proyect.component.css","./src/app/features/proyects/update-proyect/update-proyect.component.ts","./src/app/features/scopes/create-scopes/create-scopes.component.css","./src/app/features/scopes/create-scopes/create-scopes.component.ts","./src/app/features/scopes/list-scopes/list-scopes.component.css","./src/app/features/scopes/list-scopes/list-scopes.component.ts","./src/app/features/scopes/update-scopes/update-scopes.component.css","./src/app/features/scopes/update-scopes/update-scopes.component.ts","./src/app/features/suppliers/create-supplier/create-supplier.component.css","./src/app/features/suppliers/create-supplier/create-supplier.component.ts","./src/app/features/suppliers/list-suppliers/list-suppliers.component.css","./src/app/features/suppliers/list-suppliers/list-suppliers.component.ts","./src/app/features/suppliers/update-supplier/update-supplier.component.css","./src/app/features/suppliers/update-supplier/update-supplier.component.ts","./src/app/services/auth.service.ts","./src/app/services/storage/upload-images.service.ts","./src/app/services/ui.service.ts","./src/environments/environment.ts","./src/main.ts","fs (ignored)","crypto (ignored)","stream (ignored)"],"names":[],"mappings":";;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA,4CAA4C,WAAW;AACvD;AACA;AACA,wE;;;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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","file":"main-es2015.js","sourcesContent":["function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"./$$_lazy_route_resource lazy recursive\";","var map = {\n\t\"./af\": \"./node_modules/moment/locale/af.js\",\n\t\"./af.js\": \"./node_modules/moment/locale/af.js\",\n\t\"./ar\": \"./node_modules/moment/locale/ar.js\",\n\t\"./ar-dz\": \"./node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-dz.js\": \"./node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-kw\": \"./node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-kw.js\": \"./node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-ly\": \"./node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ly.js\": \"./node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ma\": \"./node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-ma.js\": \"./node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-sa\": \"./node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-sa.js\": \"./node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-tn\": \"./node_modules/moment/locale/ar-tn.js\",\n\t\"./ar-tn.js\": \"./node_modules/moment/locale/ar-tn.js\",\n\t\"./ar.js\": \"./node_modules/moment/locale/ar.js\",\n\t\"./az\": \"./node_modules/moment/locale/az.js\",\n\t\"./az.js\": \"./node_modules/moment/locale/az.js\",\n\t\"./be\": \"./node_modules/moment/locale/be.js\",\n\t\"./be.js\": \"./node_modules/moment/locale/be.js\",\n\t\"./bg\": \"./node_modules/moment/locale/bg.js\",\n\t\"./bg.js\": \"./node_modules/moment/locale/bg.js\",\n\t\"./bm\": \"./node_modules/moment/locale/bm.js\",\n\t\"./bm.js\": \"./node_modules/moment/locale/bm.js\",\n\t\"./bn\": \"./node_modules/moment/locale/bn.js\",\n\t\"./bn-bd\": \"./node_modules/moment/locale/bn-bd.js\",\n\t\"./bn-bd.js\": \"./node_modules/moment/locale/bn-bd.js\",\n\t\"./bn.js\": \"./node_modules/moment/locale/bn.js\",\n\t\"./bo\": \"./node_modules/moment/locale/bo.js\",\n\t\"./bo.js\": \"./node_modules/moment/locale/bo.js\",\n\t\"./br\": \"./node_modules/moment/locale/br.js\",\n\t\"./br.js\": \"./node_modules/moment/locale/br.js\",\n\t\"./bs\": \"./node_modules/moment/locale/bs.js\",\n\t\"./bs.js\": \"./node_modules/moment/locale/bs.js\",\n\t\"./ca\": \"./node_modules/moment/locale/ca.js\",\n\t\"./ca.js\": \"./node_modules/moment/locale/ca.js\",\n\t\"./cs\": \"./node_modules/moment/locale/cs.js\",\n\t\"./cs.js\": \"./node_modules/moment/locale/cs.js\",\n\t\"./cv\": \"./node_modules/moment/locale/cv.js\",\n\t\"./cv.js\": \"./node_modules/moment/locale/cv.js\",\n\t\"./cy\": \"./node_modules/moment/locale/cy.js\",\n\t\"./cy.js\": \"./node_modules/moment/locale/cy.js\",\n\t\"./da\": \"./node_modules/moment/locale/da.js\",\n\t\"./da.js\": \"./node_modules/moment/locale/da.js\",\n\t\"./de\": \"./node_modules/moment/locale/de.js\",\n\t\"./de-at\": \"./node_modules/moment/locale/de-at.js\",\n\t\"./de-at.js\": \"./node_modules/moment/locale/de-at.js\",\n\t\"./de-ch\": \"./node_modules/moment/locale/de-ch.js\",\n\t\"./de-ch.js\": \"./node_modules/moment/locale/de-ch.js\",\n\t\"./de.js\": \"./node_modules/moment/locale/de.js\",\n\t\"./dv\": \"./node_modules/moment/locale/dv.js\",\n\t\"./dv.js\": \"./node_modules/moment/locale/dv.js\",\n\t\"./el\": \"./node_modules/moment/locale/el.js\",\n\t\"./el.js\": \"./node_modules/moment/locale/el.js\",\n\t\"./en-au\": \"./node_modules/moment/locale/en-au.js\",\n\t\"./en-au.js\": \"./node_modules/moment/locale/en-au.js\",\n\t\"./en-ca\": \"./node_modules/moment/locale/en-ca.js\",\n\t\"./en-ca.js\": \"./node_modules/moment/locale/en-ca.js\",\n\t\"./en-gb\": \"./node_modules/moment/locale/en-gb.js\",\n\t\"./en-gb.js\": \"./node_modules/moment/locale/en-gb.js\",\n\t\"./en-ie\": \"./node_modules/moment/locale/en-ie.js\",\n\t\"./en-ie.js\": \"./node_modules/moment/locale/en-ie.js\",\n\t\"./en-il\": \"./node_modules/moment/locale/en-il.js\",\n\t\"./en-il.js\": \"./node_modules/moment/locale/en-il.js\",\n\t\"./en-in\": \"./node_modules/moment/locale/en-in.js\",\n\t\"./en-in.js\": \"./node_modules/moment/locale/en-in.js\",\n\t\"./en-nz\": \"./node_modules/moment/locale/en-nz.js\",\n\t\"./en-nz.js\": \"./node_modules/moment/locale/en-nz.js\",\n\t\"./en-sg\": \"./node_modules/moment/locale/en-sg.js\",\n\t\"./en-sg.js\": \"./node_modules/moment/locale/en-sg.js\",\n\t\"./eo\": \"./node_modules/moment/locale/eo.js\",\n\t\"./eo.js\": \"./node_modules/moment/locale/eo.js\",\n\t\"./es\": \"./node_modules/moment/locale/es.js\",\n\t\"./es-do\": \"./node_modules/moment/locale/es-do.js\",\n\t\"./es-do.js\": \"./node_modules/moment/locale/es-do.js\",\n\t\"./es-mx\": \"./node_modules/moment/locale/es-mx.js\",\n\t\"./es-mx.js\": \"./node_modules/moment/locale/es-mx.js\",\n\t\"./es-us\": \"./node_modules/moment/locale/es-us.js\",\n\t\"./es-us.js\": \"./node_modules/moment/locale/es-us.js\",\n\t\"./es.js\": \"./node_modules/moment/locale/es.js\",\n\t\"./et\": \"./node_modules/moment/locale/et.js\",\n\t\"./et.js\": \"./node_modules/moment/locale/et.js\",\n\t\"./eu\": \"./node_modules/moment/locale/eu.js\",\n\t\"./eu.js\": \"./node_modules/moment/locale/eu.js\",\n\t\"./fa\": \"./node_modules/moment/locale/fa.js\",\n\t\"./fa.js\": \"./node_modules/moment/locale/fa.js\",\n\t\"./fi\": \"./node_modules/moment/locale/fi.js\",\n\t\"./fi.js\": \"./node_modules/moment/locale/fi.js\",\n\t\"./fil\": \"./node_modules/moment/locale/fil.js\",\n\t\"./fil.js\": \"./node_modules/moment/locale/fil.js\",\n\t\"./fo\": \"./node_modules/moment/locale/fo.js\",\n\t\"./fo.js\": \"./node_modules/moment/locale/fo.js\",\n\t\"./fr\": \"./node_modules/moment/locale/fr.js\",\n\t\"./fr-ca\": \"./node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ca.js\": \"./node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ch\": \"./node_modules/moment/locale/fr-ch.js\",\n\t\"./fr-ch.js\": \"./node_modules/moment/locale/fr-ch.js\",\n\t\"./fr.js\": \"./node_modules/moment/locale/fr.js\",\n\t\"./fy\": \"./node_modules/moment/locale/fy.js\",\n\t\"./fy.js\": \"./node_modules/moment/locale/fy.js\",\n\t\"./ga\": \"./node_modules/moment/locale/ga.js\",\n\t\"./ga.js\": \"./node_modules/moment/locale/ga.js\",\n\t\"./gd\": \"./node_modules/moment/locale/gd.js\",\n\t\"./gd.js\": \"./node_modules/moment/locale/gd.js\",\n\t\"./gl\": \"./node_modules/moment/locale/gl.js\",\n\t\"./gl.js\": \"./node_modules/moment/locale/gl.js\",\n\t\"./gom-deva\": \"./node_modules/moment/locale/gom-deva.js\",\n\t\"./gom-deva.js\": \"./node_modules/moment/locale/gom-deva.js\",\n\t\"./gom-latn\": \"./node_modules/moment/locale/gom-latn.js\",\n\t\"./gom-latn.js\": \"./node_modules/moment/locale/gom-latn.js\",\n\t\"./gu\": \"./node_modules/moment/locale/gu.js\",\n\t\"./gu.js\": \"./node_modules/moment/locale/gu.js\",\n\t\"./he\": \"./node_modules/moment/locale/he.js\",\n\t\"./he.js\": \"./node_modules/moment/locale/he.js\",\n\t\"./hi\": \"./node_modules/moment/locale/hi.js\",\n\t\"./hi.js\": \"./node_modules/moment/locale/hi.js\",\n\t\"./hr\": \"./node_modules/moment/locale/hr.js\",\n\t\"./hr.js\": \"./node_modules/moment/locale/hr.js\",\n\t\"./hu\": \"./node_modules/moment/locale/hu.js\",\n\t\"./hu.js\": \"./node_modules/moment/locale/hu.js\",\n\t\"./hy-am\": \"./node_modules/moment/locale/hy-am.js\",\n\t\"./hy-am.js\": \"./node_modules/moment/locale/hy-am.js\",\n\t\"./id\": \"./node_modules/moment/locale/id.js\",\n\t\"./id.js\": \"./node_modules/moment/locale/id.js\",\n\t\"./is\": \"./node_modules/moment/locale/is.js\",\n\t\"./is.js\": \"./node_modules/moment/locale/is.js\",\n\t\"./it\": \"./node_modules/moment/locale/it.js\",\n\t\"./it-ch\": \"./node_modules/moment/locale/it-ch.js\",\n\t\"./it-ch.js\": \"./node_modules/moment/locale/it-ch.js\",\n\t\"./it.js\": \"./node_modules/moment/locale/it.js\",\n\t\"./ja\": \"./node_modules/moment/locale/ja.js\",\n\t\"./ja.js\": \"./node_modules/moment/locale/ja.js\",\n\t\"./jv\": \"./node_modules/moment/locale/jv.js\",\n\t\"./jv.js\": \"./node_modules/moment/locale/jv.js\",\n\t\"./ka\": \"./node_modules/moment/locale/ka.js\",\n\t\"./ka.js\": \"./node_modules/moment/locale/ka.js\",\n\t\"./kk\": \"./node_modules/moment/locale/kk.js\",\n\t\"./kk.js\": \"./node_modules/moment/locale/kk.js\",\n\t\"./km\": \"./node_modules/moment/locale/km.js\",\n\t\"./km.js\": \"./node_modules/moment/locale/km.js\",\n\t\"./kn\": \"./node_modules/moment/locale/kn.js\",\n\t\"./kn.js\": \"./node_modules/moment/locale/kn.js\",\n\t\"./ko\": \"./node_modules/moment/locale/ko.js\",\n\t\"./ko.js\": \"./node_modules/moment/locale/ko.js\",\n\t\"./ku\": \"./node_modules/moment/locale/ku.js\",\n\t\"./ku.js\": \"./node_modules/moment/locale/ku.js\",\n\t\"./ky\": \"./node_modules/moment/locale/ky.js\",\n\t\"./ky.js\": \"./node_modules/moment/locale/ky.js\",\n\t\"./lb\": \"./node_modules/moment/locale/lb.js\",\n\t\"./lb.js\": \"./node_modules/moment/locale/lb.js\",\n\t\"./lo\": \"./node_modules/moment/locale/lo.js\",\n\t\"./lo.js\": \"./node_modules/moment/locale/lo.js\",\n\t\"./lt\": \"./node_modules/moment/locale/lt.js\",\n\t\"./lt.js\": \"./node_modules/moment/locale/lt.js\",\n\t\"./lv\": \"./node_modules/moment/locale/lv.js\",\n\t\"./lv.js\": \"./node_modules/moment/locale/lv.js\",\n\t\"./me\": \"./node_modules/moment/locale/me.js\",\n\t\"./me.js\": \"./node_modules/moment/locale/me.js\",\n\t\"./mi\": \"./node_modules/moment/locale/mi.js\",\n\t\"./mi.js\": \"./node_modules/moment/locale/mi.js\",\n\t\"./mk\": \"./node_modules/moment/locale/mk.js\",\n\t\"./mk.js\": \"./node_modules/moment/locale/mk.js\",\n\t\"./ml\": \"./node_modules/moment/locale/ml.js\",\n\t\"./ml.js\": \"./node_modules/moment/locale/ml.js\",\n\t\"./mn\": \"./node_modules/moment/locale/mn.js\",\n\t\"./mn.js\": \"./node_modules/moment/locale/mn.js\",\n\t\"./mr\": \"./node_modules/moment/locale/mr.js\",\n\t\"./mr.js\": \"./node_modules/moment/locale/mr.js\",\n\t\"./ms\": \"./node_modules/moment/locale/ms.js\",\n\t\"./ms-my\": \"./node_modules/moment/locale/ms-my.js\",\n\t\"./ms-my.js\": \"./node_modules/moment/locale/ms-my.js\",\n\t\"./ms.js\": \"./node_modules/moment/locale/ms.js\",\n\t\"./mt\": \"./node_modules/moment/locale/mt.js\",\n\t\"./mt.js\": \"./node_modules/moment/locale/mt.js\",\n\t\"./my\": \"./node_modules/moment/locale/my.js\",\n\t\"./my.js\": \"./node_modules/moment/locale/my.js\",\n\t\"./nb\": \"./node_modules/moment/locale/nb.js\",\n\t\"./nb.js\": \"./node_modules/moment/locale/nb.js\",\n\t\"./ne\": \"./node_modules/moment/locale/ne.js\",\n\t\"./ne.js\": \"./node_modules/moment/locale/ne.js\",\n\t\"./nl\": \"./node_modules/moment/locale/nl.js\",\n\t\"./nl-be\": \"./node_modules/moment/locale/nl-be.js\",\n\t\"./nl-be.js\": \"./node_modules/moment/locale/nl-be.js\",\n\t\"./nl.js\": \"./node_modules/moment/locale/nl.js\",\n\t\"./nn\": \"./node_modules/moment/locale/nn.js\",\n\t\"./nn.js\": \"./node_modules/moment/locale/nn.js\",\n\t\"./oc-lnc\": \"./node_modules/moment/locale/oc-lnc.js\",\n\t\"./oc-lnc.js\": \"./node_modules/moment/locale/oc-lnc.js\",\n\t\"./pa-in\": \"./node_modules/moment/locale/pa-in.js\",\n\t\"./pa-in.js\": \"./node_modules/moment/locale/pa-in.js\",\n\t\"./pl\": \"./node_modules/moment/locale/pl.js\",\n\t\"./pl.js\": \"./node_modules/moment/locale/pl.js\",\n\t\"./pt\": \"./node_modules/moment/locale/pt.js\",\n\t\"./pt-br\": \"./node_modules/moment/locale/pt-br.js\",\n\t\"./pt-br.js\": \"./node_modules/moment/locale/pt-br.js\",\n\t\"./pt.js\": \"./node_modules/moment/locale/pt.js\",\n\t\"./ro\": \"./node_modules/moment/locale/ro.js\",\n\t\"./ro.js\": \"./node_modules/moment/locale/ro.js\",\n\t\"./ru\": \"./node_modules/moment/locale/ru.js\",\n\t\"./ru.js\": \"./node_modules/moment/locale/ru.js\",\n\t\"./sd\": \"./node_modules/moment/locale/sd.js\",\n\t\"./sd.js\": \"./node_modules/moment/locale/sd.js\",\n\t\"./se\": \"./node_modules/moment/locale/se.js\",\n\t\"./se.js\": \"./node_modules/moment/locale/se.js\",\n\t\"./si\": \"./node_modules/moment/locale/si.js\",\n\t\"./si.js\": \"./node_modules/moment/locale/si.js\",\n\t\"./sk\": \"./node_modules/moment/locale/sk.js\",\n\t\"./sk.js\": \"./node_modules/moment/locale/sk.js\",\n\t\"./sl\": \"./node_modules/moment/locale/sl.js\",\n\t\"./sl.js\": \"./node_modules/moment/locale/sl.js\",\n\t\"./sq\": \"./node_modules/moment/locale/sq.js\",\n\t\"./sq.js\": \"./node_modules/moment/locale/sq.js\",\n\t\"./sr\": \"./node_modules/moment/locale/sr.js\",\n\t\"./sr-cyrl\": \"./node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr-cyrl.js\": \"./node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr.js\": \"./node_modules/moment/locale/sr.js\",\n\t\"./ss\": \"./node_modules/moment/locale/ss.js\",\n\t\"./ss.js\": \"./node_modules/moment/locale/ss.js\",\n\t\"./sv\": \"./node_modules/moment/locale/sv.js\",\n\t\"./sv.js\": \"./node_modules/moment/locale/sv.js\",\n\t\"./sw\": \"./node_modules/moment/locale/sw.js\",\n\t\"./sw.js\": \"./node_modules/moment/locale/sw.js\",\n\t\"./ta\": \"./node_modules/moment/locale/ta.js\",\n\t\"./ta.js\": \"./node_modules/moment/locale/ta.js\",\n\t\"./te\": \"./node_modules/moment/locale/te.js\",\n\t\"./te.js\": \"./node_modules/moment/locale/te.js\",\n\t\"./tet\": \"./node_modules/moment/locale/tet.js\",\n\t\"./tet.js\": \"./node_modules/moment/locale/tet.js\",\n\t\"./tg\": \"./node_modules/moment/locale/tg.js\",\n\t\"./tg.js\": \"./node_modules/moment/locale/tg.js\",\n\t\"./th\": \"./node_modules/moment/locale/th.js\",\n\t\"./th.js\": \"./node_modules/moment/locale/th.js\",\n\t\"./tk\": \"./node_modules/moment/locale/tk.js\",\n\t\"./tk.js\": \"./node_modules/moment/locale/tk.js\",\n\t\"./tl-ph\": \"./node_modules/moment/locale/tl-ph.js\",\n\t\"./tl-ph.js\": \"./node_modules/moment/locale/tl-ph.js\",\n\t\"./tlh\": \"./node_modules/moment/locale/tlh.js\",\n\t\"./tlh.js\": \"./node_modules/moment/locale/tlh.js\",\n\t\"./tr\": \"./node_modules/moment/locale/tr.js\",\n\t\"./tr.js\": \"./node_modules/moment/locale/tr.js\",\n\t\"./tzl\": \"./node_modules/moment/locale/tzl.js\",\n\t\"./tzl.js\": \"./node_modules/moment/locale/tzl.js\",\n\t\"./tzm\": \"./node_modules/moment/locale/tzm.js\",\n\t\"./tzm-latn\": \"./node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm-latn.js\": \"./node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm.js\": \"./node_modules/moment/locale/tzm.js\",\n\t\"./ug-cn\": \"./node_modules/moment/locale/ug-cn.js\",\n\t\"./ug-cn.js\": \"./node_modules/moment/locale/ug-cn.js\",\n\t\"./uk\": \"./node_modules/moment/locale/uk.js\",\n\t\"./uk.js\": \"./node_modules/moment/locale/uk.js\",\n\t\"./ur\": \"./node_modules/moment/locale/ur.js\",\n\t\"./ur.js\": \"./node_modules/moment/locale/ur.js\",\n\t\"./uz\": \"./node_modules/moment/locale/uz.js\",\n\t\"./uz-latn\": \"./node_modules/moment/locale/uz-latn.js\",\n\t\"./uz-latn.js\": \"./node_modules/moment/locale/uz-latn.js\",\n\t\"./uz.js\": \"./node_modules/moment/locale/uz.js\",\n\t\"./vi\": \"./node_modules/moment/locale/vi.js\",\n\t\"./vi.js\": \"./node_modules/moment/locale/vi.js\",\n\t\"./x-pseudo\": \"./node_modules/moment/locale/x-pseudo.js\",\n\t\"./x-pseudo.js\": \"./node_modules/moment/locale/x-pseudo.js\",\n\t\"./yo\": \"./node_modules/moment/locale/yo.js\",\n\t\"./yo.js\": \"./node_modules/moment/locale/yo.js\",\n\t\"./zh-cn\": \"./node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-cn.js\": \"./node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-hk\": \"./node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-hk.js\": \"./node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-mo\": \"./node_modules/moment/locale/zh-mo.js\",\n\t\"./zh-mo.js\": \"./node_modules/moment/locale/zh-mo.js\",\n\t\"./zh-tw\": \"./node_modules/moment/locale/zh-tw.js\",\n\t\"./zh-tw.js\": \"./node_modules/moment/locale/zh-tw.js\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"./node_modules/moment/locale sync recursive ^\\\\.\\\\/.*$\";","export default \"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\"","export default \"
\\n
\\n\\n
\\n\\n

WELCOME

\\n
Management and administration of resources for projects
\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n\\n
\\n
\\n\"","export default \"\\n
\\n \\n\\n \\n
\\n \\n \\n
\\n\\n\\n \\n
\\n \\n\\n \\n
\\n
\\n
\\n Copyright 2024 - Created and maintained by F. Mejia\\n
\\n
\\n
\\n \\n
\\n \\n
\\n\\n\\n\\n
\\n
\\n
\\n
\\n
Ready to Leave?
\\n \\n
\\n
\\n Select \\\"Logout\\\" below if you are ready to end your current session.\\n
\\n
\\n \\n Logout\\n
\\n
\\n
\\n
\\n\"","export default \"\\n\\n\"","export default \"\\n\\n\"","export default \"
\\n
\\n

New User

\\n
\\n
\\n

--

\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n
\\n

Username

\\n
\\n \\n
\\n
\\n\\n
\\n

Email

\\n
\\n \\n
\\n
\\n\\n\\n
\\n

Phone

\\n
\\n \\n
\\n
\\n\\n\\n\\n
\\n

Password

\\n
\\n \\n
\\n \\n \\n \\n
\\n
\\n
\\n\\n
\\n

Roles

\\n
\\n \\n Administration (access to all features)\\n
\\n\\n
\\n \\n Project Administration (view projects, view orders, download and see the project budget)\\n
\\n\\n
\\n \\n Order Administration (place orders and view projects)\\n
\\n
\\n\\n\\n\\n
\\n

\\n
\\n \\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\"","export default \"\\n
\\n \\n
\\n

Users

\\n
\\n
\\n

--

\\n
\\n \\n\\n
\\n
\\n \\n\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n
EditNameEmailPhoneDelete
EditNameEmailPhoneDelete
\\n \\\"editar\\\"\\n {{user.data().user}}{{user.data().email}}{{user.data().phone}}\\n \\n
\\n
\\n
\\n \\n
\\n
\\n\"","export default \"
\\n\\n \\n
\\n\\n
\\n\\n
\\n
\\n \\n
\\n\\n
\\n \\n
\\n\\n
\\n
\\n
\\n

Welcome

\\n
\\n
\\n
\\n \\n
\\n
\\n \\n
\\n
\\n
\\n \\n
\\n
\\n\\n \\n
\\n
\\n
\\n
\\n
\\n\\n\\n
\\n
\\n
\\n\\n
\\n\\n
\\n\\n
\\n\"","export default \"
\\n
\\n

Update User

\\n
\\n
\\n

--

\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n
\\n

Username

\\n
\\n \\n
\\n
\\n\\n
\\n

Email

\\n
\\n \\n
\\n
\\n\\n\\n
\\n

Phone

\\n
\\n \\n
\\n
\\n\\n\\n\\n
\\n

Password

\\n
\\n \\n
\\n \\n \\n \\n
\\n
\\n
\\n\\n
\\n

Roles

\\n
\\n \\n Administration (access to all features)\\n
\\n\\n
\\n \\n Project Administration (view projects, view orders, download and see the project budget)\\n
\\n\\n
\\n \\n Order Administration (place orders and view projects)\\n
\\n
\\n\\n
\\n

\\n
\\n \\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\"","export default \"
\\n
\\n

New Material

\\n
\\n
\\n

--

\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n\\n\\n
\\n

Name

\\n
\\n \\n
\\n
\\n\\n\\n
\\n

Decription\\n

\\n
\\n \\n\\n
\\n
\\n\\n
\\n

Unit

\\n
\\n \\n
\\n
\\n\\n
\\n

Size

\\n
\\n \\n\\n
\\n
\\n\\n\\n
\\n

Price

\\n
\\n
\\n
\\n
$
\\n
\\n \\n
\\n
\\n
\\n\\n
\\n

photo

\\n
\\n \\n
\\n \\n
\\n
\\n\\n
\\n

\\n
\\n \\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\"","export default \"\\n
\\n

\\n Loading...\\n

\\n
\\n
\\n\\n\\n\\n
\\n
\\n

Import materials

\\n
\\n
\\n

--

\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n
\\n

Quantity of materials: {{count}}

\\n
\\n\\n
\\n

File

\\n
\\n \\n
\\n
\\n\\n\\n
\\n

\\n
\\n\\n \\n\\n \\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\"","export default \"\\n
\\n \\n
\\n

Materiales y servicios

\\n
\\n
\\n

--

\\n
\\n \\n\\n
\\n
\\n \\n\\n \\n\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n
EditarNombreDelete
EditarNombreDelete
\\n \\n {{material.data().name}}\\n \\n
\\n
\\n
\\n \\n
\\n
\\n\"","export default \"
\\n
\\n

Update Material

\\n
\\n
\\n

--

\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n\\n\\n
\\n

Name

\\n
\\n \\n
\\n
\\n\\n\\n
\\n

Description\\n

\\n
\\n \\n\\n
\\n
\\n\\n
\\n

Unit

\\n
\\n \\n\\n
\\n
\\n\\n
\\n

Size

\\n
\\n \\n\\n
\\n
\\n\\n\\n\\n
\\n

Price

\\n
\\n
\\n
\\n
$
\\n
\\n \\n
\\n
\\n
\\n\\n
\\n

Foto

\\n
\\n \\n
\\n \\n
\\n
\\n\\n
\\n

\\n
\\n \\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\"","export default \"
\\n
\\n

New Order

\\n
\\n
\\n

--

\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n
\\n

Sub Total: {{item.total | currency}}

\\n
\\n\\n
\\n

Tax: {{item.total *(item.taxPercent/100) | currency}}

\\n
\\n\\n
\\n

Total: {{item.total + item.total *(item.taxPercent/100) | currency}}

\\n
\\n\\n
\\n

Select project

\\n
\\n \\n \\n\\n \\n \\n \\n\\n \\n
\\n
\\n
\\n
\\n\\n
\\n

Select supplier

\\n
\\n \\n \\n\\n \\n \\n \\n\\n \\n
\\n
\\n
\\n
\\n\\n
\\n

Select Scope

\\n
\\n \\n \\n\\n \\n \\n \\n\\n \\n
\\n
\\n
\\n
\\n\\n
\\n

Tax

\\n
\\n \\n
\\n %\\n
\\n
\\n
\\n\\n
\\n

Comments or Special Instructions

\\n
\\n \\n
\\n
\\n\\n
\\n\\n

Totals

\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
EstimatedSpentTaxesRemaining
{{total + (total* (item.taxPercent/100)) | currency}}{{expended | currency}}{{expended * (item.taxPercent/100) | currency}}= 0\\\">{{remaining + (remaining* (item.taxPercent/100)) | currency}}{{remaining + (remaining*\\n (item.taxPercent/100))| currency}}
\\n
\\n
\\n\\n
\\n\\n\\n

Materials

\\n \\n\\n \\n\\n \\n\\n
\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
NameQuantityPriceTotalRemove
{{material.name}}{{material.quantity}}{{material.unitPrice | currency}}{{material.total | currency}}\\\"editar\\\"\\n\\n \\n
\\n
\\n
\\n\\n
\\n\\n
\\n

\\n \\n \\n \\n \\n \\n \\n \\n
\\n\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n\\n\\n\\n
\\n
\\n
\\n
\\n
Add Material
\\n \\n
\\n
\\n
\\n
\\n
\\n

Materials

\\n
\\n \\n \\n\\n \\n \\n \\n\\n \\n
\\n
\\n
\\n
\\n\\n
\\n

Price

\\n
\\n
\\n
\\n
$
\\n
\\n \\n
\\n\\n
\\n
\\n\\n
\\n

Quantity

\\n
\\n \\n
\\n
\\n\\n
\\n Total {{quantity * price | currency}}\\n
\\n\\n
\\n
\\n
\\n
\\n \\n\\n \\n
\\n
\\n
\\n
\\n\\n\\n\\n
\\n
\\n
\\n
\\n
Add Material to Scope
\\n \\n
\\n
\\n
\\n
\\n
\\n

Materials

\\n
\\n \\n \\n\\n \\n \\n \\n\\n \\n
\\n
\\n
\\n
\\n
\\n

Price

\\n
\\n
\\n
\\n
$
\\n
\\n \\n
\\n\\n
\\n
\\n\\n
\\n

Quantity

\\n
\\n \\n
\\n
\\n\\n
\\n Total {{quantity * price | currency}}\\n
\\n\\n
\\n
\\n
\\n
\\n \\n\\n \\n
\\n
\\n
\\n
\\n\\n\\n\\n\\n
\\n
\\n
\\n
\\n
New Material to Scope
\\n \\n
\\n
\\n
\\n
\\n\\n
\\n\\n\\n\\n
\\n

Name

\\n
\\n \\n
\\n
\\n\\n\\n
\\n

Decription\\n

\\n
\\n \\n\\n
\\n
\\n\\n
\\n

Unit

\\n
\\n \\n
\\n
\\n\\n
\\n

Size

\\n
\\n \\n\\n
\\n
\\n\\n\\n
\\n

Price

\\n
\\n
\\n
\\n
$
\\n
\\n \\n
\\n
\\n
\\n\\n
\\n

Quantity

\\n
\\n \\n
\\n
\\n\\n
\\n

photo

\\n
\\n \\n
\\n \\n
\\n
\\n
\\n\\n
\\n Total {{quantity * materialItem.price | currency}}\\n
\\n\\n
\\n
\\n
\\n
\\n \\n\\n \\n
\\n
\\n
\\n
\\n\"","export default \"\\n
\\n \\n
\\n

Orders

\\n
\\n
\\n

--

\\n
\\n \\n\\n
\\n
\\n \\n\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n
EditProjectOrder DateTotalDelete
EditProjectOrder DateTotalDelete
\\n \\n {{order.data().projectName}}{{order.data().date | date:\\\"yyyy/MM/dd\\\"}}{{order.data().total+ (order.data().total*(order.data().taxPercent/100)) | currency}}\\n \\n
\\n
\\n
\\n \\n
\\n
\\n\"","export default \"
\\n
\\n

Update Order

\\n
\\n
\\n

--

\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n
\\n

Sub Total: {{item.total | currency}}

\\n
\\n\\n
\\n

Tax: {{item.total *(item.taxPercent/100) | currency}}

\\n
\\n\\n
\\n

Total: {{item.total + item.total *(item.taxPercent/100) | currency}}

\\n
\\n\\n\\n\\n
\\n

Selected project

\\n
\\n

{{item.projectName}}

\\n
\\n
\\n\\n
\\n

Selected supplier

\\n\\n
\\n

{{item.supplier}}

\\n
\\n
\\n\\n
\\n\\n
\\n

Selected Scope

\\n

{{item.scope}}

\\n
\\n
\\n\\n
\\n\\n
\\n

Tax

\\n

{{item.taxPercent}} %

\\n
\\n
\\n\\n
\\n

Comments or Special Instructions

\\n
\\n \\n
\\n
\\n\\n\\n
\\n\\n

Totals

\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
EstimatedSpentTaxesRemaining
{{total + (total* (item.taxPercent/100)) | currency}}{{expended | currency}}{{expended * (item.taxPercent/100) | currency}}= 0\\\">{{remaining + (remaining* (item.taxPercent/100)) | currency}}{{remaining + (remaining*\\n (item.taxPercent/100))| currency}}
\\n
\\n
\\n\\n
\\n\\n\\n

Materials

\\n \\n\\n \\n\\n \\n\\n
\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
NameQuantityPriceTotalRemove
{{material.name}}{{material.quantity}}{{material.unitPrice | currency}}{{material.total | currency}}\\\"editar\\\"\\n\\n \\n
\\n
\\n
\\n\\n
\\n\\n
\\n

\\n \\n \\n \\n \\n \\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n\\n\\n
\\n
\\n
\\n
\\n
Add Material
\\n \\n
\\n
\\n
\\n
\\n
\\n

Materials

\\n
\\n \\n \\n\\n \\n \\n \\n\\n \\n
\\n
\\n
\\n
\\n\\n
\\n

Price

\\n
\\n
\\n
\\n
$
\\n
\\n \\n
\\n
\\n
\\n\\n
\\n

Quantity

\\n
\\n \\n
\\n
\\n\\n
\\n Total {{quantity * price | currency}}\\n
\\n\\n
\\n
\\n
\\n
\\n \\n\\n \\n
\\n
\\n
\\n
\\n\\n\\n\\n
\\n
\\n
\\n
\\n
Add Material to Scope
\\n \\n
\\n
\\n
\\n
\\n
\\n

Materials

\\n
\\n \\n \\n\\n \\n \\n \\n\\n \\n
\\n
\\n
\\n
\\n
\\n

Price

\\n
\\n
\\n
\\n
$
\\n
\\n \\n
\\n\\n
\\n
\\n\\n
\\n

Quantity

\\n
\\n \\n
\\n
\\n\\n
\\n Total {{quantity * price | currency}}\\n
\\n\\n
\\n
\\n
\\n
\\n \\n\\n \\n
\\n
\\n
\\n
\\n\\n\\n\\n\\n
\\n
\\n
\\n
\\n
New Material to Scope
\\n \\n
\\n
\\n
\\n
\\n\\n
\\n\\n\\n\\n
\\n

Name

\\n
\\n \\n
\\n
\\n\\n\\n
\\n

Decription\\n

\\n
\\n \\n\\n
\\n
\\n\\n
\\n

Unit

\\n
\\n \\n
\\n
\\n\\n
\\n

Size

\\n
\\n \\n\\n
\\n
\\n\\n\\n
\\n

Price

\\n
\\n
\\n
\\n
$
\\n
\\n \\n
\\n
\\n
\\n\\n
\\n

Quantity

\\n
\\n \\n
\\n
\\n\\n
\\n

photo

\\n
\\n \\n
\\n \\n
\\n
\\n
\\n\\n
\\n Total {{quantity * materialItem.price | currency}}\\n
\\n\\n
\\n
\\n
\\n
\\n \\n\\n \\n
\\n
\\n
\\n
\\n\"","export default \"
\\n
\\n

Nueva Cotización

\\n
\\n
\\n

--

\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n
\\n

Nombre

\\n
\\n \\n
\\n
\\n\\n
\\n

Fecha

\\n
\\n \\n
\\n
\\n\\n\\n
\\n

Teléfono de contacto\\n

\\n
\\n \\n
\\n
\\n\\n
\\n

Sub Total

\\n
\\n \\n
\\n
\\n\\n
\\n

Impuesto (%)

\\n
\\n \\n
\\n %\\n
\\n
\\n
\\n\\n
\\n

Total de impuestos

\\n
\\n \\n
\\n
\\n\\n
\\n

Total

\\n
\\n \\n
\\n
\\n\\n
\\n

Dirección

\\n
\\n \\n
\\n
\\n\\n
\\n\\n

Cliente

\\n \\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
NombreTeléfonoAcciones
{{supplier.name}}{{supplier.phone}}\\n \\\"editar\\\"\\n\\n \\n
\\n
\\n
\\n\\n
\\n\\n

Categorías

\\n \\n\\n\\n\\n\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n
NombrePresupuestoDescripciónAcciones
{{scope.name}}{{scope.budget | customCurrency}}\\n

\\n {{material.name}} ({{material.quantity}} * {{material.price |customCurrency}})\\n | \\n

\\n\\n \\n \\n
\\n \\n\\n \\n\\n \\n
\\n
\\n
\\n\\n
\\n \\n
\\n\\n\\n\\n
\\n

\\n
\\n \\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n\\n\\n
\\n
\\n
\\n
\\n
Agregar Categoría
\\n \\n
\\n
\\n
\\n
\\n
\\n

Categorias

\\n
\\n
\\n \\n \\n\\n \\n \\n \\n\\n \\n
\\n
\\n
\\n
\\n
\\n\\n \\n
\\n
\\n
\\n
\\n \\n\\n \\n
\\n
\\n
\\n
\\n\\n\\n\\n\\n
\\n
\\n
\\n
\\n
Agregar Material o Servicio
\\n \\n
\\n
\\n
\\n
\\n\\n
\\n

Material o Servicio

\\n
\\n \\n \\n\\n \\n \\n \\n\\n \\n
\\n
\\n
\\n
\\n\\n \\n\\n
\\n

Precio

\\n
\\n
\\n
\\n
L.
\\n
\\n \\n
\\n\\n
\\n
\\n\\n
\\n

Cantidad

\\n
\\n \\n
\\n
\\n\\n
\\n Total {{quantity * price | customCurrency}}\\n
\\n\\n
\\n
\\n
\\n
\\n \\n\\n \\n
\\n
\\n
\\n
\\n\\n\\n\\n\\n
\\n
\\n
\\n
\\n
Agregar Cliente
\\n \\n
\\n
\\n
\\n
\\n\\n
\\n

Clientes

\\n
\\n \\n \\n\\n \\n \\n \\n\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n\\n \\n
\\n
\\n
\\n
\\n\\n\\n\\n\\n\\n
\\n
\\n
\\n
\\n
Nuevo Material o Servicio
\\n \\n
\\n
\\n
\\n
\\n\\n
\\n\\n\\n\\n
\\n

Nombre

\\n
\\n \\n
\\n
\\n\\n\\n
\\n

Descripción\\n

\\n
\\n \\n\\n
\\n
\\n\\n
\\n

Unidad

\\n
\\n \\n
\\n
\\n\\n
\\n

Tamaño

\\n
\\n \\n\\n
\\n
\\n\\n\\n
\\n

Precio

\\n
\\n
\\n
\\n
L.
\\n
\\n \\n
\\n
\\n
\\n\\n
\\n

Cantidad

\\n
\\n \\n
\\n
\\n\\n \\n
\\n\\n
\\n Total {{quantity * materialItem.price | customCurrency}}\\n
\\n\\n
\\n
\\n
\\n
\\n \\n\\n \\n
\\n
\\n
\\n
\\n\\n\"","export default \"\\n
\\n

\\n Loading...\\n

\\n
\\n
\\n\\n\\n\\n
\\n
\\n

Import projects

\\n
\\n
\\n \\n

0\\\">Material with errors:
{{mat}}

\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n
\\n

Quantity of projects: {{count}}

\\n
\\n\\n
\\n

File

\\n
\\n \\n
\\n
\\n\\n\\n
\\n

\\n
\\n\\n \\n\\n \\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\"","export default \"\\n
\\n \\n
\\n

Cotizaciones

\\n
\\n
\\n

--

\\n
\\n \\n\\n
\\n
\\n \\n Nueva cotización\\n \\n\\n \\n\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n
EditarNombreFechaEliminar
EditarNombreFechaEliminar
\\n \\n {{project.data().name}}{{project.data().initDate | date:'dd/MM/yyyy'}}\\n \\n
\\n
\\n
\\n \\n
\\n
\\n\"","export default \"\\n
\\n \\n
\\n

Orders: {{item.name}}

\\n
\\n
\\n

--

\\n
\\n\\n
\\n
\\n

Scopes

\\n \\n
\\n\\n
\\n
\\n \\n
\\n\\n
\\n
\\n
\\n
\\n

Total {{total + (total*(item.taxPercent/100)) | currency}}

\\n
\\n
\\n

Spent {{spent | currency}}

\\n
\\n
\\n

Taxes {{(spent*(item.taxPercent/100)) | currency}}

\\n
\\n
\\n

Remaining {{remaining+ (remaining*(item.taxPercent/100)) | currency}}

\\n
\\n
\\n\\n
\\n
\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n
ProjectOrder DateScopeTotal
ProjectOrder DateScopeTotal
{{order.data().projectName}}{{order.data().date | date:\\\"yyyy/MM/dd\\\"}}{{order.data().scope}}$ {{order.data().total + (order.data().total*(item.taxPercent/100))}}
\\n
\\n
\\n
\\n
\\n\"","export default \"
\\n
\\n

Actualizar Cotización

\\n
\\n
\\n

--

\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n\\n\\n
\\n

Nombre

\\n
\\n \\n
\\n
\\n\\n
\\n

Fecha

\\n
\\n \\n
\\n
\\n\\n\\n
\\n

Teléfono de contacto\\n

\\n
\\n \\n
\\n
\\n\\n
\\n

Sub Total

\\n
\\n \\n
\\n
\\n\\n \\n\\n\\n\\n
\\n

Total de impuestos

\\n
\\n \\n
\\n
\\n\\n
\\n

Total

\\n
\\n \\n
\\n
\\n\\n\\n
\\n

Dirección

\\n
\\n \\n
\\n
\\n\\n
\\n\\n

Cliente

\\n \\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
NombreTeléfonoAcciones
{{supplier.name}}{{supplier.phone}} \\\"editar\\\"\\n\\n \\n
\\n
\\n
\\n\\n
\\n\\n

Categorías

\\n \\n\\n
\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n
NombrePresupuestoDescripciónAcciones
{{scope.name}}{{scope.budget | customCurrency}}\\n

\\n {{material.name}} ({{material.quantity}} * {{material.price\\n |customCurrency}})\\n |\\n \\n \\n

\\n \\n
\\n \\n\\n \\n \\n \\n
\\n
\\n
\\n\\n
\\n\\n
\\n \\n
\\n\\n\\n\\n
\\n

\\n \\n \\n \\n \\n \\n
\\n\\n\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n\\n\\n
\\n
\\n
\\n
\\n
Agregar categoría
\\n \\n
\\n
\\n
\\n
\\n
\\n

Categorias

\\n
\\n
\\n \\n \\n\\n \\n \\n \\n\\n \\n
\\n
\\n
\\n
\\n
\\n\\n
\\n

Total

\\n
\\n
\\n
\\n
L.
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n\\n \\n
\\n
\\n
\\n
\\n\\n\\n\\n\\n
\\n
\\n
\\n
\\n
Agregar Material o Servicio
\\n \\n
\\n
\\n
\\n
\\n\\n
\\n

Material o Servicio

\\n
\\n \\n \\n\\n \\n \\n \\n\\n \\n
\\n
\\n
\\n
\\n\\n \\n\\n
\\n

Precio

\\n
\\n
\\n
\\n
L
\\n
\\n \\n
\\n\\n
\\n
\\n\\n
\\n

Cantidad

\\n
\\n \\n
\\n
\\n\\n
\\n Total {{quantity * price | customCurrency}}\\n
\\n
\\n
\\n
\\n
\\n \\n\\n \\n
\\n
\\n
\\n
\\n\\n\\n\\n\\n
\\n
\\n
\\n
\\n
Agregar cliente
\\n \\n
\\n
\\n
\\n
\\n\\n
\\n

Clientes

\\n
\\n \\n \\n\\n \\n \\n \\n\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n\\n \\n
\\n
\\n
\\n
\\n\\n\\n\\n\\n
\\n
\\n
\\n
\\n
Nuevo Material o Servicio
\\n \\n
\\n
\\n
\\n
\\n\\n
\\n\\n\\n\\n
\\n

Nombre

\\n
\\n \\n
\\n
\\n\\n\\n
\\n

Descripción\\n

\\n
\\n \\n\\n
\\n
\\n\\n
\\n

Unidad

\\n
\\n \\n
\\n
\\n\\n
\\n

Tamaño

\\n
\\n \\n\\n
\\n
\\n\\n\\n
\\n

Precio

\\n
\\n
\\n
\\n
L.
\\n
\\n \\n
\\n
\\n
\\n\\n
\\n

Cantidad

\\n
\\n \\n
\\n
\\n\\n \\n
\\n\\n
\\n Total {{quantity * materialItem.price | customCurrency}}\\n
\\n\\n
\\n
\\n
\\n
\\n \\n\\n \\n
\\n
\\n
\\n
\\n\\n\\n\"","export default \"
\\n
\\n

New Scope

\\n
\\n
\\n

--

\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n\\n\\n
\\n

Name

\\n
\\n \\n
\\n
\\n\\n\\n
\\n

Description\\n

\\n
\\n \\n\\n
\\n
\\n\\n
\\n

\\n
\\n \\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\"","export default \"\\n
\\n \\n
\\n

Categorías

\\n
\\n
\\n

--

\\n
\\n \\n\\n
\\n
\\n \\n\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n
EditNameDescriptionDelete
EditNameDescriptionDelete
\\n \\n {{scope.data().name}}{{scope.data().description}}\\n \\n
\\n
\\n
\\n \\n
\\n
\\n\"","export default \"
\\n
\\n

Update Scope

\\n
\\n
\\n

--

\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n\\n\\n
\\n

Name

\\n
\\n \\n
\\n
\\n\\n\\n
\\n

Description\\n

\\n
\\n \\n\\n
\\n
\\n\\n
\\n

\\n
\\n \\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\"","export default \"
\\n
\\n

New Supplier

\\n
\\n
\\n

--

\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n\\n\\n
\\n

Name

\\n
\\n \\n
\\n
\\n\\n\\n
\\n

Phone\\n

\\n
\\n \\n
\\n
\\n\\n
\\n

Address

\\n
\\n \\n
\\n
\\n\\n
\\n

Email 1\\n

\\n
\\n \\n
\\n
\\n\\n
\\n

Email 2\\n

\\n
\\n \\n
\\n
\\n\\n
\\n

Email 3\\n

\\n
\\n \\n
\\n
\\n\\n
\\n

Email 4\\n

\\n
\\n \\n
\\n
\\n\\n
\\n

Email 5\\n

\\n
\\n \\n
\\n
\\n\\n\\n\\n\\n
\\n

\\n
\\n \\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\"","export default \"\\n
\\n \\n
\\n

Suppliers

\\n
\\n
\\n

--

\\n
\\n \\n\\n
\\n
\\n \\n\\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n
EditNameAddressPhoneDelete
EditNameAddressPhoneDelete
\\n \\n {{supplier.data().name}}{{supplier.data().address}}{{supplier.data().phone}}\\n \\n
\\n
\\n
\\n \\n
\\n
\\n\"","export default \"
\\n
\\n

Update Supplier

\\n
\\n
\\n

--

\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n\\n\\n
\\n

Name

\\n
\\n \\n
\\n
\\n\\n\\n
\\n

Phone\\n

\\n
\\n \\n
\\n
\\n\\n
\\n

Address

\\n
\\n \\n
\\n
\\n\\n
\\n

Email 1\\n

\\n
\\n \\n
\\n
\\n\\n
\\n

Email 2\\n

\\n
\\n \\n
\\n
\\n\\n
\\n

Email 3\\n

\\n
\\n \\n
\\n
\\n\\n
\\n

Email 4\\n

\\n
\\n \\n
\\n
\\n\\n
\\n

Email 5\\n

\\n
\\n \\n
\\n
\\n\\n
\\n

\\n
\\n \\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\"","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { ImportBulkMaterialsComponent } from './features/materials/import-bulk-materials/import-bulk-materials.component';\nimport { ProjectOrdersComponent } from './features/proyects/reports/project-orders/project-orders.component';\nimport { UpdateOrderComponent } from './features/orders/update-order/update-order.component';\nimport { UpdateProyectComponent } from './features/proyects/update-proyect/update-proyect.component';\nimport { UpdateUsersComponent } from './features/authentication/update-users/update-users.component';\nimport { UpdateScopesComponent } from './features/scopes/update-scopes/update-scopes.component';\nimport { UpdateSupplierComponent } from './features/suppliers/update-supplier/update-supplier.component';\nimport { CreateSupplierComponent } from './features/suppliers/create-supplier/create-supplier.component';\nimport { ListSuppliersComponent } from './features/suppliers/list-suppliers/list-suppliers.component';\nimport { CreateOrderComponent } from './features/orders/create-order/create-order.component';\nimport { ListOrdersComponent } from './features/orders/list-orders/list-orders.component';\nimport { CreateUserComponent } from './features/authentication/create-user/create-user.component';\nimport { CreateScopesComponent } from './features/scopes/create-scopes/create-scopes.component';\nimport { CreateMaterialComponent } from './features/materials/create-material/create-material.component';\nimport { CreateProyectComponent } from './features/proyects/create-proyect/create-proyect.component';\nimport { ListScopesComponent } from './features/scopes/list-scopes/list-scopes.component';\nimport { ListMaterialsComponent } from './features/materials/list-materials/list-materials.component';\nimport { ListProyectsComponent } from './features/proyects/list-proyects/list-proyects.component';\nimport { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport { LoginComponent } from './features/authentication/login/login.component';\nimport { MainComponent } from './common/main/main.component';\nimport { HomeComponent } from './common/home/home.component';\nimport { ListUsersComponent } from './features/authentication/list-users/list-users.component';\nimport { AuthGuard } from './auth/auth.guard';\nimport { UpdateMaterialsComponent } from './features/materials/update-materials/update-materials.component';\nimport { ImportBlulkProyectsComponent } from './features/proyects/import-blulk-proyects/import-blulk-proyects.component';\n\n\nconst routes: Routes = [\n { path: \"\", pathMatch: \"full\", redirectTo: \"/login\" },\n { path: \"login\", component: LoginComponent },\n {\n path: \"app\",\n component: MainComponent,\n\n children: [\n { path: \"home\", component: HomeComponent, canActivate: [AuthGuard], data: { role: ['projects', 'admin', 'dbAcces'] } },\n { path: \"proyects\", component: ListProyectsComponent, canActivate: [AuthGuard], data: { role: ['admin', 'projects', 'dbAcces'] } },\n { path: \"create-proyect\", component: CreateProyectComponent, canActivate: [AuthGuard], data: { role: ['admin'] } },\n { path: \"update-proyect/:id\", component: UpdateProyectComponent, canActivate: [AuthGuard], data: { role: ['admin', 'projects', 'dbAcces'] } },\n { path: \"project-orders/:id\", component: ProjectOrdersComponent, canActivate: [AuthGuard], data: { role: ['admin', 'projects'] } },\n {\n path: \"import-projects\", component: ImportBlulkProyectsComponent, canActivate: [AuthGuard], data: {\n role: ['admin', 'projects']\n }\n },\n\n { path: \"users\", component: ListUsersComponent, canActivate: [AuthGuard], data: { role: ['admin'] } },\n { path: \"create-user\", component: CreateUserComponent, canActivate: [AuthGuard], data: { role: ['admin'] } },\n { path: \"update-user/:id\", component: UpdateUsersComponent, canActivate: [AuthGuard], data: { role: ['admin'] } },\n\n { path: \"materials\", component: ListMaterialsComponent, canActivate: [AuthGuard], data: { role: ['admin'] } },\n { path: \"create-material\", component: CreateMaterialComponent, canActivate: [AuthGuard], data: { role: ['admin'] } },\n { path: \"update-material/:id\", component: UpdateMaterialsComponent, canActivate: [AuthGuard], data: { role: ['admin'] } },\n { path: \"import-materials\", component: ImportBulkMaterialsComponent, canActivate: [AuthGuard], data: { role: ['admin'] } },\n\n { path: \"scopes\", component: ListScopesComponent, canActivate: [AuthGuard], data: { role: ['admin'] } },\n { path: \"create-scope\", component: CreateScopesComponent, canActivate: [AuthGuard], data: { role: ['admin'] } },\n { path: \"update-scope/:id\", component: UpdateScopesComponent, canActivate: [AuthGuard], data: { role: ['admin'] } },\n\n { path: \"vendors\", component: ListSuppliersComponent, canActivate: [AuthGuard], data: { role: ['admin'] } },\n { path: \"create-vendor\", component: CreateSupplierComponent, canActivate: [AuthGuard], data: { role: ['admin'] } },\n { path: \"update-vendor/:id\", component: UpdateSupplierComponent, canActivate: [AuthGuard], data: { role: ['admin'] } },\n\n { path: \"orders\", component: ListOrdersComponent, canActivate: [AuthGuard], data: { role: ['admin', 'dbAcces', 'projects'] } },\n { path: \"create-order\", component: CreateOrderComponent, canActivate: [AuthGuard], data: { role: ['admin', 'dbAcces', 'projects'] } },\n { path: \"update-order/:id\", component: UpdateOrderComponent, canActivate: [AuthGuard], data: { role: ['admin', 'dbAcces', 'projects'] } },\n\n ]\n },\n];\n\n@NgModule({\n imports: [RouterModule.forRoot(routes)],\n exports: [RouterModule]\n})\nexport class AppRoutingModule { }\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2FwcC5jb21wb25lbnQuY3NzIn0= */\"","import { Component } from '@angular/core';\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n title = 'gestion-materiales';\n}\n","import { AngularMultiSelectModule } from 'angular2-multiselect-dropdown';\nimport { AngularFirestoreModule } from '@angular/fire/firestore';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { LOCALE_ID, NgModule } from '@angular/core';\nimport { AppRoutingModule } from './app-routing.module';\nimport { AppComponent } from './app.component';\nimport { MainComponent } from './common/main/main.component';\nimport { LoginComponent } from './features/authentication/login/login.component';\nimport { FormsModule } from '@angular/forms';\nimport { SideMenuComponent } from './common/side-menu/side-menu.component';\nimport { TopBarComponent } from './common/top-bar/top-bar.component';\nimport { HomeComponent } from './common/home/home.component';\nimport { ListProyectsComponent } from './features/proyects/list-proyects/list-proyects.component';\nimport { ListUsersComponent } from './features/authentication/list-users/list-users.component';\nimport { DataTablesModule } from 'angular-datatables';\nimport { ListMaterialsComponent } from './features/materials/list-materials/list-materials.component';\nimport { ListScopesComponent } from './features/scopes/list-scopes/list-scopes.component';\nimport { CreateProyectComponent } from './features/proyects/create-proyect/create-proyect.component';\nimport { CreateMaterialComponent } from './features/materials/create-material/create-material.component';\nimport { CreateUserComponent } from './features/authentication/create-user/create-user.component';\nimport { CreateScopesComponent } from './features/scopes/create-scopes/create-scopes.component';\nimport { ListOrdersComponent } from './features/orders/list-orders/list-orders.component';\nimport { CreateOrderComponent } from './features/orders/create-order/create-order.component';\nimport { AngularFireModule } from '@angular/fire';\nimport { AngularFireStorageModule } from '@angular/fire/storage';\nimport { AngularFireFunctionsModule } from '@angular/fire/functions';\nimport { environment } from 'src/environments/environment';\nimport { ListSuppliersComponent } from './features/suppliers/list-suppliers/list-suppliers.component';\nimport { CreateSupplierComponent } from './features/suppliers/create-supplier/create-supplier.component';\nimport { AutocompleteLibModule } from 'angular-ng-autocomplete';\nimport { UpdateSupplierComponent } from './features/suppliers/update-supplier/update-supplier.component';\nimport { UpdateMaterialsComponent } from './features/materials/update-materials/update-materials.component';\nimport { UpdateScopesComponent } from './features/scopes/update-scopes/update-scopes.component';\nimport { UpdateUsersComponent } from './features/authentication/update-users/update-users.component';\nimport { UpdateProyectComponent } from './features/proyects/update-proyect/update-proyect.component';\nimport { UpdateOrderComponent } from './features/orders/update-order/update-order.component';\nimport { ProjectOrdersComponent } from './features/proyects/reports/project-orders/project-orders.component';\nimport { CurrencyPipe } from '@angular/common';\nimport { UploadImagesService } from './services/storage/upload-images.service';\nimport { ImportBulkMaterialsComponent } from './features/materials/import-bulk-materials/import-bulk-materials.component';\nimport { NgxLoadingModule } from 'ngx-loading';\nimport { ImportBlulkProyectsComponent } from './features/proyects/import-blulk-proyects/import-blulk-proyects.component';\nimport { CustomCurrencyPipe } from './common/helpers/custom-currency-pipe';\n\n@NgModule({\n declarations: [\n AppComponent,\n LoginComponent,\n MainComponent,\n SideMenuComponent,\n TopBarComponent,\n HomeComponent,\n ListProyectsComponent,\n ListUsersComponent,\n ListMaterialsComponent,\n ListScopesComponent,\n CreateProyectComponent,\n CreateMaterialComponent,\n CreateUserComponent,\n CreateScopesComponent,\n ListOrdersComponent,\n CreateOrderComponent,\n ListSuppliersComponent,\n CreateSupplierComponent,\n UpdateSupplierComponent,\n UpdateMaterialsComponent,\n UpdateScopesComponent,\n UpdateUsersComponent,\n UpdateProyectComponent,\n UpdateOrderComponent,\n ProjectOrdersComponent,\n ImportBulkMaterialsComponent,\n ImportBlulkProyectsComponent,\n CustomCurrencyPipe\n ],\n imports: [\n BrowserModule,\n AppRoutingModule,\n AngularMultiSelectModule,\n FormsModule,\n DataTablesModule,\n AngularFireModule.initializeApp(environment.firebase),\n AngularFirestoreModule,\n AngularFireStorageModule,\n AngularFireFunctionsModule,\n AutocompleteLibModule,\n NgxLoadingModule.forRoot({})\n\n ],\n providers: [CurrencyPipe, UploadImagesService, CustomCurrencyPipe],\n bootstrap: [AppComponent]\n})\nexport class AppModule { }\n","import { Injectable } from '@angular/core';\nimport { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, UrlTree, Router } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { AuthService } from '../services/auth.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthGuard implements CanActivate {\n\n constructor(private authService: AuthService,\n private router: Router) { }\n\n canActivate(\n next: ActivatedRouteSnapshot,\n state: RouterStateSnapshot): Observable | Promise | boolean | UrlTree {\n let url: string = state.url;\n return this.checkUserLogin(next, url);\n }\n\n checkUserLogin(route: ActivatedRouteSnapshot, url: any): boolean {\n if (this.authService.isAuthenticated()) {\n const userRole: string[] = this.authService.getRole();\n for (let i = 0; i < userRole.length; i++) {\n\n //console.log(route.data.role.indexOf(userRole[i]));\n if (route.data.role && route.data.role.indexOf(userRole[i]) != -1) {\n return true;\n }\n }\n this.router.navigate(['/app/home']);\n return false;\n }\n\n this.router.navigate(['/login']);\n return false;\n }\n\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { CurrencyPipe } from '@angular/common';\n\n@Pipe({\n name: 'customCurrency'\n})\nexport class CustomCurrencyPipe extends CurrencyPipe implements PipeTransform {\n transform(value: any, currencyCode: string = 'USD', display: string | boolean = 'symbol', digitsInfo?: string, locale?: string): string | null {\n //if(value === null || value === undefined) return null;\n return super.transform(value, currencyCode, display, digitsInfo, locale).replace('$', 'L');\n }\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbW1vbi9ob21lL2hvbWUuY29tcG9uZW50LmNzcyJ9 */\"","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-home',\n templateUrl: './home.component.html',\n styleUrls: ['./home.component.css']\n})\nexport class HomeComponent implements OnInit {\n\n alert = false;\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","export default \"#content-wrapper{\\n overflow-y:scroll;\\n height: 100vh;\\n}\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tbW9uL21haW4vbWFpbi5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsaUJBQWlCO0VBQ2pCLGFBQWE7QUFDZiIsImZpbGUiOiJzcmMvYXBwL2NvbW1vbi9tYWluL21haW4uY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIiNjb250ZW50LXdyYXBwZXJ7XG4gIG92ZXJmbG93LXk6c2Nyb2xsO1xuICBoZWlnaHQ6IDEwMHZoO1xufVxuIl19 */\"","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-main',\n templateUrl: './main.component.html',\n styleUrls: ['./main.component.css']\n})\nexport class MainComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { Observable } from \"rxjs\";\n\nexport class GlobalConstants {\n //Usuario actual\n public static user: any = undefined;\n\n public static showSidebar: boolean = true;\n\n public static espanol: any = {\n \"sProcessing\": \"Procesando...\",\n \"sLengthMenu\": \"Mostrar registros\",\n \"sZeroRecords\": \"No se encontraron resultados\",\n \"sEmptyTable\": \"Ningún dato disponible en esta tabla\",\n \"sInfo\": \"\",\n \"sInfoEmpty\": \"\",\n \"sInfoFiltered\": \"(filtrado de registros)\",\n \"sInfoPostFix\": \"\",\n \"sSearch\": \"Buscar:\",\n \"sUrl\": \"\",\n \"sInfoThousands\": \",\",\n \"sLoadingRecords\": \"Cargando...\",\n \"oPaginate\": {\n \"sFirst\": \"Primero\",\n \"sLast\": \"Último\",\n \"sNext\": \"Siguiente\",\n \"sPrevious\": \"Anterior\"\n },\n \"oAria\": {\n \"sSortAscending\": \": Activar para ordenar la columna de manera ascendente\",\n \"sSortDescending\": \": Activar para ordenar la columna de manera descendente\"\n },\n \"buttons\": {\n \"copy\": \"Copiar\",\n \"colvis\": \"Visibilidad\",\n \"print\": \"Ver estado de cuenta\",\n \"excel\": \"Descargar estado de cuenta\"\n }\n }\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbW1vbi9zaWRlLW1lbnUvc2lkZS1tZW51LmNvbXBvbmVudC5jc3MifQ== */\"","import { UiService } from './../../services/ui.service';\nimport { Component, OnInit } from '@angular/core';\nimport { GlobalConstants } from '../shared/GlobalConstans';\n\n@Component({\n selector: 'app-side-menu',\n templateUrl: './side-menu.component.html',\n styleUrls: ['./side-menu.component.css']\n})\nexport class SideMenuComponent implements OnInit {\n\n userRole = GlobalConstants.user.type;\n userId = GlobalConstants.user.id;\n\n showSidebar = true;\n constructor(private uiService: UiService) { }\n\n ngOnInit() {\n this.uiService.getshowSidebar().subscribe(value => {\n this.showSidebar = value;\n });\n }\n\n showMenu(role: string[]) {\n if (this.userRole.filter(x => role.includes(x)).length > 0)\n return true;\n\n return false;\n }\n\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbW1vbi90b3AtYmFyL3RvcC1iYXIuY29tcG9uZW50LmNzcyJ9 */\"","import { UiService } from './../../services/ui.service';\nimport { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { GlobalConstants } from '../shared/GlobalConstans';\n\n@Component({\n selector: 'app-top-bar',\n templateUrl: './top-bar.component.html',\n styleUrls: ['./top-bar.component.css']\n})\nexport class TopBarComponent implements OnInit {\n\n constructor(private router: Router, private uiService: UiService) { }\n\n ngOnInit() {\n }\n\n logout() {\n //GlobalConstants.user = undefined;\n this.router.navigateByUrl(\"/login\");\n }\n\n toogleSidebar() {\n GlobalConstants.showSidebar = GlobalConstants.showSidebar ? false : true;\n this.uiService.setshowSidebar(GlobalConstants.showSidebar);\n }\n\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2ZlYXR1cmVzL2F1dGhlbnRpY2F0aW9uL2NyZWF0ZS11c2VyL2NyZWF0ZS11c2VyLmNvbXBvbmVudC5jc3MifQ== */\"","import { Component, OnInit } from '@angular/core';\nimport { AngularFirestore } from '@angular/fire/firestore';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'app-create-user',\n templateUrl: './create-user.component.html',\n styleUrls: ['./create-user.component.css']\n})\nexport class CreateUserComponent implements OnInit {\n\n item = {\n user: \"\",\n email: \"\",\n phone: \"\",\n password: \"\",\n type: []\n }\n\n admin = false;\n dbAcces = false;\n projects = false;\n\n fieldTextType: boolean;\n\n constructor(private db: AngularFirestore, private router: Router,) { }\n\n ngOnInit() {\n }\n\n async saveData() {\n if (this.admin) this.item.type.push(\"admin\")\n if (this.dbAcces) this.item.type.push(\"dbAcces\")\n if (this.projects) this.item.type.push(\"projects\")\n\n if (!this.validate()) {\n alert(\"Complete all data\");\n return;\n }\n\n if (!confirm(\"Are you sure of save this item?\")) return;\n\n await this.db.collection(\"User\").add(this.item);\n alert(\"Data saved successfully\");\n this.router.navigate(['/app/users']);\n }\n\n toggleFieldTextType() {\n this.fieldTextType = !this.fieldTextType;\n }\n\n validate() {\n console.log(this.item)\n if (this.item.user.length == 0\n || this.item.email.length == 0\n || this.item.phone.length == 0\n || this.item.password.length == 0\n || this.item.type.length == 0) {\n return false;\n }\n\n return true;\n }\n\n\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2ZlYXR1cmVzL2F1dGhlbnRpY2F0aW9uL2xpc3QtdXNlcnMvbGlzdC11c2Vycy5jb21wb25lbnQuY3NzIn0= */\"","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { AngularFirestore } from '@angular/fire/firestore';\nimport { DataTableDirective } from 'angular-datatables';\nimport { Subject } from 'rxjs';\n\n@Component({\n selector: 'app-list-users',\n templateUrl: './list-users.component.html',\n styleUrls: ['./list-users.component.css']\n})\nexport class ListUsersComponent implements OnInit {\n\n userList: any = [];\n dtOptions: any = {};\n dtTrigger: Subject = new Subject();\n @ViewChild(DataTableDirective, { static: false }) datatableElement: DataTableDirective;\n\n\n constructor(private db: AngularFirestore) { }\n\n ngOnInit() {\n this.dtOptions = {\n pagingType: 'full_numbers',\n // Declare the use of the extension in the dom parameter\n dom: 'Bfrtip',\n // Configure the buttons\n buttons: [\n 'print',\n 'excel',\n ],\n pageLength: 8, //language: GlobalConstants.espanol\n };\n this.loadData();\n }\n\n async loadData() {\n this.userList = await (await this.db.collection(\"User\").ref.get()).docs;\n this.dtTrigger.next();\n }\n\n delete(docKey) {\n if (!confirm(\"Are you sure of delete this item?\")) return;\n var index = index = this.userList.map(x => { return x.id }).indexOf(docKey);\n this.deleteItem(docKey)\n .then(\n res => {\n this.userList.splice(index, 1);\n this.rerender();\n },\n err => {\n console.log(err);\n }\n )\n }\n\n deleteItem(docKey) {\n return this.db.collection('User').doc(docKey).delete();\n }\n\n rerender(): void {\n this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {\n // Destroy the table first\n dtInstance.destroy();\n // Call the dtTrigger to rerender again\n this.dtTrigger.next();\n });\n }\n\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2ZlYXR1cmVzL2F1dGhlbnRpY2F0aW9uL2xvZ2luL2xvZ2luLmNvbXBvbmVudC5jc3MifQ== */\"","import { Component, OnInit } from '@angular/core';\nimport { AngularFirestore } from '@angular/fire/firestore';\nimport { Router } from '@angular/router';\nimport { GlobalConstants } from 'src/app/common/shared/GlobalConstans';\n\n@Component({\n selector: 'app-login',\n templateUrl: './login.component.html',\n styleUrls: ['./login.component.css']\n})\nexport class LoginComponent implements OnInit {\n\n\n //Inicializar\n user = \"\";\n pass = \"\";\n\n constructor(private router: Router, private db: AngularFirestore) { }\n\n ngOnInit() {\n }\n\n async login() {\n let login = {\n user: this.user,\n password: this.pass\n }\n let existUser = await this.validateUser(login);\n // console.log(login);\n // console.log(existUser);\n if (existUser.length == 0) {\n alert(\"Incorrect user or password\");\n return;\n }\n GlobalConstants.user = existUser[0].data();\n GlobalConstants.user.id = existUser[0].id;\n this.router.navigate(['/app/home']);\n }\n\n async validateUser(login) {\n return await (await this.db.collection('User').ref.where('user', '==', login.user).where('password', '==', login.password).get()).docs;\n }\n\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2ZlYXR1cmVzL2F1dGhlbnRpY2F0aW9uL3VwZGF0ZS11c2Vycy91cGRhdGUtdXNlcnMuY29tcG9uZW50LmNzcyJ9 */\"","import { Component, OnInit } from '@angular/core';\nimport { AngularFirestore } from '@angular/fire/firestore';\nimport { ActivatedRoute, Router } from '@angular/router';\n\n@Component({\n selector: 'app-update-users',\n templateUrl: './update-users.component.html',\n styleUrls: ['./update-users.component.css']\n})\nexport class UpdateUsersComponent implements OnInit {\n\n item = {\n user: \"\",\n email: \"\",\n phone: \"\",\n password: \"\",\n type: []\n }\n\n admin = false;\n dbAcces = false;\n projects = false;\n\n fieldTextType: boolean;\n\n docKey = \"\";\n\n constructor(private router: Router,\n public db: AngularFirestore, private actRoute: ActivatedRoute,) { }\n\n ngOnInit() {\n this.docKey = this.actRoute.snapshot.paramMap.get('id');\n this.load(this.docKey).then(result => {\n this.item = result;\n if (this.item.type.indexOf(\"admin\") != -1) this.admin = true;\n if (this.item.type.indexOf(\"dbAcces\") != -1) this.dbAcces = true;\n if (this.item.type.indexOf(\"projects\") != -1) this.projects = true;\n });\n }\n\n load(docKey) {\n return new Promise((resolve, reject) => {\n this.db.collection('User').doc(docKey).valueChanges()\n .subscribe(snapshots => {\n resolve(snapshots)\n })\n })\n }\n\n updateData() {\n if (this.admin && this.item.type.indexOf(\"admin\") == -1) this.item.type.push(\"admin\")\n if (this.dbAcces && this.item.type.indexOf(\"dbAcces\") == -1) this.item.type.push(\"dbAcces\")\n if (this.projects && this.item.type.indexOf(\"projects\") == -1) this.item.type.push(\"projects\")\n\n if (!this.admin && this.item.type.indexOf(\"admin\") != -1) this.item.type.splice(this.item.type.indexOf(\"admin\"), 1);\n if (!this.dbAcces && this.item.type.indexOf(\"dbAcces\") != -1) this.item.type.splice(this.item.type.indexOf(\"dbAcces\"), 1);\n if (!this.projects && this.item.type.indexOf(\"projects\") != -1) this.item.type.splice(this.item.type.indexOf(\"projects\"), 1);\n\n if (!this.validate()) {\n alert(\"Complete all data\");\n return;\n }\n\n if (!confirm(\"Are you sure of save this item?\")) return;\n\n this.db.collection('User').doc(this.docKey).set(this.item);\n alert(\"Data saved successfully\");\n this.router.navigate(['/app/users']);\n }\n\n toggleFieldTextType() {\n this.fieldTextType = !this.fieldTextType;\n }\n\n validate() {\n console.log(this.item)\n if (this.item.user.length == 0\n || this.item.email.length == 0\n || this.item.phone.length == 0\n || this.item.password.length == 0\n || this.item.type.length == 0) {\n return false;\n }\n\n return true;\n }\n\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2ZlYXR1cmVzL21hdGVyaWFscy9jcmVhdGUtbWF0ZXJpYWwvY3JlYXRlLW1hdGVyaWFsLmNvbXBvbmVudC5jc3MifQ== */\"","import { Observable } from 'rxjs';\nimport { Component, OnInit } from '@angular/core';\nimport { AngularFirestore } from '@angular/fire/firestore';\nimport { AngularFireStorage } from '@angular/fire/storage';\nimport { Router } from '@angular/router';\nimport { UploadImagesService } from 'src/app/services/storage/upload-images.service';\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\n@Component({\n selector: 'app-create-material',\n templateUrl: './create-material.component.html',\n styleUrls: ['./create-material.component.css']\n})\nexport class CreateMaterialComponent implements OnInit {\n\n item = {\n name: \"\",\n description: \"\",\n price: 0,\n unit: \"\",\n size: \"\",\n photo: {\n url: \"https://firebasestorage.googleapis.com/v0/b/constructora-56ce3.appspot.com/o/placeholder.jpeg?alt=media&token=53324723-0e82-41d8-b015-0d04cd815db0\",\n name: \"placeholder\"\n }\n }\n photo;\n urlSafe: SafeResourceUrl;\n file: File;\n\n constructor(private db: AngularFirestore,\n private router: Router,\n private uploadImagesService: UploadImagesService,\n private sanitizer: DomSanitizer) { }\n\n ngOnInit() {\n this.urlSafe = this.sanitizer.bypassSecurityTrustUrl(this.item.photo.url);\n }\n\n async saveData() {\n if (!this.validate()) {\n alert(\"Complete all data\");\n return;\n }\n\n let materials = await (await this.db.collection(\"Materials\").ref.where(\"name\", \"==\", this.item.name.trim().toUpperCase()).get()).docs;\n if (materials.length > 0) {\n alert(\"Material already exist in the Data Base\");\n return;\n }\n\n if (!confirm(\"Are you sure of save this item?\")) return;\n\n if (this.photo != undefined) {\n let result: any = await this.uploadImagesService.uploadImage(\"materials\", this.item.photo.name, this.file);\n result.subscribe(async url => {\n this.item.photo.url = url;\n this.item.name = this.item.name.trim().toLocaleUpperCase();\n await this.db.collection(\"Materials\").add(this.item);\n alert(\"Data saved successfully\");\n this.router.navigate(['/app/materials']);\n });\n }\n else {\n this.item.name = this.item.name.trim().toLocaleUpperCase();\n await this.db.collection(\"Materials\").add(this.item);\n alert(\"Data saved successfully\");\n this.router.navigate(['/app/materials']);\n }\n }\n\n validate() {\n if (this.item.name.length == 0\n || this.item.description.length == 0\n || this.item.unit.length == 0\n || this.item.size.length == 0)\n return false;\n\n return true;\n }\n\n async uploadTeacherImage(event) {\n if ((event.target.files[0].size / 1024) > 1000) {\n alert(\"File is to large, max file size is 1MB\");\n this.photo = \"\";\n return;\n }\n this.item.photo.url = URL.createObjectURL(event.target.files[0]);\n this.urlSafe = this.sanitizer.bypassSecurityTrustUrl(this.item.photo.url);\n this.item.photo.name = event.target.files[0].name + new Date().toDateString() + new Date().toLocaleTimeString()\n this.file = event.target.files[0];\n }\n\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2ZlYXR1cmVzL21hdGVyaWFscy9pbXBvcnQtYnVsay1tYXRlcmlhbHMvaW1wb3J0LWJ1bGstbWF0ZXJpYWxzLmNvbXBvbmVudC5jc3MifQ== */\"","import { Component, OnInit } from '@angular/core';\nimport { AngularFirestore } from '@angular/fire/firestore';\nimport { Router } from '@angular/router';\nimport readXlsxFile from 'read-excel-file'\n\n@Component({\n selector: 'app-import-bulk-materials',\n templateUrl: './import-bulk-materials.component.html',\n styleUrls: ['./import-bulk-materials.component.css']\n})\nexport class ImportBulkMaterialsComponent implements OnInit {\n\n public loading = false;\n blulkData = [];\n file: any;\n data: any;\n count = 0;\n fileReaded = false;\n\n constructor(public db: AngularFirestore,\n private router: Router,) { }\n\n ngOnInit() {\n }\n\n fileChanged(e) {\n this.file = e.target.files[0];\n }\n\n readFile() {\n if (!confirm(\"Are you sure of read this file?\")) return;\n this.loading = true;\n this.blulkData = [];\n try {\n readXlsxFile(this.file).then(async (rows) => {\n this.data = rows;\n await this.readMaterials(rows)\n this.loading = false;\n }, errors => {\n console.log(errors);\n alert(\"Error reading file\");\n this.loading = false;\n return;\n })\n } catch (error) {\n console.log(error);\n alert(\"Error reading file\");\n this.loading = false;\n return;\n }\n }\n\n async readMaterials(rows) {\n try {\n for (let i = 1; i < rows.length; i++) {\n let materials = await (await this.db.collection(\"Materials\").ref.where(\"name\", \"==\", rows[i][0].trim().toUpperCase()).get()).docs;\n if (materials.length == 0) {\n let newItem: any = {};\n newItem.name = rows[i][0];\n newItem.name = newItem.name.trim().toLocaleUpperCase();\n newItem.description = rows[i][1];\n newItem.unit = rows[i][2];\n newItem.size = rows[i][3];\n newItem.price = parseFloat(rows[i][4]);\n newItem.photo = {\n url: \"https://firebasestorage.googleapis.com/v0/b/constructora-56ce3.appspot.com/o/placeholder.jpeg?alt=media&token=53324723-0e82-41d8-b015-0d04cd815db0\",\n name: \"placeholder\"\n }\n this.blulkData.push(newItem);\n }\n }\n } catch (error) {\n console.log(error);\n this.loading = false;\n return;\n }\n this.count = this.blulkData.length;\n this.fileReaded = true;\n }\n\n async saveFile() {\n if (!confirm(\"Are you sure of save this data?\")) return;\n this.loading = true;\n for (let i = 0; i < this.blulkData.length; i++) {\n await this.db.collection(\"Materials\").add(this.blulkData[i]);\n }\n this.loading = false;\n alert(\"Data saved\");\n this.router.navigate(['/app/materials']);\n }\n\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2ZlYXR1cmVzL21hdGVyaWFscy9saXN0LW1hdGVyaWFscy9saXN0LW1hdGVyaWFscy5jb21wb25lbnQuY3NzIn0= */\"","import { AngularFirestore } from '@angular/fire/firestore';\nimport { Component, OnInit, ViewChild } from '@angular/core';\nimport { DataTableDirective } from 'angular-datatables';\nimport { Subject } from 'rxjs';\nimport { UploadImagesService } from 'src/app/services/storage/upload-images.service';\n\n@Component({\n selector: 'app-list-materials',\n templateUrl: './list-materials.component.html',\n styleUrls: ['./list-materials.component.css']\n})\nexport class ListMaterialsComponent implements OnInit {\n\n materialList: any = [];\n dtOptions: any = {};\n dtTrigger: Subject = new Subject();\n @ViewChild(DataTableDirective, { static: false }) datatableElement: DataTableDirective;\n\n constructor(private db: AngularFirestore,\n private uploadImagesService: UploadImagesService,) { }\n\n ngOnInit() {\n this.dtOptions = {\n pagingType: 'full_numbers',\n // Declare the use of the extension in the dom parameter\n dom: 'Bfrtip',\n // Configure the buttons\n buttons: [\n 'print',\n 'excel',\n ],\n pageLength: 8, //language: GlobalConstants.espanol\n };\n this.loadData();\n\n }\n\n async loadData() {\n this.materialList = await (await this.db.collection(\"Materials\").ref.get()).docs;\n this.dtTrigger.next();\n }\n\n delete(docKey, imageName) {\n console.log(imageName)\n if (!confirm(\"Are your sure of delete this item?\")) return;\n var index = index = this.materialList.map(x => { return x.id }).indexOf(docKey);\n this.deleteItem(docKey)\n .then(\n async res => {\n if (imageName != \"placeholder\" && imageName != undefined) {\n let deletedItem = await this.uploadImagesService.deleteFile(\"materials\", imageName);\n deletedItem.subscribe(async item => {\n //deleted item\n this.materialList.splice(index, 1);\n this.rerender();\n });\n }\n else\n this.materialList.splice(index, 1);\n },\n err => {\n console.log(err);\n }\n )\n }\n\n deleteItem(docKey) {\n return this.db.collection('Materials').doc(docKey).delete();\n }\n\n rerender(): void {\n this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {\n // Destroy the table first\n dtInstance.destroy();\n // Call the dtTrigger to rerender again\n this.dtTrigger.next();\n });\n }\n\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2ZlYXR1cmVzL21hdGVyaWFscy91cGRhdGUtbWF0ZXJpYWxzL3VwZGF0ZS1tYXRlcmlhbHMuY29tcG9uZW50LmNzcyJ9 */\"","import { Component, OnInit } from '@angular/core';\nimport { AngularFirestore } from '@angular/fire/firestore';\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { UploadImagesService } from 'src/app/services/storage/upload-images.service';\n\n@Component({\n selector: 'app-update-materials',\n templateUrl: './update-materials.component.html',\n styleUrls: ['./update-materials.component.css']\n})\nexport class UpdateMaterialsComponent implements OnInit {\n\n item = {\n name: \"\",\n description: \"\",\n price: 0.00,\n unit: \"\",\n size: \"\",\n photo: {\n name: \"placeholder\",\n url: \"https://firebasestorage.googleapis.com/v0/b/constructora-56ce3.appspot.com/o/placeholder.jpeg?alt=media&token=53324723-0e82-41d8-b015-0d04cd815db0\"\n }\n }\n\n photo;\n docKey = \"\";\n urlSafe: SafeResourceUrl;\n file: File;\n lastPhoto;\n\n constructor(private router: Router,\n public db: AngularFirestore,\n private actRoute: ActivatedRoute,\n private uploadImagesService: UploadImagesService,\n private sanitizer: DomSanitizer) { }\n\n ngOnInit() {\n this.docKey = this.actRoute.snapshot.paramMap.get('id');\n this.load(this.docKey).then(result => {\n this.item = result;\n if (this.item.photo == undefined) {\n this.item.photo = {\n name: \"placeholder\",\n url: \"https://firebasestorage.googleapis.com/v0/b/constructora-56ce3.appspot.com/o/placeholder.jpeg?alt=media&token=53324723-0e82-41d8-b015-0d04cd815db0\"\n }\n }\n this.urlSafe = this.sanitizer.bypassSecurityTrustUrl(this.item.photo.url);\n\n });\n }\n\n load(docKey) {\n return new Promise((resolve, reject) => {\n this.db.collection('Materials').doc(docKey).valueChanges()\n .subscribe(snapshots => {\n resolve(snapshots)\n })\n })\n }\n\n async updateData() {\n if (!this.validate()) {\n alert(\"Complete all data\");\n return;\n }\n\n let materials = await (await this.db.collection(\"Materials\").ref.where(\"name\", \"==\", this.item.name.trim().toUpperCase()).get()).docs;\n if (materials.length > 0) {\n if (materials[0].id != this.docKey) {\n alert(\"Material already exist in the Data Base\");\n return;\n }\n }\n\n if (!confirm(\"Are you sure of save this item?\")) return;\n\n if (this.file != undefined) {\n if (this.lastPhoto != \"placeholder\") {\n let deletedItem = await this.uploadImagesService.deleteFile(\"materials\", this.lastPhoto);\n deletedItem.subscribe(async item => {\n let result: any = await this.uploadImagesService.uploadImage(\"materials\", this.item.photo.name, this.file);\n result.subscribe(async url => {\n this.item.photo.url = url;\n this.item.name = this.item.name.trim().toLocaleUpperCase();\n this.db.collection('Materials').doc(this.docKey).set(this.item);\n alert(\"Data saved successfully\");\n this.router.navigate(['/app/materials']);\n })\n });\n }\n else {\n let result: any = await this.uploadImagesService.uploadImage(\"materials\", this.item.photo.name, this.file);\n result.subscribe(async url => {\n this.item.photo.url = url;\n this.item.name = this.item.name.trim().toLocaleUpperCase();\n this.db.collection('Materials').doc(this.docKey).set(this.item);\n alert(\"Data saved successfully\");\n this.router.navigate(['/app/materials']);\n })\n }\n\n }\n else {\n this.item.name = this.item.name.trim().toLocaleUpperCase();\n this.db.collection('Materials').doc(this.docKey).set(this.item);\n alert(\"Data saved successfully\");\n this.router.navigate(['/app/materials']);\n }\n\n }\n\n validate() {\n if (this.item.name.length == 0\n || (this.item.description != undefined && this.item.description.length == 0)\n || (this.item.unit != undefined && this.item.unit.length == 0)\n || (this.item.size != undefined && this.item.size.length == 0))\n return false;\n\n return true;\n }\n async uploadTeacherImage(event) {\n if ((event.target.files[0].size / 1024) > 1000) {\n alert(\"File is to large, max file size is 1MB\");\n this.photo = \"\";\n return;\n }\n this.item.photo.url = URL.createObjectURL(event.target.files[0]);\n this.urlSafe = this.sanitizer.bypassSecurityTrustUrl(this.item.photo.url);\n this.lastPhoto = this.item.photo.name;\n this.item.photo.name = event.target.files[0].name + new Date().toDateString() + new Date().toLocaleTimeString()\n this.file = event.target.files[0];\n }\n\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2ZlYXR1cmVzL29yZGVycy9jcmVhdGUtb3JkZXIvY3JlYXRlLW9yZGVyLmNvbXBvbmVudC5jc3MifQ== */\"","import { Component, OnInit } from '@angular/core';\nimport { AngularFirestore } from '@angular/fire/firestore';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport * as moment from 'moment';\nimport { jsPDF } from \"jspdf\";\nimport { CurrencyPipe } from '@angular/common';\nimport { UploadImagesService } from 'src/app/services/storage/upload-images.service';\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\nimport { GlobalConstants } from 'src/app/common/shared/GlobalConstans';\nimport { AngularFireFunctions } from '@angular/fire/functions';\n\n@Component({\n selector: 'app-create-order',\n templateUrl: './create-order.component.html',\n styleUrls: ['./create-order.component.css']\n})\nexport class CreateOrderComponent implements OnInit {\n\n projectList: any = [];\n materialList: any = [];\n selectedProject: any = undefined;\n scope;\n supplier;\n material;\n userName = GlobalConstants.user.user;\n orderPdf;\n item = {\n projectName: \"\",\n scope: \"\",\n scopeKey: \"\",\n supplier: \"\",\n supplierKey: \"\",\n materials: [],\n date: moment().format(\"YYYY/MM/DD\"),\n total: 0,\n projectKey: \"\",\n comments: \"\",\n taxPercent: 0,\n purchaseOrderNumber: 0\n }\n\n materialItem = {\n name: \"\",\n description: \"\",\n price: 0,\n unit: \"\",\n size: \"\",\n photo: {\n url: \"https://firebasestorage.googleapis.com/v0/b/constructora-56ce3.appspot.com/o/placeholder.jpeg?alt=media&token=53324723-0e82-41d8-b015-0d04cd815db0\",\n name: \"placeholder\"\n }\n }\n\n remaining = 0;\n total = 0;\n expended = 0;\n quantity = 0;\n price = 0;\n\n photo;\n urlSafe: SafeResourceUrl;\n file: File;\n\n constructor(private db: AngularFirestore,\n private router: Router,\n private currency: CurrencyPipe,\n private uploadImagesService: UploadImagesService,\n private sanitizer: DomSanitizer,\n private functions: AngularFireFunctions) { }\n\n ngOnInit() {\n this.loadData();\n }\n\n async loadData() {\n let projectsDocs = await (await this.db.collection(\"Projects\").ref.get()).docs;\n projectsDocs.forEach(item => {\n let project: any = item.data();\n project.id = item.id;\n this.projectList.push(project);\n });\n this.updateMaterials();\n this.urlSafe = this.sanitizer.bypassSecurityTrustUrl(this.materialItem.photo.url);\n }\n\n async updateMaterials() {\n let materialDocs = await (await this.db.collection(\"Materials\").ref.get()).docs\n materialDocs.forEach(item => {\n let material: any = item.data();\n material.id = item.id;\n this.materialList.push(material);\n });\n }\n\n selectProject(item) {\n this.selectedProject = item;\n this.item.projectKey = this.selectedProject.id;\n this.item.projectName = this.selectedProject.name;\n this.item.taxPercent = this.selectedProject.taxPercent;\n }\n\n selectSupplyer(item) {\n this.supplier = item;\n this.item.supplier = this.supplier.name;\n this.item.supplierKey = this.supplier.id;\n }\n\n selectScope(item) {\n this.scope = item;\n this.item.scope = this.scope.name;\n this.item.scopeKey = this.scope.id;\n\n this.total = this.scope.budget;\n this.calculateTotal();\n\n }\n\n async calculateTotal() {\n this.expended = 0;\n let ordersDocs = await (await this.db.collection(\"Orders\").ref.where(\"projectKey\", \"==\", this.selectedProject.id).get()).docs;\n if (ordersDocs.length > 0)\n for (let i = 0; i < ordersDocs.length; i++) {\n if (ordersDocs[i].data().scopeKey == this.item.scopeKey)\n this.expended += ordersDocs[i].data().total;\n }\n this.remaining = this.total - this.expended;\n }\n\n selectMaterial(item) {\n this.material = item;\n this.price = this.material.price;\n }\n\n addMaterial(addToScope) {\n if (this.item.materials.filter(x => x.id == this.material.id).length > 0) {\n alert(\"Material already in the order\");\n return;\n }\n let item = this.material;\n item.quantity = this.quantity;\n item.unitPrice = this.price;\n item.total = this.quantity * this.price;\n this.item.materials.push(item);\n this.expended += item.total;\n this.remaining = this.total - this.expended;\n\n this.calculateTotalOrder();\n\n if (addToScope)\n this.addMaterialToScope();\n }\n\n async addMaterialToScope() {\n let index = this.selectedProject.scopes.map(x => { return x.id }).indexOf(this.scope.id);\n this.material.itemName = this.material.name;\n this.selectedProject.scopes[index].materials.push(this.material);\n await this.db.collection(\"Projects\").doc(this.selectedProject.id).set(this.selectedProject);\n }\n\n async newMaterialToScope() {\n if (this.materialItem.name.length == 0 || this.materialItem.description.length == 0 || this.materialItem.price == 0\n || this.materialItem.size.length == 0 || this.materialItem.unit.length == 0) {\n alert(\"Complete all data\");\n return;\n }\n if (this.photo != undefined) {\n let result: any = await this.uploadImagesService.uploadImage(\"materials\", this.materialItem.photo.name, this.file);\n result.subscribe(async url => {\n this.materialItem.photo.url = url;\n this.materialItem.name = this.materialItem.name.trim().toLocaleUpperCase();\n let newMaterial = await (await this.db.collection(\"Materials\").add(this.materialItem)).get();\n let savedMaterial = newMaterial.data();\n savedMaterial.id = newMaterial.id;\n savedMaterial.itemName = savedMaterial.name;\n let index = this.selectedProject.scopes.map(x => { return x.id }).indexOf(this.scope.id);\n this.selectedProject.scopes[index].materials.push(savedMaterial);\n await this.db.collection(\"Projects\").doc(this.selectedProject.id).set(this.selectedProject);\n this.material = savedMaterial;\n this.price = savedMaterial.price;\n this.addMaterial(false);\n this.updateMaterials();\n document.getElementById(\"close-modal-newMaterial\").click();\n })\n }\n else {\n this.materialItem.name = this.materialItem.name.trim().toLocaleUpperCase();\n let newMaterial = await (await this.db.collection(\"Materials\").add(this.materialItem)).get();\n let savedMaterial = newMaterial.data();\n savedMaterial.id = newMaterial.id;\n savedMaterial.itemName = savedMaterial.name;\n let index = this.selectedProject.scopes.map(x => { return x.id }).indexOf(this.scope.id);\n this.selectedProject.scopes[index].materials.push(savedMaterial);\n await this.db.collection(\"Projects\").doc(this.selectedProject.id).set(this.selectedProject);\n this.material = savedMaterial;\n this.price = savedMaterial.price;\n this.addMaterial(false);\n this.updateMaterials();\n document.getElementById(\"close-modal-newMaterial\").click();\n }\n\n }\n\n removeMaterial(id) {\n if (!confirm(\"Are you sure of remove this item?\")) return;\n let index = this.item.materials.map(x => { return x.id }).indexOf(id);\n this.expended -= this.item.materials[index].total;\n this.remaining = this.total - this.expended;\n this.item.materials.splice(index, 1);\n this.calculateTotalOrder();\n }\n\n async saveData() {\n if (!this.validate()) {\n alert(\"Complete all data\");\n return;\n }\n if (!confirm(\"Are you sure of save this item?\")) return;\n this.calculateTotalOrder();\n this.item.purchaseOrderNumber = await this.getPurchaseOrder();\n await this.db.collection(\"Orders\").add(this.item);\n alert(\"Data saved successfully\");\n this.router.navigate(['/app/orders']);\n }\n\n keyword = 'name';\n\n calculateTotalOrder() {\n this.item.total = 0;\n for (let i = 0; i < this.item.materials.length; i++) {\n this.item.total += this.item.materials[i].total;\n }\n }\n\n\n onChangeSearch(val: string) {\n // fetch remote data from here\n // And reassign the 'data' which is binded to 'data' property.\n }\n\n onFocused(e) {\n // do something when input is focused\n }\n\n async sendToEmail() {\n\n if (!confirm(\"Are you sure of save this item?\")) return;\n this.calculateTotalOrder();\n await this.exportToPDF(true)\n await this.db.collection(\"Orders\").add(this.item);\n alert(\"Data saved successfully\");\n this.router.navigate(['/app/orders']);\n let supplier = await (await this.db.collection(\"Suppliers\").doc(this.item.supplierKey).ref.get()).data();\n console.log(supplier);\n const callable = this.functions.httpsCallable('sendOrderEmailWithPDF');\n let mailData = { emails: supplier.email, materials: this.item.materials, total: this.item.total, file: btoa(this.orderPdf) };\n console.log(mailData);\n const obs = callable(mailData);\n let res = await obs.toPromise().catch(error => console.log(error));;\n this.db.collection(\"OrdersEmails\").add({ emails: supplier.email, materials: this.item.materials, total: this.item.total });\n }\n\n async getPurchaseOrder() {\n let purchaseOrderNumber = 1;\n let orders = await (await this.db.collection(\"Orders\").ref.orderBy(\"purchaseOrderNumber\", \"desc\").limit(1).get()).docs;\n if (orders.length > 0) {\n purchaseOrderNumber = orders[0].data().purchaseOrderNumber + 1;\n }\n return purchaseOrderNumber;\n }\n\n async exportToPDF(sendToEmail) {\n if (!this.validate()) {\n alert(\"Complete all data\");\n return;\n }\n const doc = new jsPDF();\n let orderDate = moment(this.item.date).format(\"DD/MM/YYYY\");\n let purchaseOrderNumber = await this.getPurchaseOrder();\n\n doc.addImage(\"assets/img/logoC.png\", \"PNG\", 10, 10, 50, 18);\n doc.setTextColor(255, 0, 0);\n doc.setFontSize(20);\n doc.text('Soluction Construction', 10, 40);\n doc.setFont(\"helvetica\", \"bold\");\n doc.text('Purchase Order', 140, 20);\n doc.setFontSize(14);\n doc.setTextColor(0, 0, 0);\n doc.text(`DATE: ${orderDate}`, 145, 30);\n doc.text(`PO: ${purchaseOrderNumber}`, 145, 35);\n doc.setFont(\"helvetica\", \"normal\");\n doc.text('8160 NW 93 st', 10, 50);\n doc.text('Medley FL, 33166', 10, 55);\n doc.text('Phone: (786) 621-8550', 10, 60);\n\n doc.setDrawColor(0);\n doc.setFillColor(255, 0, 0);\n doc.rect(10, 65, 85, 10, \"F\");\n doc.rect(120, 65, 85, 10, \"F\");\n doc.setTextColor(255, 255, 255);\n doc.setFont(\"helvetica\", \"bold\");\n doc.text('Vendor', 11, 72);\n doc.text('Project', 121, 72);\n doc.setFont(\"helvetica\", \"normal\");\n doc.text(this.item.supplier, 30, 72);\n doc.text(this.item.projectName, 140, 72);\n doc.setTextColor(0, 0, 0);\n doc.text('Project Address:', 121, 80);\n doc.text(this.selectedProject.address != undefined ? this.selectedProject.address : \"\", 121, 85);//TODO\n\n doc.setDrawColor(0);\n doc.setFillColor(255, 0, 0);\n doc.rect(10, 100, 190, 10, \"FD\");\n doc.rect(10, 120, 50, 10, \"FD\");\n //table header\n doc.rect(10, 130, 190, 10, \"FD\");\n doc.setTextColor(255, 255, 255);\n\n doc.text(\"DESCRIPTION\", 11, 137);\n doc.text(\"QTY\", 100, 137);\n doc.text(\"UNIT PRICE\", 130, 137);\n doc.text(\"TOTAL\", 170, 137);\n\n doc.setFillColor(255, 255, 255);\n doc.rect(10, 110, 190, 10, \"FD\");\n\n doc.rect(10, 110, 190, 10, \"FD\");\n\n\n doc.text(\"Order Prepared by\", 11, 107);\n doc.text(\"SHIP VIA\", 100, 107);\n doc.setTextColor(0, 0, 0);\n doc.text(this.userName, 11, 117);\n doc.text(\"Pick Up \", 100, 117);\n doc.setTextColor(255, 255, 255);\n doc.text(`SCOPE: ${this.item.scope}`, 11, 127);\n doc.setTextColor(0, 0, 0);\n\n let yLineCell = 140;\n let yLineText = 147;\n //material table\n doc.setFontSize(11);\n for (let i = 0; i < this.item.materials.length; i++) {\n doc.setDrawColor(0);\n doc.setFillColor(255, 255, 255);\n doc.rect(10, yLineCell, 90, 10, \"FD\");\n doc.rect(100, yLineCell, 30, 10, \"FD\");\n doc.rect(130, yLineCell, 40, 10, \"FD\");\n doc.setDrawColor(0);\n doc.setFillColor(255, 0, 0);\n doc.rect(170, yLineCell, 30, 10, \"FD\");\n doc.setTextColor(0, 0, 0);\n doc.text(this.item.materials[i].name, 11, yLineText);\n doc.text(this.item.materials[i].quantity.toString(), 101, yLineText);\n doc.text(this.currency.transform(this.item.materials[i].unitPrice.toString()), 131, yLineText);\n doc.text(this.currency.transform(this.item.materials[i].total.toString()), 171, yLineText);\n\n yLineCell = yLineCell + 10;\n yLineText = yLineText + 10;\n\n if (yLineText >= 257) {\n doc.addPage();\n yLineCell = 10;\n yLineText = 17;\n }\n }\n\n doc.setDrawColor(0);\n doc.setFillColor(255, 0, 0);\n doc.rect(10, yLineCell, 90, 10, \"FD\");\n doc.text(\"Comments or Special Instructions\", 11, yLineCell + 7);\n yLineCell += 10;\n doc.setDrawColor(0);\n doc.setFillColor(255, 255, 255);\n doc.rect(10, yLineCell, 90, 30, \"FD\");\n doc.line(170, yLineCell + 1, 200, yLineCell + 1);\n doc.setFontSize(14);\n doc.text(this.currency.transform(this.item.total), 171, yLineCell);\n yLineCell += 7;\n doc.text(\"SUBTOTAL\", 171, yLineCell);\n doc.setFontSize(9);\n doc.text(this.item.comments, 11, yLineCell);\n\n yLineCell += 10;\n doc.line(170, yLineCell + 1, 200, yLineCell + 1);\n doc.setFontSize(14);\n doc.text(this.currency.transform((this.item.total * (this.item.taxPercent / 100))), 171, yLineCell);\n yLineCell += 7;\n\n doc.text(\"TAXES\", 171, yLineCell);\n doc.setFontSize(14);\n yLineCell += 10;\n doc.line(170, yLineCell + 1, 200, yLineCell + 1);\n doc.text(this.currency.transform(this.item.total + (this.item.total * (this.item.taxPercent / 100))), 171, yLineCell);\n doc.setFontSize(14);\n yLineCell += 7;\n doc.text(\"TOTAL\", 171, yLineCell);\n\n if (sendToEmail)\n this.orderPdf = doc.output();\n else {\n doc.save(`order-${orderDate}${purchaseOrderNumber}.pdf`);\n this.item.purchaseOrderNumber = await this.getPurchaseOrder();\n await this.db.collection(\"Orders\").add(this.item);\n alert(\"Data saved successfully\");\n this.router.navigate(['/app/orders']);\n }\n }\n\n createHeaders(keys) {\n var result = [];\n for (var i = 0; i < keys.length; i += 1) {\n result.push({\n id: keys[i],\n name: keys[i],\n prompt: keys[i],\n width: 150,\n align: \"left\"\n });\n }\n return result;\n }\n\n validate() {\n if (this.item.materials.length == 0) {\n return false;\n }\n\n return true;\n }\n\n cancel() {\n this.router.navigate(['/app/orders']);\n }\n\n async uploadTeacherImage(event) {\n if ((event.target.files[0].size / 1024) > 1000) {\n alert(\"File is to large, max file size is 1MB\");\n this.photo = \"\";\n return;\n }\n this.materialItem.photo.url = URL.createObjectURL(event.target.files[0]);\n this.urlSafe = this.sanitizer.bypassSecurityTrustUrl(this.materialItem.photo.url);\n this.materialItem.photo.name = event.target.files[0].name + new Date().toDateString() + new Date().toLocaleTimeString()\n this.file = event.target.files[0];\n }\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2ZlYXR1cmVzL29yZGVycy9saXN0LW9yZGVycy9saXN0LW9yZGVycy5jb21wb25lbnQuY3NzIn0= */\"","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { AngularFirestore } from '@angular/fire/firestore';\nimport { DataTableDirective } from 'angular-datatables';\nimport { Subject } from 'rxjs';\nimport { UiService } from 'src/app/services/ui.service';\n\n@Component({\n selector: 'app-list-orders',\n templateUrl: './list-orders.component.html',\n styleUrls: ['./list-orders.component.css']\n})\nexport class ListOrdersComponent implements OnInit {\n\n orderList: any = [];\n dtOptions: any = {};\n dtTrigger: Subject = new Subject();\n @ViewChild(DataTableDirective, { static: false }) datatableElement: DataTableDirective;\n\n constructor(private db: AngularFirestore,\n public uiService: UiService) { }\n\n ngOnInit() {\n this.dtOptions = {\n pagingType: 'full_numbers',\n // Declare the use of the extension in the dom parameter\n dom: 'Bfrtip',\n // Configure the buttons\n buttons: [\n 'print',\n 'excel',\n ],\n pageLength: 8, //language: GlobalConstants.espanol\n };\n this.loadData();\n }\n\n async loadData() {\n this.orderList = await (await this.db.collection(\"Orders\").ref.get()).docs;\n this.dtTrigger.next();\n }\n\n delete(docKey) {\n if (!confirm(\"Are you sure of delete this item?\")) return;\n var index = index = this.orderList.map(x => { return x.id }).indexOf(docKey);\n this.deleteItem(docKey)\n .then(\n res => {\n this.orderList.splice(index, 1);\n this.rerender();\n },\n err => {\n console.log(err);\n }\n )\n }\n\n deleteItem(docKey) {\n return this.db.collection('Orders').doc(docKey).delete();\n }\n\n rerender(): void {\n this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {\n // Destroy the table first\n dtInstance.destroy();\n // Call the dtTrigger to rerender again\n this.dtTrigger.next();\n });\n }\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2ZlYXR1cmVzL29yZGVycy91cGRhdGUtb3JkZXIvdXBkYXRlLW9yZGVyLmNvbXBvbmVudC5jc3MifQ== */\"","import { CurrencyPipe } from '@angular/common';\nimport { BOOL_TYPE } from '@angular/compiler/src/output/output_ast';\nimport { Component, OnInit } from '@angular/core';\nimport { AngularFirestore } from '@angular/fire/firestore';\nimport { AngularFireFunctions } from '@angular/fire/functions';\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport jsPDF from 'jspdf';\nimport * as moment from 'moment';\nimport { GlobalConstants } from 'src/app/common/shared/GlobalConstans';\nimport { UploadImagesService } from 'src/app/services/storage/upload-images.service';\n\n@Component({\n selector: 'app-update-order',\n templateUrl: './update-order.component.html',\n styleUrls: ['./update-order.component.css']\n})\nexport class UpdateOrderComponent implements OnInit {\n\n projectList: any = [];\n materialList: any = [];\n selectedProject: any = undefined;\n scope;\n supplier;\n material;\n userName = GlobalConstants.user.user;\n\n\n item = {\n projectName: \"\",\n scope: \"\",\n scopeKey: \"\",\n supplier: \"\",\n supplierKey: \"\",\n materials: [],\n date: new Date(),\n total: 0,\n projectKey: \"\",\n comments: \"\",\n purchaseOrderNumber: 0,\n taxPercent: 1\n }\n\n orderPdf;\n\n materialItem = {\n name: \"\",\n description: \"\",\n price: 0,\n unit: \"\",\n size: \"\",\n photo: {\n url: \"https://firebasestorage.googleapis.com/v0/b/constructora-56ce3.appspot.com/o/placeholder.jpeg?alt=media&token=53324723-0e82-41d8-b015-0d04cd815db0\",\n name: \"placeholder\"\n }\n }\n\n remaining = 0;\n total = 0;\n expended = 0;\n\n quantity = 0;\n price = 0;\n\n docKey = \"\"\n\n photo;\n urlSafe: SafeResourceUrl;\n file: File;\n\n constructor(private db: AngularFirestore,\n private router: Router,\n private actRoute: ActivatedRoute,\n private currency: CurrencyPipe,\n private sanitizer: DomSanitizer,\n private uploadImagesService: UploadImagesService,\n private functions: AngularFireFunctions) { }\n\n ngOnInit() {\n this.loadData();\n }\n\n load(docKey) {\n return new Promise((resolve, reject) => {\n this.db.collection('Orders').doc(docKey).valueChanges()\n .subscribe(snapshots => {\n resolve(snapshots)\n })\n })\n }\n\n async loadData() {\n this.docKey = this.actRoute.snapshot.paramMap.get('id');\n this.load(this.docKey).then(async result => {\n this.item = result;\n this.calculateTotal();\n let project = await (await this.db.collection(\"Projects\").ref.doc(this.item.projectKey).get());\n this.selectedProject = { ...project.data(), id: project.id };\n this.item.taxPercent = this.selectedProject.taxPercent;\n });\n this.updateMaterials();\n }\n\n async updateMaterials() {\n let materialDocs = await (await this.db.collection(\"Materials\").ref.get()).docs\n materialDocs.forEach(item => {\n let material: any = item.data();\n material.id = item.id;\n this.materialList.push(material);\n });\n }\n\n selectProject(item) {\n this.selectedProject = item;\n this.item.projectKey = this.selectedProject.id;\n this.item.projectName = this.selectedProject.name;\n }\n\n selectSupplyer(item) {\n this.supplier = item;\n this.item.supplier = this.supplier.name;\n }\n\n selectScope(item) {\n this.scope = item;\n this.item.scope = this.scope.name;\n this.item.scopeKey = this.scope.id;\n this.total = this.scope.budget;\n this.calculateTotal();\n\n }\n\n async calculateTotal() {\n\n let project: any = await (await this.db.collection(\"Projects\").ref.doc(this.item.projectKey).get()).data();\n project.scopes.forEach(element => {\n if (element.id == this.item.scopeKey) {\n this.total = element.budget;\n this.scope = element;\n }\n });\n\n\n let ordersDocs = await (await this.db.collection(\"Orders\").ref.where(\"projectKey\", \"==\", this.item.projectKey).get()).docs;\n if (ordersDocs.length > 0)\n for (let i = 0; i < ordersDocs.length; i++) {\n if (ordersDocs[i].data().scopeKey == this.item.scopeKey)\n this.expended += ordersDocs[i].data().total;\n }\n this.remaining = this.total - this.expended;\n }\n\n selectMaterial(item) {\n this.material = item;\n this.price = this.material.price;\n }\n\n addMaterial(addToScope) {\n if (this.item.materials.filter(x => x.id == this.material.id).length > 0) {\n alert(\"Material already in the order\");\n return;\n }\n let item = this.material;\n item.quantity = this.quantity;\n item.unitPrice = this.price;\n item.total = this.quantity * this.price;\n this.item.materials.push(item);\n this.expended += item.total;\n this.remaining = this.total - this.expended;\n this.calculateTotalOrder();\n\n if (addToScope)\n this.addMaterialToScope();\n }\n\n async addMaterialToScope() {\n console.log(this.selectedProject);\n let index = this.selectedProject.scopes.map(x => { return x.id }).indexOf(this.scope.id);\n this.selectedProject.scopes[index].materials.push(this.material);\n await this.db.collection(\"Projects\").doc(this.selectedProject.id).set(this.selectedProject);\n }\n\n removeMaterial(id) {\n if (!confirm(\"Are you sure of remove this item?\")) return;\n let index = this.item.materials.map(x => { return x.id }).indexOf(id);\n this.expended -= this.item.materials[index].total;\n this.remaining = this.total - this.expended;\n this.item.materials.splice(index, 1);\n this.calculateTotalOrder();\n }\n\n async saveData() {\n if (!this.validate()) {\n alert(\"Complete all data\");\n return;\n }\n if (!confirm(\"Are you sure of save this item?\")) return;\n this.item.total = 0;\n this.calculateTotalOrder();\n await this.db.collection(\"Orders\").doc(this.docKey).set(this.item);\n alert(\"Data saved successfully\");\n this.router.navigate(['/app/orders']);\n }\n\n keyword = 'name';\n\n\n onChangeSearch(val: string) {\n // fetch remote data from here\n // And reassign the 'data' which is binded to 'data' property.\n }\n\n onFocused(e) {\n // do something when input is focused\n }\n\n calculateTotalOrder() {\n this.item.total = 0;\n for (let i = 0; i < this.item.materials.length; i++) {\n this.item.total += this.item.materials[i].total;\n }\n }\n\n async newMaterialToScope() {\n if (this.materialItem.name.length == 0 || this.materialItem.description.length == 0 || this.materialItem.price == 0\n || this.materialItem.size.length == 0 || this.materialItem.unit.length == 0) {\n alert(\"Complete all data\");\n return;\n }\n if (this.photo != undefined) {\n let result: any = await this.uploadImagesService.uploadImage(\"materials\", this.materialItem.photo.name, this.file);\n result.subscribe(async url => {\n this.materialItem.photo.url = url;\n this.materialItem.name = this.materialItem.name.trim().toLocaleUpperCase();\n let newMaterial = await (await this.db.collection(\"Materials\").add(this.materialItem)).get();\n let savedMaterial = newMaterial.data();\n savedMaterial.id = newMaterial.id;\n savedMaterial.itemName = savedMaterial.name;\n let index = this.selectedProject.scopes.map(x => { return x.id }).indexOf(this.scope.id);\n this.selectedProject.scopes[index].materials.push(savedMaterial);\n await this.db.collection(\"Projects\").doc(this.selectedProject.id).set(this.selectedProject);\n this.material = savedMaterial;\n this.price = savedMaterial.price;\n this.addMaterial(false);\n this.updateMaterials();\n document.getElementById(\"close-modal-newMaterial\").click();\n })\n }\n else {\n this.materialItem.name = this.materialItem.name.trim().toLocaleUpperCase();\n let newMaterial = await (await this.db.collection(\"Materials\").add(this.materialItem)).get();\n let savedMaterial = newMaterial.data();\n savedMaterial.id = newMaterial.id;\n savedMaterial.itemName = savedMaterial.name;\n let index = this.selectedProject.scopes.map(x => { return x.id }).indexOf(this.scope.id);\n this.selectedProject.scopes[index].materials.push(savedMaterial);\n await this.db.collection(\"Projects\").doc(this.selectedProject.id).set(this.selectedProject);\n this.material = savedMaterial;\n this.price = savedMaterial.price;\n this.addMaterial(false);\n this.updateMaterials();\n document.getElementById(\"close-modal-newMaterial\").click();\n }\n }\n\n\n async exportToPDF(print, sendToEmail) {\n if (!this.validate()) {\n alert(\"Complete all data\");\n return;\n }\n const doc = new jsPDF();\n let orderDate = moment(this.item.date).format(\"DD/MM/YYYY\");\n let purchaseOrderNumber = this.item.purchaseOrderNumber;\n\n doc.addImage(\"assets/img/logoC.png\", \"PNG\", 10, 10, 50, 18);\n doc.setTextColor(255, 0, 0);\n doc.setFontSize(20);\n doc.text('Soluction Construction', 10, 40);\n doc.setFont(\"helvetica\", \"bold\");\n doc.text('Purchase Order', 140, 20);\n doc.setFontSize(14);\n doc.setTextColor(0, 0, 0);\n doc.text(`DATE: ${orderDate}`, 145, 30);\n doc.text(`PO: ${purchaseOrderNumber}`, 145, 35);\n doc.setFont(\"helvetica\", \"normal\");\n doc.text('8160 NW 93 st', 10, 50);\n doc.text('Medley FL, 33166', 10, 55);\n doc.text('Phone: (786) 621-8550', 10, 60);\n\n doc.setDrawColor(0);\n doc.setFillColor(255, 0, 0);\n doc.rect(10, 65, 85, 10, \"F\");\n doc.rect(120, 65, 85, 10, \"F\");\n doc.setTextColor(255, 255, 255);\n doc.setFont(\"helvetica\", \"bold\");\n doc.text('Vendor', 11, 72);\n doc.text('Project', 121, 72);\n doc.setFont(\"helvetica\", \"normal\");\n doc.text(this.item.supplier, 30, 72);\n doc.text(this.item.projectName, 140, 72);\n doc.setTextColor(0, 0, 0);\n doc.text('Project Address:', 121, 80);\n doc.text(this.selectedProject.address != undefined ? this.selectedProject.address : \"\", 121, 85);//TODO\n\n doc.setDrawColor(0);\n doc.setFillColor(255, 0, 0);\n doc.rect(10, 100, 190, 10, \"FD\");\n doc.rect(10, 120, 50, 10, \"FD\");\n //table header\n doc.rect(10, 130, 190, 10, \"FD\");\n doc.setTextColor(255, 255, 255);\n\n doc.text(\"DESCRIPTION\", 11, 137);\n doc.text(\"QTY\", 100, 137);\n doc.text(\"UNIT PRICE\", 130, 137);\n doc.text(\"TOTAL\", 170, 137);\n\n doc.setFillColor(255, 255, 255);\n doc.rect(10, 110, 190, 10, \"FD\");\n\n doc.rect(10, 110, 190, 10, \"FD\");\n\n\n doc.text(\"Order Prepared by\", 11, 107);\n doc.text(\"SHIP VIA\", 100, 107);\n doc.setTextColor(0, 0, 0);\n doc.text(this.userName, 11, 117);\n doc.text(\"Pick Up \", 100, 117);\n doc.setTextColor(255, 255, 255);\n doc.text(`SCOPE: ${this.item.scope}`, 11, 127);\n doc.setTextColor(0, 0, 0);\n\n let yLineCell = 140;\n let yLineText = 147;\n //material table\n doc.setFontSize(11);\n for (let i = 0; i < this.item.materials.length; i++) {\n doc.setDrawColor(0);\n doc.setFillColor(255, 255, 255);\n doc.rect(10, yLineCell, 90, 10, \"FD\");\n doc.rect(100, yLineCell, 30, 10, \"FD\");\n doc.rect(130, yLineCell, 40, 10, \"FD\");\n doc.setDrawColor(0);\n doc.setFillColor(255, 0, 0);\n doc.rect(170, yLineCell, 30, 10, \"FD\");\n doc.setTextColor(0, 0, 0);\n doc.text(this.item.materials[i].name, 11, yLineText);\n doc.text(this.item.materials[i].quantity.toString(), 101, yLineText);\n doc.text(this.currency.transform(this.item.materials[i].unitPrice.toString()), 131, yLineText);\n doc.text(this.currency.transform(this.item.materials[i].total.toString()), 171, yLineText);\n\n yLineCell = yLineCell + 10;\n yLineText = yLineText + 10;\n\n if (yLineText >= 257) {\n doc.addPage();\n yLineCell = 10;\n yLineText = 17;\n }\n }\n\n doc.setDrawColor(0);\n doc.setFillColor(255, 0, 0);\n doc.rect(10, yLineCell, 90, 10, \"FD\");\n doc.text(\"Comments or Special Instructions\", 11, yLineCell + 7);\n yLineCell += 10;\n doc.setDrawColor(0);\n doc.setFillColor(255, 255, 255);\n doc.rect(10, yLineCell, 90, 30, \"FD\");\n doc.line(170, yLineCell + 1, 200, yLineCell + 1);\n doc.setFontSize(14);\n doc.text(this.currency.transform(this.item.total), 171, yLineCell);\n yLineCell += 7;\n doc.text(\"SUBTOTAL\", 171, yLineCell);\n doc.setFontSize(9);\n doc.text(this.item.comments, 11, yLineCell);\n\n yLineCell += 10;\n doc.line(170, yLineCell + 1, 200, yLineCell + 1);\n doc.setFontSize(14);\n doc.text(this.currency.transform((this.item.total * (this.item.taxPercent / 100))), 171, yLineCell);\n yLineCell += 7;\n\n doc.text(\"TAXES\", 171, yLineCell);\n doc.setFontSize(14);\n yLineCell += 10;\n doc.line(170, yLineCell + 1, 200, yLineCell + 1);\n doc.text(this.currency.transform(this.item.total + (this.item.total * (this.item.taxPercent / 100))), 171, yLineCell);\n doc.setFontSize(14);\n yLineCell += 7;\n doc.text(\"TOTAL\", 171, yLineCell);\n\n if (sendToEmail)\n this.orderPdf = doc.output();\n else\n if (print == true) {\n var iframe = document.createElement('iframe');\n iframe.id = \"iprint\";\n iframe.name = \"iprint\";\n iframe.src = doc.output('bloburl').toString();\n iframe.setAttribute('style', 'display: none;');\n document.body.appendChild(iframe);\n iframe.contentWindow.print();\n }\n else\n doc.save(`order-${orderDate}${purchaseOrderNumber}.pdf`);\n\n\n }\n\n validate() {\n if (this.item.materials.length == 0) {\n return false;\n }\n return true;\n }\n\n cancel() {\n this.router.navigate(['/app/orders']);\n }\n\n async sendToEmail() {\n if (!confirm(\"Are you sure of send this item?\")) return;\n let supplier = await (await this.db.collection(\"Suppliers\").doc(this.item.supplierKey).ref.get()).data();\n await this.exportToPDF(true, true);\n const callable = this.functions.httpsCallable('sendOrderEmailWithPDF');\n let mailData = { emails: supplier.email, materials: this.item.materials, total: this.item.total, file: btoa(this.orderPdf) };\n console.log(mailData);\n const obs = callable(mailData);\n let res = await obs.toPromise().catch(error => console.log(error));;\n this.db.collection(\"OrdersEmails\").add({ emails: supplier.email, materials: this.item.materials, total: this.item.total });\n alert(\"Order was sent\");\n }\n\n async uploadTeacherImage(event) {\n if ((event.target.files[0].size / 1024) > 1000) {\n alert(\"File is to large, max file size is 1MB\");\n this.photo = \"\";\n return;\n }\n this.materialItem.photo.url = URL.createObjectURL(event.target.files[0]);\n this.urlSafe = this.sanitizer.bypassSecurityTrustUrl(this.materialItem.photo.url);\n this.materialItem.photo.name = event.target.files[0].name + new Date().toDateString() + new Date().toLocaleTimeString()\n this.file = event.target.files[0];\n }\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2ZlYXR1cmVzL3Byb3llY3RzL2NyZWF0ZS1wcm95ZWN0L2NyZWF0ZS1wcm95ZWN0LmNvbXBvbmVudC5jc3MifQ== */\"","import { Component, OnInit } from '@angular/core';\nimport { AngularFirestore } from '@angular/fire/firestore';\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\nimport { Router } from '@angular/router';\nimport * as moment from 'moment';\n\n@Component({\n selector: 'app-create-proyect',\n templateUrl: './create-proyect.component.html',\n styleUrls: ['./create-proyect.component.css']\n})\nexport class CreateProyectComponent implements OnInit {\n\n item = {\n price: 0,\n name: \"\",\n phone: \"\",\n budget: 0,\n address: \"\",\n scopes: [],\n supplyers: [],\n taxPercent: 0,\n initDate: moment().format(\"YYYY/MM/DD\")\n }\n\n dropdownList = [];\n selectedItems = [];\n dropdownSettings = {};\n scopeBudget = 0;\n scopeList: any = [];\n materialsList: any = [];\n supplyersList: any = [];\n selectedScope: any;\n selectedMaterial: any;\n selectedSupplier: any;\n currentScope: any;\n scopeIndex = 0;\n price = 0;\n quantity = 0;\n urlSafe: SafeResourceUrl;\n count = 0;\n\n materialItem = {\n name: \"\",\n description: \"\",\n price: 0,\n unit: \"\",\n size: \"\",\n photo: {\n url: \"https://firebasestorage.googleapis.com/v0/b/constructora-56ce3.appspot.com/o/placeholder.jpeg?alt=media&token=53324723-0e82-41d8-b015-0d04cd815db0\",\n name: \"placeholder\"\n }\n }\n\n constructor(private db: AngularFirestore,\n private router: Router,\n private sanitizer: DomSanitizer) { }\n\n ngOnInit() {\n this.loadName();\n this.loadData();\n \n this.dropdownList = this.materialsList;\n this.selectedItems = [];\n this.dropdownSettings = {\n singleSelection: false,\n enableCheckAll: false,\n text: \"Select materials\",\n selectAllText: 'Select All',\n unSelectAllText: 'UnSelect All',\n enableSearchFilter: true,\n classes: \"myclass custom-class\"\n };\n this.urlSafe = this.sanitizer.bypassSecurityTrustUrl(\"https://firebasestorage.googleapis.com/v0/b/constructora-56ce3.appspot.com/o/placeholder.jpeg?alt=media&token=53324723-0e82-41d8-b015-0d04cd815db0\");\n }\n\n async loadData() {\n let scopesDocs = await (await this.db.collection(\"Scopes\").ref.get()).docs;\n scopesDocs.forEach(item => {\n let scope: any = item.data();\n scope.id = item.id;\n this.scopeList.push(scope);\n });\n\n let materialDocs = await (await this.db.collection(\"Materials\").ref.get()).docs;\n materialDocs.forEach(item => {\n let material: any = item.data();\n material.id = item.id;\n material.name = item.data().name != undefined ? item.data().name : \"Error: \" + material.id;\n if (item.data().photo == undefined)\n material.image = \"https://firebasestorage.googleapis.com/v0/b/constructora-56ce3.appspot.com/o/placeholder.jpeg?alt=media&token=53324723-0e82-41d8-b015-0d04cd815db0\";\n else\n material.image = item.data().photo.url;\n this.materialsList.push(material);\n });\n\n let supplierDocs = await (await this.db.collection(\"Suppliers\").ref.get()).docs;\n supplierDocs.forEach(item => {\n let supplier: any = item.data();\n supplier.id = item.id;\n this.supplyersList.push(supplier);\n });\n }\n\n async loadName(){\n let projectsDocs = await (await this.db.collection(\"Correlative\").doc(\"Projects\"))\n .get().toPromise();\n\n this.count = projectsDocs.data().count + 1;\n \n this.item.name = \"Cotización - \" + moment().format(\"YYMM\") + this.count;\n }\n\n addScopesToProject() {\n if (this.item.scopes.filter(x => x.id == this.selectedScope.id).length == 0) {\n this.selectedScope.budget = parseInt(this.scopeBudget.toString());\n this.selectedScope.materials = [];\n let newItem = this.selectedScope;\n this.item.scopes.push(newItem);\n this.item.budget += this.selectedScope.budget;\n }\n else\n alert(\"Scope is already add to the project\")\n }\n\n addMaterials() {\n if (this.item.scopes[this.scopeIndex].materials.filter(x => x.id == this.selectedMaterial.id).length == 0) {\n this.selectedMaterial.quantity = this.quantity;\n this.selectedMaterial.total = this.quantity * this.price;\n this.item.scopes[this.scopeIndex].budget = this.item.scopes[this.scopeIndex].budget + (this.quantity * this.price);\n this.item.scopes[this.scopeIndex].materials.push(this.selectedMaterial);\n this.item.budget = this.item.budget + this.quantity * this.price;\n }\n else\n alert(\"Supplier is already add to the scope\")\n }\n\n removeMaterial(id, scopeId) {\n if (!confirm(\"Are you sure of delete this item?\")) return;\n let indexScopes = this.item.scopes.map(x => { return x.id }).indexOf(scopeId);\n let indexMat = this.item.scopes[indexScopes].materials.map(x => { return x.id }).indexOf(id);\n if (this.item.scopes[indexScopes].materials[indexMat] != undefined) {\n this.item.scopes[indexScopes].budget =\n this.item.scopes[indexScopes].budget -\n this.item.scopes[indexScopes].materials[indexMat].total;\n\n this.item.budget = this.item.budget - this.item.scopes[indexScopes].materials[indexMat].total;\n\n this.item.scopes[indexScopes].materials.splice(indexMat, 1);\n }\n }\n\n addSupplier() {\n if (this.item.supplyers.filter(x => x.id == this.selectedSupplier.id).length == 0)\n this.item.supplyers.push(this.selectedSupplier);\n else\n alert(\"Supplier is already add to the project\")\n }\n\n\n async saveData() {\n if (!this.validate()) {\n alert(\"Complete all data\");\n return;\n }\n if (!confirm(\"Are you sure of save this item?\")) return;\n await this.db.collection(\"Projects\").add(this.item);\n alert(\"Data saved successfully\");\n this.db.collection(\"Correlative\").doc(\"Projects\").update({count : this.count + 1})\n this.router.navigate(['/app/proyects']);\n }\n\n keyword = 'name';\n\n\n onChangeSearch(val: string) {\n // fetch remote data from here\n // And reassign the 'data' which is binded to 'data' property.\n }\n\n onFocused(e) {\n // do something when input is focused\n }\n\n selectScope(item) {\n console.log(this.scopeBudget);\n let newItem = item;\n this.selectedScope = newItem;\n\n }\n\n selectMaterial(item) {\n let newItem = item;\n this.selectedMaterial = newItem;\n if (this.selectedMaterial.photo != undefined)\n this.urlSafe = this.sanitizer.bypassSecurityTrustUrl(this.selectedMaterial.photo.url);\n console.log(this.selectedMaterial);\n this.price = this.selectedMaterial.price;\n }\n\n selectSupplier(item) {\n let newItem = item;\n this.selectedSupplier = newItem;\n }\n\n showMaterials(materials) {\n let materiaStr = \"\";\n for (let i = 0; i < materials.length; i++) {\n materiaStr += \"

\" + materials[i].name + \"(\" + materials[i].quantity + \")\" + \"

\";\n }\n return materiaStr;\n }\n\n newMaterial(id) {\n document.getElementById(\"newMaterialModalBtn\").click();\n this.scopeIndex = this.scopeIndex = this.item.scopes.map(x => { return x.id }).indexOf(id);\n \n }\n\n openMaterials(id) {\n document.getElementById(\"openModalButton3\").click();\n this.scopeIndex = this.scopeIndex = this.item.scopes.map(x => { return x.id }).indexOf(id);\n }\n\n removeSupplier(id) {\n if (!confirm(\"Are you sure of delete this item?\")) return;\n let indexSupplier = this.item.supplyers.map(x => { return x.id }).indexOf(id);\n this.item.supplyers.splice(indexSupplier, 1);\n }\n\n removeScopes(id) {\n if (!confirm(\"Are you sure of delete this item?\")) return;\n let indexScopes = this.item.scopes.map(x => { return x.id }).indexOf(id);\n this.item.budget -= this.item.scopes[indexScopes].budget;\n this.item.scopes.splice(indexScopes, 1);\n }\n\n //Action multiselect\n onItemSelect(item: any) {\n console.log(item);\n console.log(this.selectedItems);\n }\n OnItemDeSelect(item: any) {\n console.log(item);\n console.log(this.selectedItems);\n }\n onSelectAll(items: any) {\n console.log(items);\n }\n onDeSelectAll(items: any) {\n console.log(items);\n }\n\n validate() {\n if (this.item.name.length == 0\n || this.item.phone.length == 0\n || this.item.address.length == 0\n || this.item.scopes.length == 0\n || this.item.supplyers.length == 0) {\n return false;\n }\n\n return true;\n }\n\n async newMaterialToScope() {\n if (this.materialItem.name.length == 0 || this.materialItem.description.length == 0 || this.materialItem.price == 0\n || this.materialItem.size.length == 0 || this.materialItem.unit.length == 0) {\n alert(\"Complete all data\");\n return;\n }\n this.materialItem.name = this.materialItem.name.trim().toLocaleUpperCase();\n let newMaterial = await (await this.db.collection(\"Materials\").add(this.materialItem)).get();\n let savedMaterial = newMaterial.data();\n savedMaterial.id = newMaterial.id;\n savedMaterial.itemName = savedMaterial.name;\n this.item.scopes[this.scopeIndex].materials.push(savedMaterial);\n this.selectedMaterial = savedMaterial;\n this.selectedMaterial.quantity = this.quantity;\n this.selectedMaterial.total = this.quantity * savedMaterial.price;\n this.item.scopes[this.scopeIndex].budget = this.item.scopes[this.scopeIndex].budget + (this.quantity * savedMaterial.price);\n this.item.budget = this.item.budget + this.quantity * savedMaterial.price;\n\n document.getElementById(\"close-modal-newMaterial\").click();\n }\n\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2ZlYXR1cmVzL3Byb3llY3RzL2ltcG9ydC1ibHVsay1wcm95ZWN0cy9pbXBvcnQtYmx1bGstcHJveWVjdHMuY29tcG9uZW50LmNzcyJ9 */\"","import { Component, OnInit } from '@angular/core';\nimport { AngularFirestore } from '@angular/fire/firestore';\nimport { Router } from '@angular/router';\nimport * as moment from 'moment';\nimport readXlsxFile from 'read-excel-file'\nimport { throwError } from 'rxjs';\n\n@Component({\n selector: 'app-import-blulk-proyects',\n templateUrl: './import-blulk-proyects.component.html',\n styleUrls: ['./import-blulk-proyects.component.css']\n})\nexport class ImportBlulkProyectsComponent implements OnInit {\n\n public loading = false;\n blulkData = [];\n file: any;\n data: any;\n count = 0;\n fileReaded = false;\n meterialsWithErrors = [];\n\n constructor(public db: AngularFirestore,\n private router: Router,) { }\n\n ngOnInit() {\n }\n\n fileChanged(e) {\n this.file = e.target.files[0];\n this.meterialsWithErrors = [];\n }\n\n readFile() {\n if (!confirm(\"Are you sure of read this file?\")) return;\n this.loading = true;\n this.blulkData = [];\n try {\n readXlsxFile(this.file, { getSheets: true }).then((sheets) => {\n for (let i = 0; i < sheets.length; i++) {\n readXlsxFile(this.file, { sheet: sheets[i].name }).then(async (rows) => {\n this.data = rows;\n await this.readProject(rows)\n this.loading = false;\n }, errors => {\n console.log(errors);\n alert(\"Error reading file\");\n this.loading = false;\n });\n }\n });\n\n\n } catch (error) {\n console.log(error);\n alert(\"Error reading file\");\n this.loading = false;\n return;\n }\n }\n\n async readProject(rows) {\n try {\n let newItem: any = {};\n //Get general data\n for (let i = 1; i < 2; i++) {\n newItem.name = rows[i][0];\n newItem.initDate = moment(rows[i][1], \"DD/MM/YYYY\").format(\"YYYY/MM/DD\");\n newItem.phone = rows[i][2];\n newItem.budget = 0;\n newItem.address = rows[i][3];\n newItem.taxPercent = parseInt(rows[i][5].trim());\n newItem.supplyers = [];\n let suppliers: string[] = rows[i][4].split(\"/\");\n for (let i = 0; i < suppliers.length; i++) {\n let supplier = await (await this.db.collection(\"Suppliers\").ref.where(\"name\", \"==\", suppliers[i].trim().toUpperCase()).get()).docs;\n if (supplier.length > 0)\n newItem.supplyers.push({ ...supplier[0].data(), id: supplier[0].id });\n else\n throwError(\"No se puede leer\");\n }\n }\n\n newItem.scopes = [];\n\n //Get material data\n for (let i = 4; i < rows.length; i++) {\n let scopeName = rows[i][0];\n console.log(scopeName);\n let scopes = await (await this.db.collection(\"Scopes\").ref.where(\"name\", \"==\", scopeName.trim().toUpperCase()).get()).docs;\n if (scopes.length > 0) {\n let fscope = scopes[0].data();\n fscope.id = scopes[0].id;\n fscope.budget = 0;\n fscope.materials = [];\n let validate = true;\n\n for (let j = i + 1; validate == true; j++) {\n if (j >= rows.length) {\n validate = false;\n i = j;\n break;\n }\n if (rows[j][1] != null) {\n let newMat = rows[j][1].trim();\n let quantity = rows[j][9];\n let price = rows[j][10];\n let materials = await (await this.db.collection(\"Materials\").ref.where(\"name\", \"==\", newMat.trim().toUpperCase()).get()).docs;\n if (materials.length > 0) {\n try {\n let fmaterial = materials[0].data();\n fmaterial.id = materials[0].id;\n fmaterial.itemName = materials[0].data().name;\n fmaterial.quantity = parseFloat(quantity);\n fmaterial.price = parseFloat(price);\n fmaterial.total = quantity * fmaterial.price;\n fmaterial.total = this.round(fmaterial.total);\n if (isNaN(fmaterial.total)) {\n console.log(newMat);\n this.meterialsWithErrors.push(newMat);\n throwError(\"No se puede leer\");\n }\n newItem.budget = newItem.budget + fmaterial.total;\n fscope.budget = fscope.budget + fmaterial.total;\n fscope.materials.push(fmaterial);\n } catch (e) {\n this.meterialsWithErrors.push(newMat);\n console.log(newMat)\n }\n }\n else {\n try {\n //console.log(newMat.trim().toUpperCase())\n let fmaterial: any = {};\n fmaterial.itemName = newMat.trim().toUpperCase();\n fmaterial.name = newMat.trim().toUpperCase();\n fmaterial.quantity = parseFloat(quantity);\n fmaterial.price = parseFloat(price);\n fmaterial.total = quantity * fmaterial.price;\n fmaterial.total = this.round(fmaterial.total);\n if (fmaterial.total == NaN) {\n console.log(newMat);\n throwError(\"No se puede leer\");\n }\n let mat = await (await this.db.collection(\"Materials\").add(fmaterial)).get();\n fmaterial.id = mat.id;\n //fmaterial.id = \"asdas\";\n newItem.budget = newItem.budget + fmaterial.total;\n fscope.budget = fscope.budget + fmaterial.total;\n fscope.materials.push(fmaterial);\n //throwError(\"No se puede leer\");\n }\n catch (e) {\n this.meterialsWithErrors.push(newMat);\n console.log(newMat)\n }\n }\n }\n else {\n validate = false;\n i = j - 1;\n }\n }\n newItem.scopes.push(fscope);\n }\n else\n throwError(\"No se puede leer\");\n }\n\n this.blulkData.push(newItem);\n\n } catch (error) {\n console.log(error);\n alert(\"Error reading file\");\n this.fileReaded = false;\n return;\n }\n this.count = this.blulkData.length;\n this.fileReaded = true;\n if (this.meterialsWithErrors.length > 0) this.fileReaded = false;\n console.log(this.blulkData)\n }\n\n round(num) {\n var m = Number((Math.abs(num) * 100).toPrecision(15));\n return Math.round(m) / 100 * Math.sign(num);\n }\n\n async saveFile() {\n if (!confirm(\"Are you sure of save this data?\")) return;\n this.loading = true;\n for (let i = 0; i < this.blulkData.length; i++) {\n await this.db.collection(\"Projects\").add(this.blulkData[i]);\n }\n this.loading = false;\n alert(\"Data saved\");\n this.router.navigate(['/app/proyects']);\n }\n\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2ZlYXR1cmVzL3Byb3llY3RzL2xpc3QtcHJveWVjdHMvbGlzdC1wcm95ZWN0cy5jb21wb25lbnQuY3NzIn0= */\"","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { AngularFirestore } from '@angular/fire/firestore';\nimport { DataTableDirective } from 'angular-datatables';\nimport { Subject } from 'rxjs';\nimport { UiService } from 'src/app/services/ui.service';\n\n@Component({\n selector: 'app-list-proyects',\n templateUrl: './list-proyects.component.html',\n styleUrls: ['./list-proyects.component.css']\n})\nexport class ListProyectsComponent implements OnInit {\n\n projectList: any = [];\n dtOptions: any = {};\n dtTrigger: Subject = new Subject();\n @ViewChild(DataTableDirective, { static: false }) datatableElement: DataTableDirective;\n\n constructor(private db: AngularFirestore,\n public uiService: UiService) { }\n\n ngOnInit() {\n this.dtOptions = {\n pagingType: 'full_numbers',\n // Declare the use of the extension in the dom parameter\n dom: 'Bfrtip',\n // Configure the buttons\n buttons: [\n 'print',\n 'excel',\n ],\n pageLength: 8, //language: GlobalConstants.espanol\n };\n\n this.loadData();\n\n //console.log(this.uiService.showButtonByRole(['admin']))\n }\n\n async loadData() {\n this.projectList = await (await this.db.collection(\"Projects\").ref.get()).docs;\n this.dtTrigger.next();\n }\n\n delete(docKey) {\n if (!confirm(\"Are you sure of delete this item?\")) return;\n var index = index = this.projectList.map(x => { return x.id }).indexOf(docKey);\n this.deleteItem(docKey)\n .then(\n res => {\n this.projectList.splice(index, 1);\n this.rerender();\n },\n err => {\n console.log(err);\n }\n )\n }\n\n deleteItem(docKey) {\n return this.db.collection('Projects').doc(docKey).delete();\n }\n\n rerender(): void {\n this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {\n // Destroy the table first\n dtInstance.destroy();\n // Call the dtTrigger to rerender again\n this.dtTrigger.next();\n });\n }\n\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2ZlYXR1cmVzL3Byb3llY3RzL3JlcG9ydHMvcHJvamVjdC1vcmRlcnMvcHJvamVjdC1vcmRlcnMuY29tcG9uZW50LmNzcyJ9 */\"","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { AngularFirestore } from '@angular/fire/firestore';\nimport { ActivatedRoute } from '@angular/router';\nimport { DataTableDirective } from 'angular-datatables';\nimport { Subject } from 'rxjs';\nimport * as XLSX from 'xlsx';\nimport * as moment from 'moment';\nimport { CurrencyPipe } from '@angular/common';\n\n@Component({\n selector: 'app-project-orders',\n templateUrl: './project-orders.component.html',\n styleUrls: ['./project-orders.component.css']\n})\nexport class ProjectOrdersComponent implements OnInit {\n\n orderList: any = [];\n scopeList: any = [];\n selectedScope: any = \"all\";\n filterScopeList: any = [];\n dtOptions: any = {};\n dtTrigger: Subject = new Subject();\n @ViewChild(DataTableDirective, { static: false }) datatableElement: DataTableDirective;\n\n docKey = \"\";\n\n item: any;\n\n total = 0;\n spent = 0;\n remaining = 0;\n\n constructor(private db: AngularFirestore,\n private actRoute: ActivatedRoute,\n private currency: CurrencyPipe,) { }\n\n ngOnInit() {\n this.dtOptions = {\n pagingType: 'full_numbers',\n // Declare the use of the extension in the dom parameter\n dom: 'Bfrtip',\n // Configure the buttons\n buttons: [\n 'print',\n 'excel',\n ],\n pageLength: 100, //language: GlobalConstants.espanol\n };\n this.loadData();\n }\n\n async loadData() {\n\n\n this.docKey = this.actRoute.snapshot.paramMap.get('id');\n\n this.orderList = await (await this.db.collection(\"Orders\").ref.where(\"projectKey\", \"==\", this.docKey).get()).docs;\n\n this.filterScopeList = this.orderList.slice();\n console.log(this.filterScopeList);\n this.dtTrigger.next();\n\n this.load(this.docKey).then(result => {\n this.item = result;\n this.scopeList = result.scopes;\n\n this.calculateTotals();\n });\n\n\n }\n\n load(docKey) {\n return new Promise((resolve, reject) => {\n this.db.collection('Projects').doc(docKey).valueChanges()\n .subscribe(snapshots => {\n resolve(snapshots)\n })\n })\n }\n\n onSelectScope(data) {\n console.log(data);\n // console.log(this.selectedScope);\n this.calculateTotals();\n }\n\n calculateTotals() {\n this.spent = 0;\n this.total = 0;\n this.filterScopeList = [];\n if (this.selectedScope == \"all\") {\n this.total = this.item.budget;\n this.orderList.forEach(element => {\n this.spent += element.data().total;\n });\n this.filterScopeList = this.orderList.slice();\n }\n else {\n this.total = this.item.scopes.filter(item => item.id == this.selectedScope)[0].budget;\n this.orderList.forEach(element => {\n console.log(element.id);\n if (element.data().scopeKey == this.selectedScope) {\n this.filterScopeList.push(element);\n this.spent += element.data().total;\n }\n\n });\n }\n\n this.remaining = this.total - this.spent;\n\n this.rerender();\n }\n\n exportexcel() {\n\n const ws: XLSX.WorkSheet = XLSX.utils.json_to_sheet([]);\n XLSX.utils.sheet_add_aoa(ws, [[\"Project: \" + this.item.name]], { origin: 0 });\n XLSX.utils.sheet_add_aoa(ws, [[\"Start Date: \" + moment(this.item.initDate).format(\"YYYY-MM-DD\")]], { origin: 1 });\n XLSX.utils.sheet_add_aoa(ws, [[\"Current Date: \" + moment().format(\"YYYY-MM-DD\")]], { origin: 2 });\n\n XLSX.utils.sheet_add_aoa(ws, [[\"Total: \" + this.currency.transform(this.total + (this.total * (this.item.taxPercent / 100))),\n \"Spent: \" + this.currency.transform(this.spent),\n \"Taxes: \" + this.currency.transform(this.spent * (this.item.taxPercent / 100)),\n \"Remaining: \" + this.currency.transform(this.remaining + (this.remaining * (this.item.taxPercent / 100)))]],\n { origin: 3 });\n\n XLSX.utils.sheet_add_aoa(ws, [[\"\"]], { origin: 4 });\n\n let row = 5;\n for (let i = 0; i < this.scopeList.length; i++) {\n\n XLSX.utils.sheet_add_aoa(ws, [[\"Scope\", \"Total\", \"Spent\", \"Tax\", \"Remaining\"]], { origin: row });\n let totalScope = this.getTotalScope(this.scopeList[i].id);\n totalScope = +(totalScope + (totalScope * (this.item.taxPercent / 100)));\n let spentScope = this.getSpentScope(this.scopeList[i].id);\n let spentScopeTax = spentScope * (this.item.taxPercent / 100);\n row++;\n XLSX.utils.sheet_add_aoa(ws, [[this.scopeList[i].name, \" \" + this.currency.transform(totalScope), \" \" + this.currency.transform(spentScope), \" \" + this.currency.transform(spentScopeTax), \" \" + this.currency.transform((totalScope - (spentScope + spentScopeTax)))]], { origin: row });\n row++;\n XLSX.utils.sheet_add_aoa(ws, [[\"\"]], { origin: row });\n\n let filterScopes = this.filterScopeList.filter(x => x.data().scopeKey == this.scopeList[i].id);\n\n for (let j = 0; j < filterScopes.length; j++) {\n if (filterScopes[j].data().materials.length > 0) {\n row++;\n XLSX.utils.sheet_add_aoa(ws, [[\"Date\", \"Material\", \"Quantity\", \"Price\", \"Total\"]], { origin: row });\n }\n\n for (let k = 0; k < filterScopes[j].data().materials.length; k++) {\n row++;\n XLSX.utils.sheet_add_aoa(ws, [[\n moment(filterScopes[j].data().date).format(\"DD/MM/YYYY\"),\n filterScopes[j].data().materials[k].name,\n + filterScopes[j].data().materials[k].quantity,\n \"$ \" + filterScopes[j].data().materials[k].unitPrice,\n \"$ \" + filterScopes[j].data().materials[k].total,]], { origin: row });\n }\n }\n\n row++;\n XLSX.utils.sheet_add_aoa(ws, [[\"\"]], { origin: row });\n\n row++;\n XLSX.utils.sheet_add_aoa(ws, [[\"\"]], { origin: row });\n\n }\n\n /* generate workbook and add the worksheet */\n const wb: XLSX.WorkBook = XLSX.utils.book_new();\n XLSX.utils.book_append_sheet(wb, ws, 'Sheet1');\n\n XLSX.writeFile(wb, \"Project \" + this.item.name + \".xlsx\");\n\n\n }\n\n getTotalScope(scopeKey) {\n return this.item.scopes.filter(x => x.id == scopeKey)[0].budget;\n }\n\n getSpentScope(scopeKey) {\n let spentScope = 0;\n this.filterScopeList.forEach(element => {\n if (element.data().scopeKey == scopeKey)\n spentScope += element.data().total;\n });\n return spentScope;\n }\n\n rerender(): void {\n if (this.datatableElement.dtInstance == undefined) { this.dtTrigger.next(); return; }\n this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {\n // Destroy the table first\n dtInstance.destroy();\n // Call the dtTrigger to rerender again\n this.dtTrigger.next();\n });\n }\n\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2ZlYXR1cmVzL3Byb3llY3RzL3VwZGF0ZS1wcm95ZWN0L3VwZGF0ZS1wcm95ZWN0LmNvbXBvbmVudC5jc3MifQ== */\"","import { Component, OnInit } from '@angular/core';\nimport { AngularFirestore } from '@angular/fire/firestore';\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport jsPDF from 'jspdf';\nimport * as moment from 'moment';\nimport { CustomCurrencyPipe } from 'src/app/common/helpers/custom-currency-pipe';\nimport { UiService } from 'src/app/services/ui.service';\n\n@Component({\n selector: 'app-update-proyect',\n templateUrl: './update-proyect.component.html',\n styleUrls: ['./update-proyect.component.css']\n})\nexport class UpdateProyectComponent implements OnInit {\n\n item = {\n price: 0,\n name: \"\",\n phone: \"\",\n budget: 0,\n address: \"\",\n scopes: [],\n supplyers: [],\n taxPercent: 0,\n initDate: moment().format(\"YYYY-MM-DD\")\n }\n\n scopeBudget = 0;\n scopeList: any = [];\n materialsList: any = [];\n supplyersList: any = [];\n selectedScope: any;\n selectedMaterial: any;\n selectedSupplier: any;\n\n currentScope: any;\n scopeIndex = 0;\n\n docKey = \"\"\n\n dropdownList = [];\n selectedItems = [];\n dropdownSettings = {};\n price = 0;\n quantity = 0;\n urlSafe: SafeResourceUrl;\n keyword = 'name';\n\n materialItem = {\n name: \"\",\n description: \"\",\n price: 0,\n unit: \"\",\n size: \"\",\n photo: {\n url: \"https://firebasestorage.googleapis.com/v0/b/constructora-56ce3.appspot.com/o/placeholder.jpeg?alt=media&token=53324723-0e82-41d8-b015-0d04cd815db0\",\n name: \"placeholder\"\n }\n }\n\n constructor(private db: AngularFirestore,\n private router: Router,\n private actRoute: ActivatedRoute,\n private currency: CustomCurrencyPipe,\n private sanitizer: DomSanitizer,\n public uiService: UiService) { }\n\n ngOnInit() {\n this.loadData();\n\n // this.dropdownList = this.materialsList;\n // this.selectedItems = [];\n // this.dropdownSettings = {\n // singleSelection: false,\n // enableCheckAll: false,\n // text: \"Select materials\",\n // selectAllText: 'Select All',\n // unSelectAllText: 'UnSelect All',\n // enableSearchFilter: true,\n // classes: \"myclass custom-class\"\n // };\n this.urlSafe = this.sanitizer.bypassSecurityTrustUrl(\"https://firebasestorage.googleapis.com/v0/b/constructora-56ce3.appspot.com/o/placeholder.jpeg?alt=media&token=53324723-0e82-41d8-b015-0d04cd815db0\");\n\n }\n\n load(docKey) {\n return new Promise((resolve, reject) => {\n this.db.collection('Projects').doc(docKey).valueChanges()\n .subscribe(snapshots => {\n resolve(snapshots)\n })\n })\n }\n\n updateData() {\n if (!this.validate()) {\n alert(\"Complete all data\");\n return;\n }\n if (!confirm(\"Are you sure of save this item?\")) return;\n this.db.collection('Projects').doc(this.docKey).set(this.item);\n alert(\"Data saved successfully\");\n this.router.navigate(['/app/proyects']);\n }\n\n async loadData() {\n let scopesDocs = await (await this.db.collection(\"Scopes\").ref.get()).docs;\n scopesDocs.forEach(item => {\n let scope: any = item.data();\n scope.id = item.id;\n this.scopeList.push(scope);\n });\n\n let materialDocs = await (await this.db.collection(\"Materials\").ref.get()).docs;\n materialDocs.forEach(item => {\n let material: any = item.data();\n material.id = item.id;\n material.name = item.data().name != undefined ? item.data().name : \"Error: \" + material.id;\n if (item.data().photo == undefined)\n material.image = \"https://firebasestorage.googleapis.com/v0/b/constructora-56ce3.appspot.com/o/placeholder.jpeg?alt=media&token=53324723-0e82-41d8-b015-0d04cd815db0\";\n else\n material.image = item.data().photo.url;\n this.materialsList.push(material);\n });\n\n let supplierDocs = await (await this.db.collection(\"Suppliers\").ref.get()).docs;\n supplierDocs.forEach(item => {\n let supplier: any = item.data();\n supplier.id = item.id;\n this.supplyersList.push(supplier);\n });\n\n this.docKey = this.actRoute.snapshot.paramMap.get('id');\n this.load(this.docKey).then(result => {\n this.item = result;\n });\n\n console.log(this.materialsList);\n }\n\n addScopesToProject() {\n if (this.item.scopes.filter(x => x.id == this.selectedScope.id).length == 0) {\n this.selectedScope.budget = parseInt(this.scopeBudget.toString());\n this.selectedScope.materials = [];\n let newItem = this.selectedScope;\n this.item.scopes.push(newItem);\n this.item.budget += this.selectedScope.budget;\n }\n else\n alert(\"Scope is already add to the project\")\n }\n\n addMaterials() {\n if (this.item.scopes[this.scopeIndex].materials.filter(x => x.id == this.selectedMaterial.id).length == 0) {\n this.selectedMaterial.quantity = this.quantity;\n this.selectedMaterial.total = this.quantity * this.price;\n this.item.scopes[this.scopeIndex].budget = this.item.scopes[this.scopeIndex].budget + (this.quantity * this.price);\n this.item.scopes[this.scopeIndex].materials.push(this.selectedMaterial);\n this.item.budget = this.item.budget + this.quantity * this.price;\n }\n else\n alert(\"Supplier is already add to the scope\")\n }\n\n removeMaterial(id, scopeId) {\n if (!confirm(\"Are you sure of delete this item?\")) return;\n let indexScopes = this.item.scopes.map(x => { return x.id }).indexOf(scopeId);\n let indexMat = this.item.scopes[indexScopes].materials.map(x => { return x.id }).indexOf(id);\n if (this.item.scopes[indexScopes].materials[indexMat] != undefined) {\n this.item.scopes[indexScopes].budget =\n this.item.scopes[indexScopes].budget -\n this.item.scopes[indexScopes].materials[indexMat].total;\n\n this.item.budget = this.item.budget - this.item.scopes[indexScopes].materials[indexMat].total;\n\n this.item.scopes[indexScopes].materials.splice(indexMat, 1);\n }\n }\n\n addSupplier() {\n this.item.supplyers.push(this.selectedSupplier);\n }\n\n\n\n\n\n onChangeSearch(val: string) {\n // fetch remote data from here\n // And reassign the 'data' which is binded to 'data' property.\n }\n\n onFocused(e) {\n // do something when input is focused\n }\n\n selectScope(item) {\n console.log(this.scopeBudget);\n let newItem = item;\n this.selectedScope = newItem;\n\n }\n\n selectMaterial(item) {\n let newItem = item;\n this.selectedMaterial = newItem;\n if (this.selectedMaterial.photo != undefined)\n this.urlSafe = this.sanitizer.bypassSecurityTrustUrl(this.selectedMaterial.photo.url);\n console.log(this.selectedMaterial);\n this.price = this.selectedMaterial.price;\n }\n\n selectSupplier(item) {\n let newItem = item;\n this.selectedSupplier = newItem;\n }\n\n showMaterials(materials) {\n let materiaStr = \"\";\n for (let i = 0; i < materials.length; i++) {\n materiaStr += materials[i].name + \"/\";\n }\n return materiaStr;\n }\n\n openMaterials(id) {\n document.getElementById(\"openModalButton3\").click();\n this.scopeIndex = this.scopeIndex = this.item.scopes.map(x => { return x.id }).indexOf(id);\n }\n\n removeSupplier(id) {\n let indexSupplier = this.item.supplyers.map(x => { return x.id }).indexOf(id);\n this.item.supplyers.splice(indexSupplier, 1);\n }\n\n removeScopes(id) {\n let indexScopes = this.item.scopes.map(x => { return x.id }).indexOf(id);\n this.item.budget -= this.item.scopes[indexScopes].budget;\n this.item.scopes.splice(indexScopes, 1);\n }\n\n //Action multiselect\n onItemSelect(item: any) {\n console.log(item);\n console.log(this.selectedItems);\n }\n OnItemDeSelect(item: any) {\n console.log(item);\n console.log(this.selectedItems);\n }\n onSelectAll(items: any) {\n console.log(items);\n }\n onDeSelectAll(items: any) {\n console.log(items);\n }\n onChangeDate() {\n\n }\n\n validate() {\n if (this.item.name.length == 0\n || this.item.phone.length == 0\n || (this.item.address && this.item.address.length == 0)\n || this.item.scopes.length == 0\n || this.item.supplyers.length == 0) {\n return false;\n }\n\n return true;\n }\n\n async exportToPDF() {\n if (!this.validate()) {\n alert(\"Complete all data\");\n return;\n }\n const doc = new jsPDF();\n\n doc.addImage(\"assets/img/stm-logo-pdf.png\", \"PNG\", 10, 10, 25, 20);\n doc.setFillColor(6, 60, 124);\n doc.setFontSize(14);\n doc.text('Soluciones técnicas y mantenimiento', 10, 40);\n doc.setFont(\"helvetica\", \"bold\");\n doc.text('Resumén del proyecto', 140, 20);\n doc.setFontSize(11);\n doc.setTextColor(0, 0, 0);\n doc.text(`Subtotal: ${this.currency.transform(this.item.budget)}`, 140, 30);\n doc.text(`Impuestos: ${this.currency.transform(this.item.budget * (this.item.taxPercent / 100))}`, 140, 36);\n doc.text(`Total: ${this.currency.transform(this.item.budget + (this.item.budget * (this.item.taxPercent / 100)))}`, 140, 42);\n doc.setFont(\"helvetica\", \"normal\");\n doc.text('Colonia Montefresco', 10, 50);\n doc.text('23 calle, 12 avenida SE', 10, 55);\n doc.text('Teléfono: 99344370 / 25542174', 10, 60);\n\n doc.setDrawColor(0);\n doc.setFillColor(6, 60, 124);\n doc.rect(10, 65, 85, 10, \"F\");\n doc.rect(120, 65, 85, 10, \"F\");\n doc.setTextColor(255, 255, 255);\n doc.setFont(\"helvetica\", \"bold\");\n doc.text('Cliente', 11, 72);\n // doc.text('Proyecto', 121, 72);\n doc.setFont(\"helvetica\", \"normal\");\n //doc.text(this.item.supplyers[0].name, 30, 72);\n doc.setFontSize(9);\n doc.text(this.item.name, 121, 72);\n doc.setTextColor(0, 0, 0);\n doc.text('Dirección del proyecto:', 121, 80);\n doc.setFontSize(9);\n doc.text(this.item.address, 121, 85);//TODO\n doc.setFontSize(8);\n let yLineCell = 73;\n let yLineText = 80;\n\n for (let i = 0; i < this.item.supplyers.length; i++) {\n doc.setDrawColor(0);\n doc.setFillColor(255, 255, 255);\n doc.rect(10, yLineCell, 85, 10, \"FD\");\n doc.text(this.item.supplyers[i].name, 11, yLineText);\n doc.setTextColor(0, 0, 0);\n yLineCell = yLineCell + 10;\n yLineText = yLineText + 10;\n }\n\n yLineCell = yLineCell + 20;\n yLineText = yLineText + 20;\n\n for (let i = 0; i < this.item.scopes.length; i++) {\n\n doc.setDrawColor(0);\n doc.setFillColor(6, 60, 124);\n doc.rect(10, yLineCell, 80, 10, \"FD\");\n doc.setTextColor(255, 255, 255);\n doc.text(`Categoría: ${this.item.scopes[i].name} Total ${this.currency.transform(this.item.scopes[i].budget)}`, 11, yLineText);\n\n yLineCell = yLineCell + 10;\n yLineText = yLineText + 10;\n\n doc.setDrawColor(0);\n doc.setFillColor(6, 60, 124);\n doc.rect(10, yLineCell, 130, 10, \"FD\");\n doc.rect(140, yLineCell, 20, 10, \"FD\");\n doc.rect(160, yLineCell, 20, 10, \"FD\");\n doc.rect(180, yLineCell, 20, 10, \"FD\");\n\n doc.setTextColor(255, 255, 255);\n doc.text(\"DESCRIPCIÓN\", 11, yLineText);\n doc.text(\"CANT.\", 141, yLineText);\n doc.text(\"PRECIO\", 161, yLineText);\n doc.text(\"TOTAL\", 181, yLineText);\n\n yLineCell = yLineCell + 10;\n yLineText = yLineText + 10;\n\n for (let j = 0; j < this.item.scopes[i].materials.length; j++) {\n let description = this.item.scopes[i].materials[j].name;\n let lines = doc.splitTextToSize(description, 110);\n\n doc.setDrawColor(0);\n doc.setFillColor(255, 255, 255);\n doc.rect(10, yLineCell, 130, 10+(5*lines.length), \"FD\");\n doc.rect(140, yLineCell, 20, 10+(5*lines.length), \"FD\");\n doc.rect(160, yLineCell, 20, 10+(5*lines.length), \"FD\");\n doc.setDrawColor(0);\n doc.setFillColor(6, 60, 124);\n doc.rect(180, yLineCell, 20, 10+(5*lines.length), \"FD\");\n doc.setTextColor(0, 0, 0);\n \n //doc.text(this.item.scopes[i].materials[j].name, 11, yLineText);\n doc.text(this.item.scopes[i].materials[j].quantity.toString(), 141, yLineText);\n doc.text(this.currency.transform(this.item.scopes[i].materials[j].price.toString()), 161, yLineText);\n doc.setTextColor(255, 255, 255);\n doc.text(this.currency.transform(this.item.scopes[i].materials[j].total.toString()), 181, yLineText);\n doc.setTextColor(0, 0, 0);\n \n doc.setFillColor(255, 255, 255);\n \n for (let k = 0; k < lines.length; k++) {\n doc.text(lines[k], 11, yLineText);\n yLineText += 5;\n yLineCell +=5;\n }\n \n yLineCell = yLineCell + 10;\n yLineText = yLineText + 10;\n\n if (yLineText >= 257) {\n doc.addPage();\n yLineCell = 10;\n yLineText = 17;\n }\n }\n\n }\n\n doc.setFontSize(9);\n doc.text(\"OBSERVACION: propuesta valida por 30 días, el trabajo se realizará de acuerdo a conveniencia\", 10, yLineText+10);\n doc.text(\"del cliente previa planificación con el contratista.\", 10, yLineText+15);\n doc.text(\"Gracias por permitirlos tener la posibilidad de servirles cualquier observación estamos a la orden.\", 10, yLineText+30);\n doc.text(\"(recuerda haz grande a los pequeños y serás aún más grande)\", 10, yLineText+35);\n\n doc.save(`STM-${this.item.name}.pdf`);\n }\n\n createHeaders(keys) {\n var result = [];\n for (var i = 0; i < keys.length; i += 1) {\n result.push({\n id: keys[i],\n name: keys[i],\n prompt: keys[i],\n width: 150,\n align: \"left\"\n });\n }\n return result;\n }\n\n cancel() {\n this.router.navigate(['/app/proyects']);\n }\n\n newMaterial(id) {\n document.getElementById(\"newMaterialModalBtn\").click();\n this.scopeIndex = this.scopeIndex = this.item.scopes.map(x => { return x.id }).indexOf(id);\n }\n\n async newMaterialToScope() {\n if (this.materialItem.name.length == 0 || this.materialItem.description.length == 0 || this.materialItem.price == 0\n || this.materialItem.size.length == 0 || this.materialItem.unit.length == 0) {\n alert(\"Complete all data\");\n return;\n }\n this.materialItem.name = this.materialItem.name.trim().toLocaleUpperCase();\n let newMaterial = await (await this.db.collection(\"Materials\").add(this.materialItem)).get();\n let savedMaterial = newMaterial.data();\n savedMaterial.id = newMaterial.id;\n savedMaterial.itemName = savedMaterial.name;\n this.item.scopes[this.scopeIndex].materials.push(savedMaterial);\n this.selectedMaterial = savedMaterial;\n this.selectedMaterial.quantity = this.quantity;\n this.selectedMaterial.total = this.quantity * savedMaterial.price;\n this.item.scopes[this.scopeIndex].budget = this.item.scopes[this.scopeIndex].budget + (this.quantity * savedMaterial.price);\n this.item.budget = this.item.budget + this.quantity * savedMaterial.price;\n\n document.getElementById(\"close-modal-newMaterial\").click();\n }\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2ZlYXR1cmVzL3Njb3Blcy9jcmVhdGUtc2NvcGVzL2NyZWF0ZS1zY29wZXMuY29tcG9uZW50LmNzcyJ9 */\"","import { Component, OnInit } from '@angular/core';\nimport { AngularFirestore } from '@angular/fire/firestore';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'app-create-scopes',\n templateUrl: './create-scopes.component.html',\n styleUrls: ['./create-scopes.component.css']\n})\nexport class CreateScopesComponent implements OnInit {\n\n item = {\n name: \"\",\n description: \"\",\n }\n\n constructor(private db: AngularFirestore, private router: Router) { }\n\n ngOnInit() {\n }\n\n async saveData() {\n if (!confirm(\"Are you sure of save this item?\")) return;\n await this.db.collection(\"Scopes\").add(this.item);\n alert(\"Data saved successfully\");\n this.router.navigate(['/app/scopes']);\n }\n\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2ZlYXR1cmVzL3Njb3Blcy9saXN0LXNjb3Blcy9saXN0LXNjb3Blcy5jb21wb25lbnQuY3NzIn0= */\"","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { AngularFirestore } from '@angular/fire/firestore';\nimport { DataTableDirective } from 'angular-datatables';\nimport { Subject } from 'rxjs';\n\n@Component({\n selector: 'app-list-scopes',\n templateUrl: './list-scopes.component.html',\n styleUrls: ['./list-scopes.component.css']\n})\nexport class ListScopesComponent implements OnInit {\n\n scopeList: any = [];\n dtOptions: any = {};\n dtTrigger: Subject = new Subject();\n @ViewChild(DataTableDirective, { static: false }) datatableElement: DataTableDirective;\n\n constructor(private db: AngularFirestore) { }\n\n ngOnInit() {\n this.loadData();\n }\n\n async loadData() {\n this.scopeList = await (await this.db.collection(\"Scopes\").ref.get()).docs;\n this.dtTrigger.next();\n }\n\n delete(docKey) {\n if (!confirm(\"Are you sure of delete this item?\")) return;\n var index = index = this.scopeList.map(x => { return x.id }).indexOf(docKey);\n this.deleteItem(docKey)\n .then(\n res => {\n this.scopeList.splice(index, 1);\n this.rerender();\n },\n err => {\n console.log(err);\n }\n )\n }\n\n deleteItem(docKey) {\n return this.db.collection('Scopes').doc(docKey).delete();\n }\n\n rerender(): void {\n this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {\n // Destroy the table first\n dtInstance.destroy();\n // Call the dtTrigger to rerender again\n this.dtTrigger.next();\n });\n }\n\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2ZlYXR1cmVzL3Njb3Blcy91cGRhdGUtc2NvcGVzL3VwZGF0ZS1zY29wZXMuY29tcG9uZW50LmNzcyJ9 */\"","import { Component, OnInit } from '@angular/core';\nimport { AngularFirestore } from '@angular/fire/firestore';\nimport { ActivatedRoute, Router } from '@angular/router';\n\n@Component({\n selector: 'app-update-scopes',\n templateUrl: './update-scopes.component.html',\n styleUrls: ['./update-scopes.component.css']\n})\nexport class UpdateScopesComponent implements OnInit {\n\n item = {\n name: \"\",\n description: \"\",\n }\n\n docKey = \"\";\n\n constructor(private router: Router,\n public db: AngularFirestore, private actRoute: ActivatedRoute,) { }\n\n ngOnInit() {\n this.docKey = this.actRoute.snapshot.paramMap.get('id');\n this.load(this.docKey).then(result => {\n this.item = result;\n });\n }\n\n load(docKey) {\n return new Promise((resolve, reject) => {\n this.db.collection('Scopes').doc(docKey).valueChanges()\n .subscribe(snapshots => {\n resolve(snapshots)\n })\n })\n }\n\n updateData() {\n if (!confirm(\"Are you sure of save this item?\")) return;\n this.db.collection('Scopes').doc(this.docKey).set(this.item);\n alert(\"Data saved successfully\");\n this.router.navigate(['/app/scopes']);\n }\n\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2ZlYXR1cmVzL3N1cHBsaWVycy9jcmVhdGUtc3VwcGxpZXIvY3JlYXRlLXN1cHBsaWVyLmNvbXBvbmVudC5jc3MifQ== */\"","import { Component, OnInit } from '@angular/core';\nimport { AngularFirestore } from '@angular/fire/firestore';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'app-create-supplier',\n templateUrl: './create-supplier.component.html',\n styleUrls: ['./create-supplier.component.css']\n})\nexport class CreateSupplierComponent implements OnInit {\n\n item = {\n name: \"\",\n address: \"\",\n phone: \"\",\n email: [\"\", \"\", \"\", \"\", \"\"]\n }\n\n constructor(private db: AngularFirestore, private router: Router,) { }\n\n ngOnInit() {\n\n }\n\n async saveData() {\n if (!this.validate()) {\n alert(\"Complete all data\");\n return;\n }\n if (!confirm(\"Are you sure of save this item?\")) return;\n this.item.email = this.item.email.map(x => { return x.trim() });//Clean mails\n this.item.name = this.item.name.trim().toUpperCase();\n await this.db.collection(\"Suppliers\").add(this.item);\n alert(\"Data saved successfully\");\n this.router.navigate(['/app/vendors']);\n }\n\n validate() {\n if (this.item.name.length == 0\n || this.item.address.length == 0\n || this.item.phone.length == 0) {\n return false;\n }\n\n if (this.item.email[0].length > 0\n || this.item.email[1].length > 0\n || this.item.email[3].length > 0\n || this.item.email[4].length > 0)\n return true;\n else\n return false;\n }\n\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2ZlYXR1cmVzL3N1cHBsaWVycy9saXN0LXN1cHBsaWVycy9saXN0LXN1cHBsaWVycy5jb21wb25lbnQuY3NzIn0= */\"","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { AngularFirestore } from '@angular/fire/firestore';\nimport { DataTableDirective } from 'angular-datatables';\nimport { Subject } from 'rxjs';\n\n@Component({\n selector: 'app-list-suppliers',\n templateUrl: './list-suppliers.component.html',\n styleUrls: ['./list-suppliers.component.css']\n})\nexport class ListSuppliersComponent implements OnInit {\n\n supplierList: any = [];\n dtOptions: any = {};\n dtTrigger: Subject = new Subject();\n @ViewChild(DataTableDirective, { static: false }) datatableElement: DataTableDirective;\n\n constructor(private db: AngularFirestore) { }\n\n ngOnInit() {\n this.dtOptions = {\n pagingType: 'full_numbers',\n // Declare the use of the extension in the dom parameter\n dom: 'Bfrtip',\n // Configure the buttons\n buttons: [\n 'print',\n 'excel',\n ],\n pageLength: 8, //language: GlobalConstants.espanol\n };\n this.loadData();\n }\n\n async loadData() {\n this.supplierList = await (await this.db.collection(\"Suppliers\").ref.get()).docs;\n this.dtTrigger.next();\n }\n\n delete(docKey) {\n if (!confirm(\"Are you sure of delete this item?\")) return;\n var index = index = this.supplierList.map(x => { return x.id }).indexOf(docKey);\n this.deleteItem(docKey)\n .then(\n res => {\n this.supplierList.splice(index, 1);\n this.rerender();\n },\n err => {\n console.log(err);\n }\n )\n }\n\n deleteItem(docKey) {\n return this.db.collection('Suppliers').doc(docKey).delete();\n }\n\n rerender(): void {\n this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {\n // Destroy the table first\n dtInstance.destroy();\n // Call the dtTrigger to rerender again\n this.dtTrigger.next();\n });\n }\n\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2ZlYXR1cmVzL3N1cHBsaWVycy91cGRhdGUtc3VwcGxpZXIvdXBkYXRlLXN1cHBsaWVyLmNvbXBvbmVudC5jc3MifQ== */\"","import { Component, OnInit } from '@angular/core';\nimport { AngularFirestore } from '@angular/fire/firestore';\nimport { ActivatedRoute, Router } from '@angular/router';\n\n@Component({\n selector: 'app-update-supplier',\n templateUrl: './update-supplier.component.html',\n styleUrls: ['./update-supplier.component.css']\n})\nexport class UpdateSupplierComponent implements OnInit {\n\n item = {\n name: \"\",\n address: \"\",\n phone: \"\",\n email: [\"\", \"\", \"\", \"\", \"\"]\n }\n\n docKey = \"\";\n\n\n constructor(private router: Router,\n public db: AngularFirestore, private actRoute: ActivatedRoute,) { }\n\n ngOnInit() {\n this.docKey = this.actRoute.snapshot.paramMap.get('id');\n this.load(this.docKey).then(result => {\n this.item = result;\n });\n }\n\n load(docKey) {\n return new Promise((resolve, reject) => {\n this.db.collection('Suppliers').doc(docKey).valueChanges()\n .subscribe(snapshots => {\n resolve(snapshots)\n })\n })\n }\n\n updateData() {\n if (!this.validate()) {\n alert(\"Complete all data\");\n return;\n }\n if (!confirm(\"Are you sure of save this item?\")) return;\n this.item.email = this.item.email.map(x => { return x.trim() });//Clean mails\n this.item.name = this.item.name.trim().toUpperCase();\n this.db.collection('Suppliers').doc(this.docKey).set(this.item);\n alert(\"Data saved successfully\");\n this.router.navigate(['/app/vendors']);\n }\n\n validate() {\n if (this.item.name.length == 0\n || this.item.address.length == 0\n || this.item.phone.length == 0) {\n return false;\n }\n\n if (this.item.email[0].length > 0\n || this.item.email[1].length > 0\n || this.item.email[3].length > 0\n || this.item.email[4].length > 0)\n return true;\n else\n return false;\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { GlobalConstants } from '../common/shared/GlobalConstans';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthService {\n\n constructor() { }\n\n isAuthenticated() {\n if (GlobalConstants.user != undefined) return true;\n return false;\n }\n\n getRole() {\n return GlobalConstants.user.type;\n }\n\n}\n","import { Observable } from 'rxjs';\nimport { Injectable } from '@angular/core';\nimport { AngularFireStorage } from '@angular/fire/storage';\nimport { resolve } from 'url';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UploadImagesService {\n\n constructor(private storage: AngularFireStorage) { }\n\n public async uploadImage(folder, name, file) {\n let newFileName = folder + \"/\" + name;\n const uploadedFile = await this.uploadImageToFirestore(newFileName, file);\n const ref = await this.referenciaStorage(newFileName);\n console.log(ref);\n return ref.getDownloadURL();\n }\n\n public async deleteFile(folder, name) {\n let newFileName = folder + \"/\" + name;\n const ref = await this.referenciaStorage(newFileName);\n return ref.delete();\n }\n\n // upload files toserver\n private async uploadImageToFirestore(nombreImagen: string, file: any) {\n return await this.storage.upload(nombreImagen, file);\n }\n\n private async referenciaStorage(nombreImagen: string) {\n return await this.storage.ref(nombreImagen);\n }\n\n\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { GlobalConstants } from '../common/shared/GlobalConstans';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UiService {\n\n private showSidebar: BehaviorSubject;\n userRole = GlobalConstants.user.type;\n\n constructor() {\n this.showSidebar = new BehaviorSubject(true);\n }\n\n getshowSidebar(): Observable {\n return this.showSidebar.asObservable();\n }\n setshowSidebar(newValue): void {\n this.showSidebar.next(newValue);\n }\n\n showButtonByRole(role: string[]) {\n if (this.userRole.filter(x => role.includes(x)).length > 0)\n return true;\n return false;\n }\n}\n","// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n production: false,\n firebase: {\n apiKey: \"AIzaSyANtviAWQ3gMSQDYXGyClJipURkUnz73Hw\",\n authDomain: \"constructora-56ce3.firebaseapp.com\",\n projectId: \"constructora-56ce3\",\n storageBucket: \"constructora-56ce3.appspot.com\",\n messagingSenderId: \"1014543808422\",\n appId: \"1:1014543808422:web:ce29178795b2e2a479c167\"\n }\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.error(err));\n","/* (ignored) */","/* (ignored) */","/* (ignored) */"],"sourceRoot":"webpack:///"}