{"version":3,"file":"main.js","mappings":"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oBACC,KAAK;iBACL;aACD;YACD;gBACC,SAAS;gBACT,uEAAkB;gBAClB,KAAK;aACL;YACD;gBACC,QAAQ;gBACR,sEAAiB;gBACjB,KAAK;aACL;YACD;gBACC,UAAU;gBACV,IAAI;gBACJ,GAAG;gBACH,CAAC;gBACD;oBACC,KAAK;iBACL;aACD;YACD;gBACC,qBAAqB;gBACrB,IAAI;gBACJ,GAAG;gBACH,CAAC;gBACD;oBACC,KAAK;iBACL;aACD;YACD;gBACC,WAAW;gBACX,yEAAoB;gBACpB,IAAI;aACJ;YACD;gBACC,oBAAoB;gBACpB,uEAAkB;gBAClB,KAAK;aACL;YACD;gBACC,OAAO;gBACP,qEAAgB;gBAChB,KAAK;aACL;YACD;gBACC,WAAW;gBACX,yEAAoB;gBACpB,IAAI;gBACJ,CAAC;aACD;YACD;gBACC,sBAAsB;gBACtB,uEAAkB;gBAClB,IAAI;aACJ;YACD;gBACC,yBAAyB;gBACzB,0EAAqB;gBACrB,KAAK;aACL;YACD;gBACC,SAAS;gBACT,IAAI;gBACJ,GAAG;gBACH,CAAC;gBACD;oBACC,KAAK;iBACL;aACD;YACD;gBACC,sBAAsB;gBACtB,uEAAkB;gBAClB,KAAK;aACL;YACD;gBACC,uBAAuB;gBACvB,0EAAqB;gBACrB,KAAK;aACL;YACD;gBACC,UAAU;gBACV,IAAI;gBACJ,GAAG;gBACH,CAAC;gBACD;oBACC,KAAK;iBACL;aACD;YACD;gBACC,oBAAoB;gBACpB,uEAAkB;gBAClB,KAAK;aACL;YACD;gBACC,kBAAkB;gBAClB,uEAAkB;gBAClB,IAAI;aACJ;YACD;gBACC,QAAQ;gBACR,sEAAiB;gBACjB,KAAK;aACL;YACD;gBACC,eAAe;gBACf,qEAAgB;gBAChB,KAAK;aACL;YACD;gBACC,SAAS;gBACT,IAAI;gBACJ,GAAG;gBACH,CAAC;gBACD;oBACC,KAAK;iBACL;aACD;YACD;gBACC,gBAAgB;gBAChB,sEAAiB;gBACjB,KAAK;aACL;YACD;gBACC,SAAS;gBACT,uEAAkB;gBAClB,KAAK;aACL;YACD;gBACC,8CAA8C;gBAC9C,oFAA+B;gBAC/B,KAAK;aACL;YACD;gBACC,UAAU;gBACV,wEAAmB;gBACnB,KAAK;aACL;YACD;gBACC,iBAAiB;gBACjB,sEAAiB;gBACjB,IAAI;aACJ;YACD;gBACC,gCAAgC;gBAChC,2FAAsC;gBACtC,KAAK;aACL;YACD;gBACC,wBAAwB;gBACxB,IAAI;gBACJ,GAAG;gBACH,CAAC;gBACD;oBACC,KAAK;iBACL;aACD;YACD;gBACC,QAAQ;gBACR,sEAAiB;gBACjB,KAAK;aACL;YACD;gBACC,qBAAqB;gBACrB,wEAAmB;gBACnB,KAAK;aACL;YACD;gBACC,cAAc;gBACd,2EAAsB;gBACtB,KAAK;aACL;YACD;gBACC,oBAAoB;gBACpB,uEAAkB;gBAClB,KAAK;aACL;YACD;gBACC,oBAAoB;gBACpB,wEAAmB;gBACnB,KAAK;aACL;YACD;gBACC,qBAAqB;gBACrB,wEAAmB;gBACnB,KAAK;aACL;YACD;gBACC,QAAQ;gBACR,sEAAiB;gBACjB,GAAG;gBACH,CAAC;gBACD;oBACC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;oBAClF,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;oBAClF,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;oBAClF,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK;iBACxC;aACD;YACD;gBACC,yBAAyB;gBACzB,yEAAoB;gBACpB,KAAK;aACL;YACD;gBACC,uBAAuB;gBACvB,oFAA+B;gBAC/B,KAAK;gBACL,CAAC;aACD;YACD;gBACC,gBAAgB;gBAChB,IAAI;gBACJ,GAAG;gBACH,CAAC;gBACD;oBACC,KAAK;iBACL;aACD;YACD;gBACC,sDAAsD;gBACtD,sFAAiC;gBACjC,KAAK;aACL;YACD;gBACC,cAAc;gBACd,oEAAe;gBACf,KAAK;aACL;YACD;gBACC,OAAO;gBACP,qEAAgB;gBAChB,IAAI;aACJ;YACD;gBACC,YAAY;gBACZ,qEAAgB;gBAChB,IAAI;aACJ;YACD;gBACC,kBAAkB;gBAClB,+EAA0B;gBAC1B,IAAI;gBACJ,CAAC;aACD;YACD;gBACC,yBAAyB;gBACzB,qEAAgB;gBAChB,IAAI;gBACJ,CAAC;aACD;YACD;gBACC,UAAU;gBACV,wEAAmB;gBACnB,IAAI;aACJ;YACD;gBACC,wBAAwB;gBACxB,uEAAkB;gBAClB,KAAK;aACL;YACD;gBACC,gDAAgD;gBAChD,oGAA+C;gBAC/C,KAAK;aACL;YACD;gBACC,sCAAsC;gBACtC,6FAAwC;gBACxC,KAAK;aACL;YACD;gBACC,cAAc;gBACd,2EAAsB;gBACtB,KAAK;aACL;YACD;gBACC,YAAY;gBACZ,yEAAoB;gBACpB,KAAK;aACL;YACD;gBACC,eAAe;gBACf,8EAAsB;gBACtB,KAAK;aACL;YACD;gBACC,oBAAoB;gBACpB,uEAAkB;gBAClB,KAAK;aACL;YACD;gBACC,MAAM;gBACN,oEAAe;gBACf,IAAI;aACJ;YACD;gBACC,SAAS;gBACT,0EAAkB;gBAClB,KAAK;gBACL,CAAC;aACD;YACD;gBACC,iBAAiB;gBACjB,sEAAiB;gBACjB,KAAK;aACL;YACD;gBACC,kCAAkC;gBAClC,6EAAwB;gBACxB,KAAK;aACL;YACD;gBACC,mBAAmB;gBACnB,uEAAkB;gBAClB,IAAI;aACJ;YACD;gBACC,UAAU;gBACV,wEAAmB;gBACnB,KAAK;aACL;YACD;gBACC,UAAU;gBACV,wEAAmB;gBACnB,MAAM;aACN;YACD;gBACC,2CAA2C;gBAC3C,iFAA4B;gBAC5B,GAAG;gBACH,CAAC;gBACD,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;aACrB;YACD;gBACC,SAAS;gBACT,uEAAkB;gBAClB,KAAK;aACL;YACD;gBACC,gBAAgB;gBAChB,qEAAgB;gBAChB,IAAI;aACJ;YACD;gBACC,aAAa;gBACb,0EAAqB;gBACrB,KAAK;aACL;YACD;gBACC,uCAAuC;gBACvC,gFAA2B;gBAC3B,KAAK;aACL;YACD;gBACC,SAAS;gBACT,uEAAkB;gBAClB,KAAK;aACL;YACD;gBACC,iBAAiB;gBACjB,uEAAkB;gBAClB,KAAK;aACL;YACD;gBACC,UAAU;gBACV,wEAAmB;gBACnB,KAAK;aACL;YACD;gBACC,mCAAmC;gBACnC,+EAA0B;gBAC1B,KAAK;aACL;YACD;gBACC,yBAAyB;gBACzB,4EAAuB;gBACvB,KAAK;aACL;YACD;gBACC,MAAM;gBACN,oEAAe;gBACf,KAAK;aACL;YACD;gBACC,iBAAiB;gBACjB,uEAAkB;gBAClB,KAAK;gBACL,CAAC;aACD;YACD;gBACC,QAAQ;gBACR,sEAAiB;gBACjB,IAAI;aACJ;YACD;gBACC,kCAAkC;gBAClC,4EAAuB;gBACvB,KAAK;aACL;YACD;gBACC,wCAAwC;gBACxC,+EAA0B;gBAC1B,KAAK;aACL;YACD;gBACC,OAAO;gBACP,qEAAgB;gBAChB,KAAK;aACL;YACD;gBACC,QAAQ;gBACR,sEAAiB;gBACjB,KAAK;aACL;YACD;gBACC,sBAAsB;gBACtB,uEAAkB;gBAClB,KAAK;aACL;YACD;gBACC,uBAAuB;gBACvB,uEAAkB;gBAClB,IAAI;aACJ;YACD;gBACC,eAAe;gBACf,qEAAgB;gBAChB,KAAK;aACL;YACD;gBACC,WAAW;gBACX,yEAAoB;gBACpB,KAAK;aACL;YACD;gBACC,iBAAiB;gBACjB,sEAAiB;gBACjB,IAAI;aACJ;YACD;gBACC,8BAA8B;gBAC9B,yEAAoB;gBACpB,KAAK;aACL;YACD;gBACC,SAAS;gBACT,uEAAkB;gBAClB,MAAM;aACN;YACD;gBACC,YAAY;gBACZ,0EAAqB;gBACrB,KAAK;gBACL,CAAC;aACD;YACD;gBACC,MAAM;gBACN,IAAI;gBACJ,GAAG;gBACH,CAAC;gBACD;oBACC,KAAK;iBACL;aACD;YACD;gBACC,WAAW;gBACX,yEAAoB;gBACpB,KAAK;aACL;YACD;gBACC,UAAU;gBACV,wEAAmB;gBACnB,IAAI;gBACJ,CAAC;gBACD,CAAC,IAAI,CAAC;aACN;YACD;gBACC,iBAAiB;gBACjB,sEAAiB;gBACjB,KAAK;aACL;YACD;gBACC,8BAA8B;gBAC9B,4EAAuB;gBACvB,KAAK;aACL;YACD;gBACC,QAAQ;gBACR,sEAAiB;gBACjB,KAAK;aACL;YACD;gBACC,OAAO;gBACP,qEAAgB;gBAChB,KAAK;aACL;YACD;gBACC,UAAU;gBACV,wEAAmB;gBACnB,KAAK;aACL;YACD;gBACC,gBAAgB;gBAChB,wEAAmB;gBACnB,KAAK;aACL;YACD;gBACC,wBAAwB;gBACxB,uEAAkB;gBAClB,IAAI;aACJ;YACD;gBACC,kBAAkB;gBAClB,uEAAkB;gBAClB,KAAK;aACL;YACD;gBACC,cAAc;gBACd,qEAAgB;gBAChB,IAAI;aACJ;YACD;gBACC,WAAW;gBACX,yEAAoB;gBACpB,IAAI;aACJ;YACD;gBACC,iBAAiB;gBACjB,oEAAe;gBACf,IAAI;aACJ;YACD;gBACC,kBAAkB;gBAClB,oEAAe;gBACf,KAAK;aACL;YACD;gBACC,SAAS;gBACT,uEAAkB;gBAClB,KAAK;aACL;YACD;gBACC,aAAa;gBACb,yEAAoB;gBACpB,IAAI;gBACJ,CAAC;gBACD,CAAC,IAAI,CAAC;aACN;YACD;gBACC,mBAAmB;gBACnB,sEAAiB;gBACjB,KAAK;aACL;YACD;gBACC,gBAAgB;gBAChB,qEAAgB;gBAChB,IAAI;gBACJ,CAAC;aACD;YACD;gBACC,SAAS;gBACT,IAAI;gBACJ,GAAG;gBACH,CAAC;gBACD;oBACC,KAAK;iBACL;aACD;YACD;gBACC,YAAY;gBACZ,qEAAgB;gBAChB,IAAI;aACJ;YACD;gBACC,QAAQ;gBACR,sEAAiB;gBACjB,IAAI;gBACJ,CAAC;gBACD,CAAC,IAAI,CAAC;aACN;YACD;gBACC,oBAAoB;gBACpB,sEAAiB;gBACjB,KAAK;aACL;YACD;gBACC,wBAAwB;gBACxB,0EAAqB;gBACrB,GAAG;gBACH,CAAC;aACD;YACD;gBACC,OAAO;gBACP,qEAAgB;gBAChB,KAAK;aACL;YACD;gBACC,UAAU;gBACV,wEAAmB;gBACnB,KAAK;aACL;YACD;gBACC,QAAQ;gBACR,sEAAiB;gBACjB,KAAK;aACL;YACD;gBACC,oBAAoB;gBACpB,sEAAiB;gBACjB,KAAK;aACL;YACD;gBACC,yBAAyB;gBACzB,0EAAqB;gBACrB,KAAK;aACL;YACD;gBACC,YAAY;gBACZ,oEAAe;gBACf,KAAK;aACL;YACD;gBACC,kBAAkB;gBAClB,sEAAiB;gBACjB,KAAK;aACL;YACD;gBACC,oBAAoB;gBACpB,uEAAkB;gBAClB,KAAK;aACL;YACD;gBACC,SAAS;gBACT,uEAAkB;gBAClB,KAAK;aACL;YACD;gBACC,SAAS;gBACT,uEAAkB;gBAClB,KAAK;aACL;YACD;gBACC,kBAAkB;gBAClB,qEAAgB;gBAChB,KAAK;aACL;YACD;gBACC,eAAe;gBACf,6EAAwB;gBACxB,KAAK;aACL;YACD;gBACC,qBAAqB;gBACrB,yEAAoB;gBACpB,KAAK;aACL;YACD;gBACC,YAAY;gBACZ,0EAAqB;gBACrB,KAAK;aACL;YACD;gBACC,YAAY;gBACZ,qEAAgB;gBAChB,KAAK;aACL;YACD;gBACC,gCAAgC;gBAChC,yEAAoB;gBACpB,KAAK;aACL;YACD;gBACC,2BAA2B;gBAC3B,0EAAqB;gBACrB,KAAK;aACL;YACD;gBACC,QAAQ;gBACR,sEAAiB;gBACjB,KAAK;aACL;YACD;gBACC,UAAU;gBACV,wEAAmB;gBACnB,IAAI;aACJ;YACD;gBACC,UAAU;gBACV,wEAAmB;gBACnB,KAAK;aACL;YACD;gBACC,MAAM;gBACN,oEAAe;gBACf,KAAK;aACL;YACD;gBACC,OAAO;gBACP,qEAAgB;gBAChB,KAAK;aACL;YACD;gBACC,kBAAkB;gBAClB,+EAA0B;gBAC1B,KAAK;aACL;YACD;gBACC,YAAY;gBACZ,0EAAqB;gBACrB,KAAK;aACL;YACD;gBACC,2BAA2B;gBAC3B,0EAAqB;gBACrB,KAAK;aACL;YACD;gBACC,mBAAmB;gBACnB,yEAAoB;gBACpB,KAAK;aACL;YACD;gBACC,SAAS;gBACT,uEAAkB;gBAClB,KAAK;gBACL,CAAC;aACD;YACD;gBACC,iBAAiB;gBACjB,sEAAiB;gBACjB,IAAI;aACJ;YACD;gBACC,YAAY;gBACZ,0EAAqB;gBACrB,KAAK;aACL;YACD;gBACC,6BAA6B;gBAC7B,uEAAkB;gBAClB,KAAK;aACL;YACD;gBACC,QAAQ;gBACR,sEAAiB;gBACjB,KAAK;aACL;YACD;gBACC,mBAAmB;gBACnB,wEAAmB;gBACnB,KAAK;aACL;YACD;gBACC,wBAAwB;gBACxB,0EAAqB;gBACrB,KAAK;aACL;YACD;gBACC,YAAY;gBACZ,IAAI;gBACJ,GAAG;gBACH,CAAC;gBACD;oBACC,KAAK;iBACL;aACD;YACD;gBACC,qBAAqB;gBACrB,uEAAkB;gBAClB,KAAK;gBACL,CAAC;aACD;YACD;gBACC,yBAAyB;gBACzB,0EAAqB;gBACrB,KAAK;aACL;YACD;gBACC,0BAA0B;gBAC1B,uEAAkB;gBAClB,IAAI;aACJ;YACD;gBACC,mBAAmB;gBACnB,uEAAkB;gBAClB,KAAK;aACL;YACD;gBACC,OAAO;gBACP,qEAAgB;gBAChB,KAAK;aACL;YACD;gBACC,eAAe;gBACf,qEAAgB;gBAChB,KAAK;aACL;YACD;gBACC,yBAAyB;gBACzB,2EAAsB;gBACtB,IAAI;aACJ;YACD;gBACC,oCAAoC;gBACpC,4EAAuB;gBACvB,KAAK;aACL;YACD;gBACC,aAAa;gBACb,0EAAqB;gBACrB,IAAI;aACJ;YACD;gBACC,WAAW;gBACX,yEAAoB;gBACpB,KAAK;aACL;YACD;gBACC,eAAe;gBACf,qEAAgB;gBAChB,KAAK;aACL;YACD;gBACC,SAAS;gBACT,uEAAkB;gBAClB,KAAK;aACL;YACD;gBACC,MAAM;gBACN,oEAAe;gBACf,KAAK;aACL;YACD;gBACC,gBAAgB;gBAChB,6EAAwB;gBACxB,KAAK;aACL;YACD;gBACC,8BAA8B;gBAC9B,0EAAqB;gBACrB,KAAK;aACL;YACD;gBACC,0BAA0B;gBAC1B,sFAAiC;gBACjC,MAAM;aACN;YACD;gBACC,gBAAgB;gBAChB,sEAAiB;gBACjB,IAAI;gBACJ,CAAC;aACD;YACD;gBACC,iBAAiB;gBACjB,oEAAe;gBACf,KAAK;aACL;YACD;gBACC,uBAAuB;gBACvB,wEAAmB;gBACnB,IAAI;aACJ;YACD;gBACC,OAAO;gBACP,qEAAgB;gBAChB,KAAK;aACL;YACD;gBACC,uBAAuB;gBACvB,yEAAoB;gBACpB,KAAK;aACL;YACD;gBACC,iBAAiB;gBACjB,sEAAiB;gBACjB,KAAK;aACL;YACD;gBACC,kBAAkB;gBAClB,8EAAyB;gBACzB,KAAK;aACL;YACD;gBACC,UAAU;gBACV,wEAAmB;gBACnB,KAAK;aACL;YACD;gBACC,aAAa;gBACb,oEAAe;gBACf,IAAI;aACJ;YACD;gBACC,aAAa;gBACb,2EAAsB;gBACtB,IAAI;aACJ;YACD;gBACC,iBAAiB;gBACjB,sEAAiB;gBACjB,IAAI;aACJ;YACD;gBACC,UAAU;gBACV,wEAAmB;gBACnB,KAAK;aACL;YACD;gBACC,aAAa;gBACb,0EAAqB;gBACrB,GAAG;gBACH,CAAC;gBACD,CAAC,KAAK,EAAE,KAAK,CAAC;aACd;YACD;gBACC,gBAAgB;gBAChB,qEAAgB;gBAChB,KAAK;aACL;YACD;gBACC,sBAAsB;gBACtB,0EAAkB;gBAClB,KAAK;gBACL,CAAC;aACD;YACD;gBACC,mBAAmB;gBACnB,uEAAkB;gBAClB,IAAI;aACJ;YACD;gBACC,iBAAiB;gBACjB,sEAAiB;gBACjB,GAAG;gBACH,CAAC;aACD;YACD;gBACC,QAAQ;gBACR,sEAAiB;gBACjB,KAAK;aACL;YACD;gBACC,qCAAqC;gBACrC,kFAA0B;gBAC1B,KAAK;gBACL,CAAC;aACD;YACD;gBACC,cAAc;gBACd,2EAAsB;gBACtB,KAAK;aACL;YACD;gBACC,uBAAuB;gBACvB,kFAA6B;gBAC7B,MAAM;aACN;YACD;gBACC,aAAa;gBACb,IAAI;gBACJ,GAAG;gBACH,CAAC;gBACD;oBACC,KAAK;iBACL;aACD;YACD;gBACC,gDAAgD;gBAChD,2EAAsB;gBACtB,KAAK;gBACL,CAAC;aACD;YACD;gBACC,sDAAsD;gBACtD,sFAAiC;gBACjC,KAAK;aACL;YACD;gBACC,kCAAkC;gBAClC,IAAI;gBACJ,GAAG;gBACH,CAAC;gBACD;oBACC,KAAK;iBACL;aACD;YACD;gBACC,OAAO;gBACP,qEAAgB;gBAChB,KAAK;aACL;YACD;gBACC,YAAY;gBACZ,yEAAoB;gBACpB,KAAK;aACL;YACD;gBACC,6CAA6C;gBAC7C,qFAA6B;gBAC7B,KAAK;aACL;YACD;gBACC,4CAA4C;gBAC5C,2EAAsB;gBACtB,KAAK;aACL;YACD;gBACC,mBAAmB;gBACnB,uEAAkB;gBAClB,KAAK;aACL;YACD;gBACC,iBAAiB;gBACjB,sEAAiB;gBACjB,KAAK;aACL;YACD;gBACC,YAAY;gBACZ,0EAAqB;gBACrB,KAAK;aACL;YACD;gBACC,cAAc;gBACd,2EAAsB;gBACtB,KAAK;aACL;YACD;gBACC,WAAW;gBACX,yEAAoB;gBACpB,IAAI;aACJ;YACD;gBACC,cAAc;gBACd,IAAI;gBACJ,GAAG;gBACH,CAAC;gBACD;oBACC,KAAK;iBACL;aACD;YACD;gBACC,sBAAsB;gBACtB,wEAAmB;gBACnB,KAAK;aACL;YACD;gBACC,sBAAsB;gBACtB,wEAAmB;gBACnB,KAAK;aACL;YACD;gBACC,iBAAiB;gBACjB,8EAAyB;gBACzB,KAAK;aACL;YACD;gBACC,sBAAsB;gBACtB,uEAAkB;gBAClB,KAAK;aACL;YACD;gBACC,cAAc;gBACd,2EAAsB;gBACtB,IAAI;aACJ;YACD;gBACC,oBAAoB;gBACpB,0EAAqB;gBACrB,IAAI;aACJ;YACD;gBACC,+BAA+B;gBAC/B,0EAAqB;gBACrB,KAAK;aACL;YACD;gBACC,gBAAgB;gBAChB,qEAAgB;gBAChB,IAAI;aACJ;YACD;gBACC,yBAAyB;gBACzB,wEAAmB;gBACnB,IAAI;aACJ;YACD;gBACC,oBAAoB;gBACpB,qEAAgB;gBAChB,KAAK;aACL;YACD;gBACC,UAAU;gBACV,wEAAmB;gBACnB,KAAK;aACL;YACD;gBACC,wBAAwB;gBACxB,mFAA8B;gBAC9B,IAAI;gBACJ,CAAC;aACD;YACD;gBACC,WAAW;gBACX,yEAAoB;gBACpB,KAAK;aACL;YACD;gBACC,kBAAkB;gBAClB,sEAAiB;gBACjB,IAAI;aACJ;YACD;gBACC,uBAAuB;gBACvB,2EAAsB;gBACtB,IAAI;aACJ;YACD;gBACC,kBAAkB;gBAClB,qEAAgB;gBAChB,KAAK;aACL;YACD;gBACC,aAAa;gBACb,sEAAiB;gBACjB,KAAK;aACL;YACD;gBACC,YAAY;gBACZ,0EAAqB;gBACrB,KAAK;aACL;YACD;gBACC,UAAU;gBACV,wEAAmB;gBACnB,KAAK;aACL;YACD;gBACC,gBAAgB;gBAChB,wEAAmB;gBACnB,IAAI;aACJ;YACD;gBACC,aAAa;gBACb,0EAAqB;gBACrB,KAAK;aACL;YACD;gBACC,MAAM;gBACN,oEAAe;gBACf,KAAK;aACL;YACD;gBACC,SAAS;gBACT,uEAAkB;gBAClB,KAAK;aACL;YACD;gBACC,OAAO;gBACP,qEAAgB;gBAChB,KAAK;aACL;YACD;gBACC,qBAAqB;gBACrB,IAAI;gBACJ,GAAG;gBACH,CAAC;gBACD;oBACC,KAAK;iBACL;aACD;YACD;gBACC,mBAAmB;gBACnB,uEAAkB;gBAClB,KAAK;aACL;YACD;gBACC,kBAAkB;gBAClB,sEAAiB;gBACjB,IAAI;aACJ;YACD;gBACC,cAAc;gBACd,4EAAuB;gBACvB,KAAK;aACL;YACD;gBACC,0BAA0B;gBAC1B,qFAAgC;gBAChC,MAAM;aACN;YACD;gBACC,QAAQ;gBACR,sEAAiB;gBACjB,KAAK;aACL;YACD;gBACC,qBAAqB;gBACrB,IAAI;gBACJ,GAAG;gBACH,CAAC;gBACD;oBACC,KAAK;iBACL;aACD;YACD;gBACC,QAAQ;gBACR,sEAAiB;gBACjB,KAAK;aACL;YACD;gBACC,mBAAmB;gBACnB,uEAAkB;gBAClB,KAAK;aACL;YACD;gBACC,oDAAoD;gBACpD,kFAA6B;gBAC7B,KAAK;aACL;YACD;gBACC,gBAAgB;gBAChB,6EAAwB;gBACxB,IAAI;gBACJ,CAAC;aACD;YACD;gBACC,eAAe;gBACf,4EAAuB;gBACvB,GAAG;gBACH,CAAC;aACD;YACD;gBACC,SAAS;gBACT,uEAAkB;gBAClB,KAAK;aACL;YACD;gBACC,0BAA0B;gBAC1B,0EAAqB;gBACrB,KAAK;aACL;YACD;gBACC,SAAS;gBACT,uEAAkB;gBAClB,KAAK;aACL;YACD;gBACC,mCAAmC;gBACnC,2EAAsB;gBACtB,IAAI;gBACJ,CAAC;aACD;YACD;gBACC,WAAW;gBACX,yEAAoB;gBACpB,IAAI;aACJ;YACD;gBACC,oBAAoB;gBACpB,uEAAkB;gBAClB,IAAI;aACJ;YACD;gBACC,mBAAmB;gBACnB,+EAA0B;gBAC1B,KAAK;aACL;YACD;gBACC,qCAAqC;gBACrC,6EAAwB;gBACxB,KAAK;gBACL,CAAC;aACD;YACD;gBACC,kBAAkB;gBAClB,qEAAgB;gBAChB,KAAK;aACL;YACD;gBACC,QAAQ;gBACR,sEAAiB;gBACjB,KAAK;aACL;YACD;gBACC,UAAU;gBACV,wEAAmB;gBACnB,KAAK;aACL;YACD;gBACC,eAAe;gBACf,+EAAuB;gBACvB,KAAK;gBACL,CAAC;aACD;SACD,CAAC;KACF;;sEAzyCY,WAAW;4GAAX,WAAW,WAAX,WAAW;;;;;;;;;;;;;;;;ACJxB,IAAY,UAoPX;AApPD,WAAY,UAAU;IACrB,gCAAkB;IAClB,4BAAc;IACd,4BAAc;IACd,kCAAoB;IACpB,4BAAc;IACd,2BAAa;IACb,6BAAe;IACf,sCAAwB;IACxB,8BAAgB;IAChB,4BAAc;IACd,0BAAY;IACZ,8BAAgB;IAChB,4BAAc;IACd,+BAAiB;IACjB,4BAAc;IACd,4BAAc;IACd,+BAAiB;IACjB,6BAAe;IACf,4BAAc;IACd,4BAAc;IACd,2BAAa;IACb,0BAAY;IACZ,4BAAc;IACd,2BAAa;IACb,4BAAc;IACd,yCAA2B;IAC3B,6BAAe;IACf,2BAAa;IACb,gDAAkC;IAClC,yCAA2B;IAC3B,2BAAa;IACb,6BAAe;IACf,gCAAkB;IAClB,4BAAc;IACd,6BAAe;IACf,6BAAe;IACf,2BAAa;IACb,8BAAgB;IAChB,yCAA2B;IAC3B,kCAAoB;IACpB,2CAA6B;IAC7B,yBAAW;IACX,0BAAY;IACZ,0BAAY;IACZ,oCAAsB;IACtB,0BAAY;IACZ,6BAAe;IACf,4BAAc;IACd,yDAA2C;IAC3C,kDAAoC;IACpC,gCAAkB;IAClB,8BAAgB;IAChB,qCAAkB;IAClB,4BAAc;IACd,yBAAW;IACX,iCAAc;IACd,2BAAa;IACb,kCAAoB;IACpB,4BAAc;IACd,6BAAe;IACf,6BAAe;IACf,sCAAwB;IACxB,4BAAc;IACd,0BAAY;IACZ,+BAAiB;IACjB,qCAAuB;IACvB,4BAAc;IACd,4BAAc;IACd,6BAAe;IACf,oCAAsB;IACtB,iCAAmB;IACnB,yBAAW;IACX,4BAAc;IACd,2BAAa;IACb,iCAAmB;IACnB,oCAAsB;IACtB,0BAAY;IACZ,2BAAa;IACb,4BAAc;IACd,4BAAc;IACd,0BAAY;IACZ,8BAAgB;IAChB,2BAAa;IACb,8BAAgB;IAChB,4BAAc;IACd,+BAAiB;IACjB,yBAAW;IACX,8BAAgB;IAChB,6BAAe;IACf,2BAAa;IACb,iCAAmB;IACnB,2BAAa;IACb,0BAAY;IACZ,6BAAe;IACf,6BAAe;IACf,4BAAc;IACd,4BAAc;IACd,0BAAY;IACZ,8BAAgB;IAChB,yBAAW;IACX,yBAAW;IACX,4BAAc;IACd,8BAAgB;IAChB,2BAAa;IACb,0BAAY;IACZ,4BAAc;IACd,0BAAY;IACZ,2BAAa;IACb,2BAAa;IACb,+BAAiB;IACjB,0BAAY;IACZ,6BAAe;IACf,2BAAa;IACb,2BAAa;IACb,+BAAiB;IACjB,yBAAW;IACX,2BAAa;IACb,4BAAc;IACd,4BAAc;IACd,4BAAc;IACd,0BAAY;IACZ,kCAAoB;IACpB,8BAAgB;IAChB,+BAAiB;IACjB,0BAAY;IACZ,8BAAgB;IAChB,+BAAiB;IACjB,2BAAa;IACb,6BAAe;IACf,6BAAe;IACf,yBAAW;IACX,0BAAY;IACZ,oCAAsB;IACtB,+BAAiB;IACjB,+BAAiB;IACjB,8BAAgB;IAChB,4BAAc;IACd,2BAAa;IACb,+BAAiB;IACjB,4BAAc;IACd,2BAAa;IACb,6BAAe;IACf,+BAAiB;IACjB,+BAAiB;IACjB,4BAAc;IACd,+BAAiB;IACjB,4BAAc;IACd,4BAAc;IACd,0BAAY;IACZ,0BAAY;IACZ,gCAAkB;IAClB,iCAAmB;IACnB,+BAAiB;IACjB,8BAAgB;IAChB,0BAAY;IACZ,4BAAc;IACd,yBAAW;IACX,kCAAoB;IACpB,+BAAiB;IACjB,2CAA6B;IAC7B,2BAAa;IACb,yBAAW;IACX,6BAAe;IACf,0BAAY;IACZ,8BAAgB;IAChB,2BAAa;IACb,mCAAqB;IACrB,6BAAe;IACf,yBAAW;IACX,gCAAkB;IAClB,2BAAa;IACb,6BAAe;IACf,+BAAiB;IACjB,0BAAY;IACZ,iCAAc;IACd,4BAAc;IACd,2BAAa;IACb,2BAAa;IACb,yCAAsB;IACtB,gCAAkB;IAClB,uCAAyB;IACzB,+BAAiB;IACjB,gCAAkB;IAClB,2CAA6B;IAC7B,iDAAmC;IACnC,0BAAY;IACZ,8BAAgB;IAChB,sDAAyB;IACzB,gCAAkB;IAClB,4BAAc;IACd,2BAAa;IACb,+BAAiB;IACjB,gCAAkB;IAClB,8BAAgB;IAChB,gCAAkB;IAClB,6BAAe;IACf,6BAAe;IACf,mCAAqB;IACrB,4BAAc;IACd,gCAAkB;IAClB,+BAAiB;IACjB,+BAAiB;IACjB,0BAAY;IACZ,6BAAe;IACf,0BAAY;IACZ,6BAAe;IACf,wCAA0B;IAC1B,8BAAgB;IAChB,2BAAa;IACb,gCAAkB;IAClB,0BAAY;IACZ,2BAAa;IACb,+BAAiB;IACjB,6BAAe;IACf,6BAAe;IACf,+BAAiB;IACjB,yBAAW;IACX,4BAAc;IACd,0BAAY;IACZ,sCAAwB;IACxB,4BAAc;IACd,2BAAa;IACb,iCAAmB;IACnB,0CAA4B;IAC5B,2BAAa;IACb,oCAAsB;IACtB,2BAAa;IACb,4BAAc;IACd,uCAAyB;IACzB,kCAAoB;IACpB,iCAAmB;IACnB,4BAAc;IACd,+BAAiB;IACjB,4BAAc;IACd,gCAAkB;IAClB,8BAAgB;IAChB,4BAAc;IACd,oCAAsB;IACtB,kCAAoB;IACpB,0BAAY;IACZ,2BAAa;IACb,6BAAe;IACf,sCAAmB;AACpB,CAAC,EApPW,UAAU,KAAV,UAAU,QAoPrB;;;;;;;;;;;;;;;;ACpPD,IAAY,kBAKX;AALD,WAAY,kBAAkB;IAC7B,2CAAqB;IACrB,mCAAa;IACb,mCAAa;IACb,iCAAW;AACZ,CAAC,EALW,kBAAkB,KAAlB,kBAAkB,QAK7B;;;;;;;;;;;;;;;;ACLD,IAAY,YAGX;AAHD,WAAY,YAAY;IACvB,6BAAa;IACb,6BAAa;AACd,CAAC,EAHW,YAAY,KAAZ,YAAY,QAGvB;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACH2I;AAC1E;AAChB;AACoB;AAEzB;AAC0B;AACb;AACJ;;;;;;;;;ICHhD,yEAAyD;IAAA,uDAA6B;IAAA,4DAAM;;;IAAnC,0DAA6B;IAA7B,0GAA6B;;;;IAItF,0EAA8E;IAC7C,uWAA+B,qPAAU,uBAAe,IAAzB,yGACnD,wBAAwB,IAD2B;IAA9D,4DACwF;;;IADzD,0DAA+B;IAA/B,6FAA+B;;;;IAI9D,yEACoE;IAAlE,mbAAS,yCAAmC,IAAC;IAC7C,0EAAsB;IACpB,qEAA0D;IAC5D,4DAAM;IACN,2EAA2B;IAAA,uDAAgB;IAAA,4DAAO;IAClD,2EAAwB;IAAA,uDAAqB;IAAA,4DAAO;;;IALN,gFAAmB;IAEzC,0DAA6B;IAA7B,0FAA6B;IAE1B,0DAAgB;IAAhB,iFAAgB;IACnB,0DAAqB;IAArB,+FAAqB;;;IAE/C,oEAAsE;;;;IACtE,yEACsB;IADmC,mbAAS,yCAAmC,IAAC;IAEpG,0EAAsB;IACpB,qEAA0D;IAC5D,4DAAM;IACN,2EAA2B;IAAA,uDAAgB;IAAA,4DAAO;IAClD,2EAAwB;IAAA,uDAAqB;IAAA,4DAAO;;;IALpD,gFAAmB;IAEK,0DAA6B;IAA7B,0FAA6B;IAE1B,0DAAgB;IAAhB,iFAAgB;IACnB,0DAAqB;IAArB,+FAAqB;;;IArBnD,0EAA0D;IACxD,2HAGM;IACN,6EAAsC;IACpC,yHAOK;IACL,yHAAsE;IACtE,yHAOK;IACP,4DAAK;;;IAtB0B,0DAA6C;IAA7C,uHAA6C;IAKlC,0DAA+B;IAA/B,wGAA+B;IAQlD,0DAA0C;IAA1C,iKAA0C;IACvB,0DAAe;IAAf,wFAAe;;;ADMxD,MAAM,wBAAwB;IAgDpC,YACS,eAA4B;QAA5B,oBAAe,GAAf,eAAe,CAAa;QA/C5B,UAAK,GAAG,EAAE,CAAC;QACX,uBAAkB,GAAkB,EAAE,CAAC;QACvC,sBAAiB,GAAG,IAAI,CAAC;QACzB,aAAQ,GAAG,cAAc,CAAC;QAC1B,kBAAa,GAAkB,EAAE,CAAC;QAClC,4BAAuB,GAAG,IAAI,CAAC;QAC/B,sBAAiB,GAAG,KAAK,CAAC;QAC1B,uBAAkB,GAAyB,CAAC,oFAAsB,CAAC,CAAC;QACpE,6BAAwB,GAAG,gBAAgB,CAAC;QAC5C,cAAS,GAAG,EAAE,CAAC;QAEf,uBAAkB,GAAG,IAAI,CAAC;QAE1B,oBAAe,GAAG,IAAI,CAAC;QACvB,OAAE,GAAG,OAAO,CAAC;QAEH,kBAAa,GAAG,IAAI,uDAAY,EAAW,CAAC;QAE/D,oBAAe,GAAY;YAC1B,SAAS,EAAE,SAAS;YACpB,QAAQ,EAAE,EAAE;YACZ,SAAS,EAAE,EAAE;YACb,IAAI,EAAE,EAAE;YACR,IAAI,EAAE,EAAE;YACR,WAAW,EAAE,EAAE;YACf,QAAQ,EAAE,CAAC;SACX,CAAC;QAEF,0DAA0D;QACjD,qBAAgB,GAAG,KAAK,CAAC;QAGlC,gBAAW,GAAG,EAAE,CAAC;QACjB,iBAAY,GAAmB,EAAE,CAAC;QAClC,iCAA4B,GAAmB,EAAE,CAAC;QAClD,mGAAmG;QACnG,cAAS,GAAQ,8EAA+B,EAAE,CAAC;QACnD,aAAQ,GAAG,KAAK,CAAC;QACjB,WAAM,GAAe,CAAC,2BAA2B,CAAC,CAAC;QACnD,sBAAiB,GAAG,EAAE,CAAC;QAIvB,cAAS,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC;QACtB,oBAAe,GAAG,CAAC,CAAM,EAAE,EAAE,GAAG,CAAC,CAAC;IAI9B,CAAC;IAEL,QAAQ;QACP,IAAI,CAAC,IAAI,EAAE,CAAC;IACb,CAAC;IAED,WAAW,CAAC,OAAsB;QACjC,IAAI,IAAI,CAAC,YAAY,IAAI,OAAO,CAAC,oBAAoB,CAAC;eAClD,OAAO,CAAC,oBAAoB,CAAC,CAAC,YAAY,KAAK,OAAO,CAAC,oBAAoB,CAAC,CAAC,aAAa,EAAE;YAC/F,IAAI,CAAC,kBAAkB,EAAE,CAAC;SAC1B;QACD,IAAI,OAAO,CAAC,kBAAkB,EAAE;YAC/B,IAAI,CAAC,qBAAqB,EAAE,CAAC;SAC7B;QACD,IAAI,CAAC,0BAA0B,EAAE,CAAC;IACnC,CAAC;IAED;;;MAGE;IACF,IAAI;QACH,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE;YACnC,IAAI,CAAC,qBAAqB,EAAE,CAAC;SAC7B;QACD,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE;YAC9B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;SACvF;QACD,IAAI,IAAI,CAAC,kBAAkB,EAAE;YAC5B,IAAI,IAAI,CAAC,4BAA4B,CAAC,MAAM,EAAE;gBAC7C,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC,CAAC;aAC9D;iBAAM;gBACN,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;aAC9C;SACD;QACD,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,0BAA0B,EAAE,CAAC;IACnC,CAAC;IAED,qBAAqB;QACpB,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE;YACnC,IAAI,CAAC,4BAA4B,GAAG,EAAE,CAAC;YACvC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBACtC,MAAM,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;oBACvD,OAAO,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC;gBACxB,CAAC,CAAC,CAAC;gBAEH,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7D,CAAC,CAAC,CAAC;SACH;IACF,CAAC;IAED,kBAAkB;QACjB,IAAI,IAAI,CAAC,kBAAkB,EAAE;YAC5B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACjI,IAAI,IAAI,CAAC,eAAe,EAAE;gBACzB,IAAI,IAAI,CAAC,WAAW,EAAE;oBACrB,IAAI,CAAC,mBAAmB,EAAE,CAAC;iBAC3B;qBAAM;oBACN,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;iBAChC;aACD;SACD;IACF,CAAC;IAED,kBAAkB,CAAC,OAAgB;QAClC,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;QAC/B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAGD;;OAEG;IACH,aAAa;QACZ,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;YAC5B,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC,cAAc,CAAC;gBAC/E,QAAQ,EAAE,QAAQ;gBAClB,KAAK,EAAE,SAAS;gBAChB,MAAM,EAAE,SAAS;aACjB,CAAC,CAAC;YACH,OAAO;SACP;QACD,MAAM,sBAAsB,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC;QACpE,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;YAC5C,IAAI,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,oFAAsB,CAAC,GAAG,CAAC,CAAC,EAAE;gBACjE,uBAAuB;gBACvB,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,sBAAsB,CAAC,EAAE;oBAC5D,OAAO,CAAC,CAAC;iBACT;gBACD,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,sBAAsB,CAAC,EAAE;oBAC5D,OAAO,CAAC,CAAC;iBACT;gBACD,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE;oBAClD,OAAO,CAAC,CAAC;iBACT;aACD;iBAAM;gBACN,8CAA8C;gBAC9C,IAAI,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,qFAAuB,CAAC,GAAG,CAAC,CAAC,EAAE;oBAClE,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,sBAAsB,CAAC,EAAE;wBAC5D,OAAO,CAAC,CAAC;qBACT;iBACD;gBACD,IAAI,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,qFAAuB,CAAC,GAAG,CAAC,CAAC,EAAE;oBAClE,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,sBAAsB,CAAC,EAAE;wBAC5D,OAAO,CAAC,CAAC;qBACT;iBACD;gBACD,IAAI,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,yFAA2B,CAAC,GAAG,CAAC,CAAC,EAAE;oBACtE,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE;wBAClD,OAAO,CAAC,CAAC;qBACT;iBACD;aACD;QACF,CAAC,CAAC,CAAC;QAEH,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YACvB,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,aAAa,CAAC,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC/E,IAAI,EAAE,EAAE;gBACP,EAAE,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAG,CAAC,CAAC;aAChF;SACD;QAED,IAAI,CAAC,0BAA0B,EAAE,CAAC;IACnC,CAAC;IAEM,mBAAmB;QACzB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;QAE9B,IAAI,MAAuB,CAAC;QAC5B,IAAI;YACH,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;SACzF;QAAC,OAAO,CAAC,EAAE;SACX;QAED,IAAI,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;QAC5C,uHAAuH;QACvH,IAAI,IAAI,CAAC,uBAAuB,EAAE;YACjC,WAAW,GAAG,MAAM,IAAI,MAAM,CAAC,cAAc,EAAE;gBAC9C,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,MAAM,CAAC;gBACzD,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;YAC7B,IAAI,WAAW,IAAI,WAAW,KAAK,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE;gBAC7D,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;gBACvE,IAAI,UAAU,EAAE;oBACf,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC;iBAClC;aACD;SACD;QACD,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;QAEpE,IAAI,CAAC,0BAA0B,EAAE,CAAC;QAElC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YAChB,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;SAChC;aAAM;YACN,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,kFAAmC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAEhG,oDAAoD;YACpD,IAAI,IAAI,CAAC,gBAAgB,IAAI,MAAM,EAAE;gBACpC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;aACzC;YAED,IAAI,CAAC,eAAe,CAAC;gBACpB,MAAM,EAAE,IAAI,CAAC,KAAK;gBAClB,mBAAmB,EAAE,MAAM;gBAC3B,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,6EAA8B,CAAC,CAAC,CAAC,CAAC,EAAE;gBAC3F,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,yEAA0B,CAAC,EAAC,CAAC,EAAE;gBAClF,WAAW,EAAE,WAAW,CAAC,WAAW,EAAE;gBACtC,QAAQ,EAAE,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ;gBAC7C,EAAE,EAAE,IAAI,CAAC,EAAE;aACX,CAAC,CAAC;SACH;IACF,CAAC;IAEM,eAAe,CAAC,OAAgB,EAAE,EAAE;QAC1C,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAEjC,IAAI,CAAC,0BAA0B,EAAE,CAAC;QAElC,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YACpD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;YAE9B,IAAI,MAAuB,CAAC;YAC5B,IAAI;gBACH,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;aACzF;YAAC,OAAO,CAAC,EAAE;aACX;YAED,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,kFAAmC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAEhG,oDAAoD;YACpD,IAAI,IAAI,CAAC,gBAAgB,IAAI,MAAM,EAAE;gBACpC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;aACzC;YAED,IAAI,CAAC,eAAe,CAAC;gBACpB,MAAM,EAAE,IAAI,CAAC,KAAK;gBAClB,mBAAmB,EAAE,MAAM;gBAC3B,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,6EAA8B,CAAC,CAAC,CAAC,CAAC,EAAE;gBAC3F,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,yEAA0B,CAAC,EAAC,CAAC,EAAE;gBAClF,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,EAAE;gBACpD,QAAQ,EAAE,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ;gBAC7C,EAAE,EAAE,IAAI,CAAC,EAAE;aACX,CAAC,CAAC;SACH;aAAM;YACN,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;SAChC;QAED,EAAE,CAAC,KAAK,EAAE,CAAC;IACZ,CAAC;IAEM,eAAe,CAAC,KAAoB;QAC1C,MAAM,YAAY,GAAG,aAAa,CAAC;QACnC,MAAM,gBAAgB,GAAG,QAAQ,CAAC,CAAC,sBAAsB;QACzD,MAAM,gBAAgB,GAAG;YACxB,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW;YACjD,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW;SAC9C,CAAC;QAEF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;eAC7B,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;eACpD,CAAC,CAAC,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE;YAC5C,KAAK,CAAC,cAAc,EAAE,CAAC;SACvB;IACF,CAAC;IAES,gBAAgB;QACzB,0GAA0G;QAC1G,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QAEvB,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YAC7C,MAAM,OAAO,GAAY;gBACxB,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;gBACrB,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;gBACrB,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;gBACzB,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBACpB,SAAS,EAAE,CAAC,CAAC,CAAC,CAAa,IAAI,SAAS;gBACxC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,iBAAiB,EAAE;gBAC9C,WAAW,EAAE,EAAE;aACf,CAAC;YAEF,IAAI,IAAI,CAAC,iBAAiB,EAAE;gBAC3B,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;aACjF;YAED,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACJ,CAAC;IAES,yBAAyB,CAAC,WAAmB;QACtD,IAAI;YACH,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,WAAW,CAAC,EAAE,kFAAmC,CAAC,CAAC;SAChH;QAAC,OAAO,CAAC,EAAE;YACX,OAAO,CAAC,CAAC;SACT;IACF,CAAC;IAED,gBAAgB,CAAC,EAAO;QACvB,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;IAC3B,CAAC;IAED,iBAAiB,CAAC,EAAO;QACxB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;IACrB,CAAC;IAED,gBAAgB,CAAC,UAAmB;QACnC,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;IAC5B,CAAC;IAED,UAAU,CAAC,GAAQ;QAClB,IAAI,GAAG,KAAK,SAAS,EAAE;YACtB,IAAI,CAAC,IAAI,EAAE,CAAC;SACZ;QACD,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;QACvB,UAAU,CAAC,GAAG,EAAE;YACf,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC5B,CAAC,EAAE,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,iBAAiB,CAAC,WAAmB,EAAE,MAAuB;QACrE,0DAA0D;QAC1D,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;QACpD,6GAA6G;QAC7G,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;QACvF,yFAAyF;QACzF,MAAM,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;QACnE,iGAAiG;QACjG,MAAM,kBAAkB,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;QAC5E,IAAI,cAAc,GAAG,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QAEhE;;;UAGE;QACF,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YACpC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;gBACpC,IAAI,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;oBACnC,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;iBAC9B;YACF,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,OAAO,cAAc,CAAC;IACvB,CAAC;IAED,2BAA2B,CAAC,WAAmB;QAC9C,OAAO,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;IACzC,CAAC;IAEO,cAAc,CAAC,WAAmB;QACzC,IAAI,IAAI,CAAC,gBAAgB,IAAI,WAAW,EAAE;YACzC,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;SAC/D;QACD,OAAO,WAAW,CAAC;IACpB,CAAC;IAED,yBAAyB;IACjB,0BAA0B;QACjC,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,eAAe,EAAE;YAClD,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC;YAC9C,IAAI,CAAC,qBAAqB,GAAG,6BAA6B,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;SAClF;aAAM;YACN,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC;SAChC;IACF,CAAC;;gGAvXW,wBAAwB;sHAAxB,wBAAwB;;;;;gsBAfzB;YACV,2DAAW;YACX;gBACC,OAAO,EAAE,6DAAiB;gBAC1B,0CAA0C;gBAC1C,WAAW,EAAE,yDAAU,CAAC,GAAG,EAAE,CAAC,wBAAwB,CAAC;gBACvD,KAAK,EAAE,IAAI;aACX;YACD;gBACC,OAAO,EAAE,yDAAa;gBACtB,QAAQ,EAAE,+EAAoB;gBAC9B,KAAK,EAAE,IAAI;aACX;SACD;QC3BF,yEAA6E;QAGvE,oEACyE;QACzE,oHAA4F;QAC5F,oEAA6B;QAC/B,4DAAM;QACN,oHAwBM;QACR,4DAAM;QACN,8EAG8E;QAHV,6IAAQ,eAAW,IAAC,mGAC1E,2BAAuB,IADmD,gPACN,yBAAqB,IADf;QAAxF,4DAG8E;;QArCrC,8FAAiC;QACrC,0DAAkC;QAAlC,yJAAkC;QAE7C,0DAAsC;QAAtC,uIAAsC;QAEtD,0DAAsB;QAAtB,sFAAsB;QA6Bd,0DAAS;QAAT,sEAAS;QAGzB,qFAA4B;;;;;;;;;;;;;;;;;;;;;;;;ACrC8B;AACY;AAC3B;AACmB;AACI;AACZ;AACJ;;;;AAa/C,MAAM,qBAAqB;IACjC,MAAM,CAAC,OAAO;QACb,OAAO;YACN,QAAQ,EAAE,qBAAqB;YAC/B,SAAS,EAAE,CAAC,+EAAsB,CAAC;SACnC,CAAC;IACH,CAAC;;0FANW,qBAAqB;kHAArB,qBAAqB;sHATxB;YACR,yDAAY;YACZ,uDAAW;YACX,+DAAmB;YACnB,4EAAwB,EAAE;YAC1B,wEAAqB,EAAE;SACvB;mIAGW,qBAAqB,mBAVlB,mFAAwB,aAEtC,yDAAY;QACZ,uDAAW;QACX,+DAAmB,qJAIV,mFAAwB;;;;;;;;;;;;;;;;;;ACd5B,MAAM,sBAAsB;IAElC,gBAAgB,CAAC;;4FAFL,sBAAsB;uHAAtB,sBAAsB,WAAtB,sBAAsB;;;;;;;;;;;;;;;;;;ACFU;AAEtC,MAAM,oBAAoB,GAAG,CAAC,OAAoB,EAAE,EAAE;IAC5D,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;IAC1E,MAAM,EAAE,GAAG,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,CAAoB,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IACrG,IAAI,EAAE,EAAE;QACP,MAAM,iBAAiB,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QACxD,IAAI,iBAAiB,KAAK,MAAM,EAAE;YACjC,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,QAAQ,KAAK,IAAI,CAAC;YACnE,MAAM,KAAK,GAAG,EAAE,mBAAmB,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC;YAExD,EAAE,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;YAE1C,IAAI,MAAuB,CAAC;YAE5B,IAAI;gBACH,MAAM,GAAG,8EAA+B,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;aAClG;YAAC,OAAO,CAAC,EAAE;gBACP,IAAI,UAAU,KAAK,IAAI,EAAE;oBACvB,OAAO,KAAK,CAAC;iBACd;qBAAM;oBACL,EAAE,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;iBAC1B;aACL;YAED,IAAI,OAAO,CAAC,KAAK,EAAE;gBAClB,IAAI,CAAC,MAAM,EAAE;oBACZ,OAAO,KAAK,CAAC;iBACb;qBAAM;oBACN,IAAI,CAAC,8EAA+B,EAAE,CAAC,sBAAsB,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE;wBACjG,OAAO,KAAK,CAAC;qBACb;yBAAM;wBACA,EAAE,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;qBAC1B;iBACN;aACD;SACD;aAAM,IAAI,iBAAiB,KAAK,OAAO,EAAE;YACtC,EAAE,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;YAE5B,OAAO,CAAC,eAAe,EAAE,CAAC;SAC1B;KACD;IACD,OAAO;AAER,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7CF;;GAEG;AAE8C;AACE;AACH;AACH;AACS;AACP;;;;;;;;;;;;;;;;;;;;;;;;ACRN;AAKoB;AAIC;AACA;AACnB;;;;;;;;;ICoBnC,yEAAsC;IAClC,yEAAyC;IAC7C,4DAAM;;;IADQ,0DAAmB;IAAnB,mFAAmB;;;;IAG7B,qEAAyC;IAAsD,+DAAI;IAAA,4DAAI;;IAA3D,0DAAwB;IAAxB,6IAAwB;;;;IAI5D,qEAA6B;IACmB,uSAAS,oBAAY,IAAC;IAAC,wEAAyC;IAAA,iEAAM;IAAA,2EAAuB;IAAA,mEAAQ;IAAA,4DAAO;;;;IAE5J,qEAA0B;IACsB,uSAAS,wBAAgB,IAAC;IAAC,wEAAyC;IAAA,iEAAM;IAAA,2EAAuB;IAAA,2EAAgB;IAAA,4DAAO;;;;IAExK,qEAA0B;IACsB,uSAAS,uBAAe,IAAC;IAAC,wEAA0C;IAAA,iEAAM;IAAA,2EAAuB;IAAA,4EAAiB;IAAA,4DAAO;;;;IAEzK,qEAA0B;IACsB,uSAAS,mBAAW,IAAC;IAAC,wEAA0C;IAAA,iEAAM;IAAA,2EAAuB;IAAA,kEAAO;IAAA,4DAAO;;;;;IAE3J,qEAAoC;IACsG,iWAAS,2BAAe,IAAC;IAAC,wEAAyC;IAAA,iEAAM;IAAA,2EAAwB;IAAA,uDAAW;IAAA,4DAAO;;;;IAA/N,0DAAkD;IAAlD,4LAAkD;IAA2J,0DAAW;IAAX,4EAAW;;;IAhB9P,qEAAmJ;IAC1C,uDAAW;IAAA,sEAA2B;IAAA,4DAAI;IAC/I,yEAAoD;IAChD,sHAEK;IACL,sHAEK;IACL,sHAEK;IACL,sHAEK;IACL,uHAEK;IACT,4DAAK;;;;IAlBiD,6JAAwF;IAC3I,0DAAmB;IAAnB,8JAAmB;IAA+E,0DAAW;IAAX,2EAAW;IAC7E,0DAAgB;IAAhB,qFAAgB;IAC1C,0DAAsB;IAAtB,uFAAsB;IAGtB,0DAAmB;IAAnB,oFAAmB;IAGnB,0DAAmB;IAAnB,oFAAmB;IAGnB,0DAAmB;IAAnB,oFAAmB;IAGL,0DAAe;IAAf,2FAAe;;;;IAY1C,qEAA0C;IAElC,mEAA6B;IAAA,uEACjC;IAAA,4DAAI;;IAFyB,0DAAyB;IAAzB,6IAAyB;;;;IAI1D,qEAA0C;IACoB,mEAAkD;IAAA,oFAAyB;IAAA,4DAAI;;IAA5G,0DAA4B;IAA5B,6IAA4B;;;IAtEzE,yEAAgJ;IAgCxI,mHAEM;IACN,wEAAqE;IACjE,iHAA4G;IAC5G,mHAmBK;IAET,4DAAK;IACL,wEAAqE;IAKjE,iHAIK;IACL,iHAEK;IACT,4DAAK;;;IAxCgB,0DAAe;IAAf,kFAAe;IAI3B,0DAAkC;IAAlC,qGAAkC;IACpB,0DAAqC;IAArC,6JAAqC;IA2BnD,0DAAmC;IAAnC,sGAAmC;IAKnC,0DAAmC;IAAnC,sGAAmC;;ADlD7C,MAAM,iBAAiB;IAe5B,YAAmB,cAA8B,EAAS,cAA8B,EAC7E,OAAsB,EAAS,MAAc;QADrC,mBAAc,GAAd,cAAc,CAAgB;QAAS,mBAAc,GAAd,cAAc,CAAgB;QAC7E,YAAO,GAAP,OAAO,CAAe;QAAS,WAAM,GAAN,MAAM,CAAQ;QAdjD,gBAAW,GAAQ,EAAE,CAAC;QACtB,eAAU,GAAQ,EAAE,CAAC;QAGpB,iBAAY,GAAQ,EAAE,CAAC;QAGxB,aAAQ,GAAQ,EAAE,CAAC;QAC1B,SAAI,GAAQ,EAAE,CAAC;QACf,cAAS,GAAY,KAAK,CAAC;QAOzB,8BAA8B;QAC9B,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QAEtF,IAAI,CAAC,QAAQ,GAAG,sFAA+B;QAC/C,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,EAAE;YAGzB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;SAC7B;IACH,CAAC;IAED,QAAQ;IACR,CAAC;IACD,aAAa;QACX,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QAEtB,IAAI,CAAC,cAAc,CAAC,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,MAAU,EAAE,EAAE;YACrF,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;gBACrB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,wDAAwD,CAAC;gBAC3E,UAAU,CAAC,GAAG,EAAE;oBACd,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;oBACrB,YAAY,EAAE,CAAC;gBACjB,CAAC,EAAE,IAAI,CAAC,CAAC;aACV;YACD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACzB,CAAC,EAAE,KAAK,CAAC,EAAE;YAET,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QAEzB,CAAC,CAAC;IACJ,CAAC;IACD,WAAW,CAAC,EAAE;QACZ,IAAG,EAAE,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAE,EAAC,CAAC,IAAI,KAAK,OAAO,CAAC,EAAC;YACrF,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,uBAAuB,CAAC,CAAC;SACpD;QACD,IAAG,EAAE,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAE,EAAC,CAAC,IAAI,KAAK,OAAO,CAAC,EAAC;YACzF,IAAI,CAAC,aAAa,EAAE,CAAC;SACtB;QACD,IAAG,EAAE,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAE,EAAC,CAAC,IAAI,KAAK,OAAO,CAAC,EAAC;YACzF,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,uBAAuB,CAAC,CAAC;SAClD;QACD,IAAG,EAAE,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAE,EAAC,CAAC,IAAI,KAAK,OAAO,CAAC,EAAC;YACrF,0DAA0D;SACzD;IAIP,CAAC;IACD,WAAW,CAAC,MAAM;QAEhB,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,MAAM,CAAC,EAAE,CAAC;YACvD,OAAO,IAAI;IACf,CAAC;IAGD,QAAQ,CAAC,IAAI;QAGX,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;YAE7B,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;YAElC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;gBAE9B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;aACzC;YAED,IAAI,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;YAElC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;gBAE/B,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,IAAI,IAAI,EAAE;oBACxC,IAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,EAClC;wBACE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,yBAAyB,CAAC;qBAC5D;oBACA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;iBACvC;aACF;SAEF;IAEH,CAAC;IAGD,QAAQ,CAAC,QAAQ;QAEf,4BAA4B;QAC5B,iCAAiC;QACjC,4BAA4B;QAC5B,MAAM;QACN,MAAM;QAGN,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,IAAI,QAAQ,CAAC,IAAI,IAAI,OAAO,EAAE;gBAC5B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;aACtB;SACF;QAID,IAAI,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,WAAW,EAAE;YACzD,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;SACvC;QAED,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,QAAQ,EAAE;YACzE,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,IAAI,EAAE,CAAC,UAAU,KAAK,QAAQ,CAAC,EAAE,CAAC,CAAC;SAC9I;aAAM;YACL,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;SAC5C;IACH,CAAC;IAED,kBAAkB,CAAC,UAAkB;QAEnC,IAAI,sBAAsB,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChE,IAAG,sBAAsB,CAAC,OAAO,CAAC,UAAU,CAAC,GAAC,CAAC,EAAC;YAC9C,sBAAsB,GAAC,sBAAsB,GAAC,MAAM;SACrD;QACD,OAAO,sBAAsB,CAAC;IAChC,CAAC;IAED,yBAAyB,CAAC,UAAkB;QAE1C,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,uBAAuB,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjE,IAAI,UAAU,GAAG,CAAC,uBAAuB,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAE3D,KAAK,IAAI,SAAS,IAAI,UAAU,EAAE;YAChC,IAAI,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACrC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;SAC/B;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,UAAU;QACR,MAAM,GAAG,GAAG,oFAA6B,CAAC;QAC1C,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;IAED,aAAa;QACX,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAE,EAAC,CAAC,IAAI,IAAE,OAAO,CAAC,CAAC,UAAU,CAAC;QACvE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;IACD,cAAc;QACZ,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAE,EAAC,CAAC,IAAI,IAAE,OAAO,CAAC,CAAC,UAAU,CAAC;QACvE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;IAED,SAAS;QACP,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAE,EAAC,CAAC,IAAI,IAAE,GAAG,CAAC,CAAC,UAAU,CAAC;QACnE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;;kFA3KU,iBAAiB;+GAAjB,iBAAiB;QCnB9B,6GA2EM;;QA3EgB,gLAAwH;;;;;;;;;;;;;;;;;;;;;;ACC7E;AACR;AACK;AACD;;;;;AAQtD,MAAM,gBAAgB;IAK3B,YAAoB,cAA8B,EACxC,MAAc,EAAU,SAAuB,EAC/C,UAA0B;QAFhB,mBAAc,GAAd,cAAc,CAAgB;QACxC,WAAM,GAAN,MAAM,CAAQ;QAAU,cAAS,GAAT,SAAS,CAAc;QAC/C,eAAU,GAAV,UAAU,CAAgB;IAAI,CAAC;IAEzC,QAAQ;QACN,IAAI,CAAC,cAAc,EAAE,CAAC;IACxB,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,KAAK,EAAC,sBAAsB,EAAE,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC;YAC1F,UAAU,EAAE,wFAAiC;SAC9C,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;YAChB,wFAAiC,GAAG,IAAI,CAAC;YACzC,IAAI,IAAI,GAAG,4GAAqD,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,eAAe,CAAC,CAAC;YACjG,IAAI,IAAI,EAAE;gBACR,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAC1E;iBAAM;gBACL,IAAI,CAAC,cAAc,GAAG,2JAA2J,CAAC;aACnL;YAED,kDAAkD;QACpD,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE;YACX,oBAAoB;QACtB,CAAC,CAAC,CAAC;IACL,CAAC;;gFA7BU,gBAAgB;8GAAhB,gBAAgB;QCZ7B,kEAAoC;;QAAjC,uJAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACA6F;AAE3D;AACY;AAGC;AACT;AAER;AACC;AACT;AACE;AACZ;AACsB;AACR;AACd;AAEjB;AACuE;AACtD;AACmB;;;;;;;;;;;;;;;;;;;;ICpB1D,2EAAyC;IACrC,2EAAyC;IAC7C,6DAAM;;;IADQ,2DAAmB;IAAnB,oFAAmB;;;IAarB,2EAAmF;IAC/E,+VAEJ;IAAA,6DAAM;;;;IAqBM,4EAA8I;IAChH,uZAAS,kCAAsB,IAAC;IAAC,6DAAI;;;;IAT3E,0EAAsH;IAC7F,wDAA4B;IAAA,6DAAO;IACxD,0EAAgB;IAAA,wDAA0B;IAAA,6DAAK;IAC/C,sEAAI;IAC4D,mXAAS,mCAAuB,IAAC;IAAC,oEACtE;IAAA,6DAAO;IAC/B,4EAAmE;IACc,gXAAS,yEAAwD,IAAC;IAAC,6DAAI;IACxJ,qIAC0E;IAC9E,6DAAK;;;IATgB,2DAA4B;IAA5B,8FAA4B;IACjC,2DAA0B;IAA1B,4FAA0B;IAMS,2DAA2C;IAA3C,4GAA2C;;;;IAiBlF,6EAAkK;IAAA,wEAClL;IAAA,iFAAmL;IAA7D,8aAAU,4DAA+C,IAAC;IAAhL,6DAAmL;;;IAA3G,2DAAqB;IAArB,qGAAqB;;;;IAI7E,8EAAyJ;IAA9D,yaAAS,kDAAsC,IAAC;IAAc,gEAAI;IAAA,6DAAS;;;IAd9K,sEAAiC;IACH,wDACxC;IAAA,wEAA8G;IAC9G,yEAAuB;IAAA,6DAAC;IAAA,6DAAI;IACd,qEAAqB;IAIrB,0EAAgD;IAC5C,oJAIV;IACU,wJAAsK;IAC1K,6DAAK;;;;;;IAdqB,2DACxC;IADwC,mGACxC;IAAsB,2DAA+B;IAA/B,sGAA+B;IAAC,0GAA0B;IAOnB,2DAAsB;IAAtB,2FAAsB;IAKxD,2DAAqB;IAArB,0FAAqB;;;IAf1C,yEAAiE;IAC7D,0IAgBK;IACT,sEAAe;;;IAjBN,2DAA0B;IAA1B,2FAA0B;;;;IA2BvB,6EAAkK;IAAA,wEAClL;IAAA,iFAA0J;IAA7D,8aAAU,4DAA+C,IAAC;IAAvJ,6DAA0J;;;;IAE1I,8EAAyJ;IAA9D,waAAS,kDAAsC,IAAC;IAAc,gEAAI;IAAA,6DAAS;;;IAV9K,sEAAkC;IACJ,wDAAuB;IAAA,6DAAO;IACxD,qEAAqB;IAIrB,0EAAgD;IAC5C,oJAEV;IACU,sJAAsK;IAC1K,6DAAK;;;;IAVqB,2DAAuB;IAAvB,yFAAuB;IAMF,2DAAsB;IAAtB,2FAAsB;IAGxD,2DAAqB;IAArB,0FAAqB;;;IAX1C,yEAAmD;IAC/C,yIAYK;IACT,sEAAe;;;IAbN,2DAA2B;IAA3B,4FAA2B;;;;IAepC,sEAAqC;IAER,uWAA4B;IAAiC,6DAAsB;;;IAIhH,sEAAoB;IAEuB,gFAAoB;IAAA,6DAAO;;;;IA5ElF,2EAAyC;IACrC,4HAGM;IACN,6EAA+B;IAY3B,2HAWK;;IAEL,yEAAO;IAEH,8IAkBe;IAEf,8IAce;IAEf,0HAIK;IAEL,0HAIK;IAET,6DAAQ;;;IA/Ec,2DAAuD;IAAvD,oIAAuD;IAgB9B,2DAAqE;IAArE,iPAAqE;IAe9E,2DAAiB;IAAjB,yFAAiB;IAoBjB,2DAAe;IAAf,yFAAe;IAgB5C,2DAA8B;IAA9B,kGAA8B;IAM9B,2DAAa;IAAb,iFAAa;;;IA6BtB,mFAOO;;;IAP8B,mFAAiB;;;IAQtD,sEAA6B;;;IAAxB,2IAAW;;;IAXpB,2EAAoE;IAGhE,sJAOO;IACP,4HAA6B;IAC7B,8EAAiD;IACrD,6DAAM;;;IAVqB,2DAAY;IAAZ,gFAAY;IAQjB,2DAAS;IAAT,6EAAS;IACd,2DAAqB;IAArB,sFAAqB;;;IAGtC,2EAA2F;IACvF,sEAAuD;IACvD,qEAAG;IAAA,wDAAkB;IAAA,6DAAI;;;IAAtB,2DAAkB;IAAlB,uFAAkB;;;;IAMrB,8EAA0H;IAA3B,qTAAS,wBAAgB,IAAC;IAAC,kEAAM;IAAA,6DAAS;;;;IACzI,8EAA0H;IAA3B,qTAAS,wBAAgB,IAAC;IAAC,kEAAM;IAAA,6DAAS;;;IAF7I,uEAA4C;IACxC,kIAAyI;IACzI,kIAAyI;IAC7I,6DAAM;;;IAFqB,2DAAiB;IAAjB,qFAAiB;IACjB,2DAAiB;IAAjB,qFAAiB;;;;IAE5C,uEAAgC;IAC+C,2SAAS,wBAAgB,IAAC;IAAC,gEAAI;IAAA,6DAAS;;ADjHhI,MAAM,uBAAuB;IAsFlC,YAAoB,eAAwC,EAAU,mBAAwC,EACpG,MAAc,EACd,KAAqB,EACrB,cAA+B,EAC/B,cAA8B,EAAU,SAAuB,EAC/D,OAAqB,EACpB,OAA8B,EAAU,GAAsB,EAAS,MAAqB,EAAS,oBAA0C,EAAQ,QAAkB,EAAU,OAAuB;QANjM,oBAAe,GAAf,eAAe,CAAyB;QAAU,wBAAmB,GAAnB,mBAAmB,CAAqB;QACpG,WAAM,GAAN,MAAM,CAAQ;QACd,UAAK,GAAL,KAAK,CAAgB;QACrB,mBAAc,GAAd,cAAc,CAAiB;QAC/B,mBAAc,GAAd,cAAc,CAAgB;QAAU,cAAS,GAAT,SAAS,CAAc;QAC/D,YAAO,GAAP,OAAO,CAAc;QACpB,YAAO,GAAP,OAAO,CAAuB;QAAU,QAAG,GAAH,GAAG,CAAmB;QAAS,WAAM,GAAN,MAAM,CAAe;QAAS,yBAAoB,GAApB,oBAAoB,CAAsB;QAAQ,aAAQ,GAAR,QAAQ,CAAU;QAAU,YAAO,GAAP,OAAO,CAAgB;QAvFtN,QAAG,GAAG,+DAAO,CAAC;QAKd,kBAAa,GAAQ,EAAE,CAAC;QACvB,iBAAY,GAAM,EAAE,CAAC;QACrB,iBAAY,GAAY,KAAK,CAAC;QAC9B,iBAAY,GAAS,IAAI,CAAC;QAC1B,aAAQ,GAAE,EAAE,CAAC;QACb,aAAQ,GAAG,KAAK,CAAC;QAGhB,SAAI,GAAG,CAAC,CAAC;QACV,eAAU,GAAG,EAAE,CAAC;QAChB,YAAO,GAAY,KAAK,CAAC;QACzB,eAAU,GAAY,KAAK,CAAC;QAE5B,SAAI,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;QACxB,cAAS,GAAS,IAAI,CAAC;QAQvB,uBAAkB,GAAG,KAAK,CAAC;QAC3B,mBAAc,GACZ,0EAA0E,CAAC;QAI7E,8BAA8B;QAC9B,YAAO,GAAY,KAAK,CAAC;QAEI,uBAAkB,GAAY,KAAK,CAAC;QAKjE,2BAAsB,GAAG,KAAK,CAAC;QAC/B,wBAAmB,GAAG,KAAK,CAAC;QAC5B,gBAAW,GAAG,IAAI,CAAC;QACnB,WAAM,GAAG,IAAI,CAAC;QACd,iBAAY,GAAG,KAAK;QACpB,iDAAiD;QACjD,oBAAe,GAAQ,EAAE,CAAC;QAC1B,iBAAY,GAAQ,EAAE,CAAC;QAMvB,iBAAY,GAAQ,EAAE,CAAC;QACvB,sBAAiB,GAAQ,EAAE,CAAC;QAE5B,4BAAuB,GAAQ,EAAE,CAAC;QAClC,iBAAY,GAAQ,EAAE,CAAC;QAEvB,iBAAY,GAAG,iBAAiB,CAAC;QACjC,mBAAc,GAAG,6CAA6C,CAAC;QAC/D,gBAAW,GAAG,4CAA4C,CAAC;QAC3D,eAAU,GAAG,+CAA+C,CAAC;QAC7D,mBAAc,GAAG,KAAK,CAAC;QACvB,kBAAa,GAAG,KAAK,CAAC;QACtB,kBAAa,GAAG,EAAE,CAAC;QACnB,YAAO,GAAG,sBAAsB,CAAC;QAC1B,cAAS,GAAG,KAAK,CAAC;QACzB,UAAK,GAAW,CAAC,CAAC;IAkBwM,CAAC;IAE3N,QAAQ;QACN,IAAI,CAAC,KAAK,GAAG,2GAAqD,CAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAE,cAAc,CAAC,CAAC,KAAK,CAAC;QACvG,IAAI,CAAC,KAAK,GAAG,2GAAqD,CAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAE,iBAAiB,CAAC,CAAC,KAAK,CAAC;QAG1G,uCAAuC;QACvC,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QAGrG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,qEAAa,CAAC,CAAC,SAAS;QACjE,gCAAgC;QACjC,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,SAAS,GAAC,KAAK,CAAC;IAGvB,CAAC;IAED,cAAc;QAEZ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,MAAU,EAAE,EAAE;YACpE,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;YAC9C,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;YACxB,qEAAqE;YACrE,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,IAAI,CAAC,eAAe,GAAG,CAAC,EAAE;gBAC5B,IAAI,CAAC,mBAAmB,EAAE,CAAC;aAC5B;QAEH,CAAC,EAAE,KAAK,CAAC,EAAE;YAET,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,uMAAuM;YACvM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,8DAA8D,EAAE,kBAAkB,CAAC,CAAC;QACxG,CAAC,CAAC,CAAC;IACL,CAAC;IACD,mBAAmB;QAEb,iDAAiD;QACrD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,mBAAmB,CAAC,6BAA6B,CAAC,IAAI,CAAC,eAAe,CAAC;aACzE,IAAI,CACL,2DAAU,CAAC,GAAG,CAAC,EAAE;YACf,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG;gBACnB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qDAAqD,EAAE,kBAAkB,CAAC,CAAC;;gBAE5F,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iEAAiE,EAAE,kBAAkB,CAAC,CAAC;YAC3G,OAAO,yCAAE,CAAC,EAAE,CAAC,CAAC;QAChB,CAAC,CAAC,CACD;aACA,SAAS,CAAC,CAAC,MAAU,EAAE,EAAE;YACxB,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC;YAClC,oDAAoD;YACpD,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,EAAE;gBAC7B,IAAI,CAAC,2BAA2B,EAAE,CAAC;aACpC;YACD,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACzB,CAAC,EAAE,KAAK,CAAC,EAAE;YACX,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACxB,CAAC,CAAC,CAAC;IAEN,CAAC;IACD,2BAA2B;QAEzB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACxE,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC;YACzB,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EACjC;gBACE,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;gBACrB,IAAI,CAAC,sBAAsB,EAAE,CAAC;aAE/B;QACH,CAAC,EACA,KAAK,CAAC,EAAE;YACN,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,IAAI,CAAC,aAAa,GAAC,EAAE,CAAC;YAEtB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACxB,yMAAyM;QAC5M,CAAC,CAAC,CAAC;IAEL,CAAC;IACD,sBAAsB;QAEpB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QAEzB,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EACjC;YACE,IAAI,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;YAEtC,KAAI,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,KAAK,EAAE,GAAG,EAAE,EAAC;gBAEnC,IAAI,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,gBAAgB,CAAC,CAAC;gBAC3E,IAAI,KAAK,IAAI,CAAC,CAAC,EACf;oBACE,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,EAAC,CAAC,CAAC,CAAC;iBACnC;aACF;SACA;QACD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IAEvB,CAAC;IACD,eAAe,CAAC,EAAU;QACxB,IAAI,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;QACrC,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE;YACrC,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,gBAAgB,IAAI,EAAE;gBAAE,OAAO,IAAI,CAAC;SACnE;QACD,OAAO,CAAC,CAAC,CAAC;IACZ,CAAC;IACD,MAAM;QAEJ,IAAI,CAAC,cAAc,EAAE,CAAC;IAExB,CAAC;IACD,eAAe,CAAC,SAAkB,IAAI;QACpC,IAAI,CAAC,UAAU,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,iBAAiB,CAAC;IAC/D,CAAC;IAED,IAAI;QACF,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED,QAAQ,CAAC,GAAQ;QACf,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,OAAO,GAAC,4CAA4C;QACzD,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YAErD,mKAAmK;YACnK,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,GAAG,CAAC,IAAI,WAAW,EAAC,iBAAiB,CAAC,CAAC;YAEvE,uBAAuB;YACtB,eAAe;YACd,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,GAAG;YACH,yBAAyB;QAC3B,CAAC,EAAE,KAAK,CAAC,EAAE;YACT,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;YACrB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,mNAAmN;YACnN,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,IAAI,CAAC,SAAS,CAAC,IAAI,mBAAmB,EAAC,iBAAiB,CAAC,CAAC;QAE1F,CAAC,CAAC,CAAC;IACL,CAAC;IAED,eAAe,CAAC,KAAe;QAC7B,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACvC,CAAC;IACD,cAAc,CAAC,KAAU,EAAC,cAAmB;QAC5C,IAAI,CAAC,WAAW,CAAC,KAAK,EAAC,QAAQ,EAAC,cAAc,CAAC,CAAC;IAEjD,CAAC;IAED,WAAW,CAAC,KAAU,EAAG,WAAgB,EAAC,cAAmB;QAE3D,IAAI,cAAc,IAAI,IAAI,EAAE;YAExB,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;YAEhC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;gBACrD,IAAI,IAAI,GAAQ,IAAI;gBACpB,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM;gBAEvC,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;gBACrC,IAAI,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAI5C,8BAA8B;gBAC9B,IAAI,MAAM,IAAI,CAAC,CAAC,EAAE;oBAEjB,IAAI,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAE/C,IAAI,UAAU,IAAI,CAAC,CAAC,EAAE;wBACpB,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;wBAE3B,MAAM,CAAC,mBAAmB;wBAC1B,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;wBAC3B,MAAM,CAAC,MAAM,GAAG,GAAG,EAAE;4BAEjB,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;4BACvD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI;gCACzB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI;4BACzB,IAAI,CAAC,eAAe,GAAG,WAAW;4BAClC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI;4BACzB,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC;wBAErC,CAAC,CAAC;qBACD;yBACI;wBACH,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,GAAG,EAAE;wBACtC,IAAI,eAAe,GAAG,2GAAqD,CAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAE,cAAc,CAAC,CAAC;wBAC1G,8PAA8P;wBAC9P,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,eAAe,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAC,uCAAuC,CAAC,CAAC;qBAG9H;iBAEF;qBAED;oBACE,4BAA4B;oBAC5B,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,GAAG,EAAE;oBACtC,IAAI,gBAAgB,GAAG,2GAAqD,CAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAE,iBAAiB,CAAC,CAAC;oBAE9G,iQAAiQ;oBACjQ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wCAAwC,EAAC,uCAAuC,CAAC;iBACpG;aAEF;YAED,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,GAAG,EAAE;YACvC,uCAAuC;SAEzC;IAEH,CAAC;IAED,aAAa,CAAC,QAAe;QAE3B,0CAA0C;QAC1C,IAAI,gBAAgB,GAAG,2GAAqD,CAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAE,iBAAiB,CAAC,CAAC;QAC9G,IAAI,cAAc,GAAG,gBAAgB,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAClE,uBAAuB;QACvB,IAAI,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QAC/C,IAAI,KAAK,GAAG,cAAc,CAAC,MAAM,CAAC;QAClC,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE;YACvC,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,GAAG;gBAAE,OAAO,IAAI,CAAC;SAChD;QACD,OAAO,CAAC,CAAC,CAAC;IACV,CAAC;IAED,aAAa,CAAC,QAAe;QAE3B,4BAA4B;QAC5B,IAAI,eAAe,GAAG,2GAAqD,CAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAE,cAAc,CAAC,CAAC;QAC1G,IAAI,cAAc,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC,aAAa;QACzD,IAAI,eAAe,GAAG,CAAC,QAAQ,GAAC,OAAO,CAAC,CAAC;QACzC,IAAI,eAAe,IAAI,cAAc;YACrC,OAAO,CAAC,CAAC;;YACJ,OAAO,CAAC,CAAC,CAAC;QACf,EAAE;IAKJ,CAAC;IACD,YAAY,CAAC,cAAkB;QAKzB,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,EAAE;YAEzB,2GAA2G;YAC3G,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,EAAC,OAAO,CAAC;SAG3D;aAAM;YAEH,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC;SACjD;IAGP,CAAC;IAED,QAAQ,CAAC,SAAc,EAAG,cAAmB;QAE3C,wCAAwC;QAExC,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE;QAC/B,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC;QACvC,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC;QAC1C,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC;QAC5C,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC;QAC9C,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC;QAC1C,QAAQ,CAAC,MAAM,CAAC,gBAAgB,EAAE,cAAc,CAAC;QACjD,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,SAAS,CAAC;QACvC,QAAQ,CAAC,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;QACnD,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC;QAGzC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QAEtB,IAAI,CAAC,OAAO,GAAG,0BAA0B;QAC3C,OAAO,CAAC,GAAG,CAAC,WAAW,EAAC,QAAQ,CAAE,CAAC;QACjC,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,QAAQ,EAAE,cAAc,EAAE,SAAS,CAAC;aACjE,SAAS,CACV,QAAQ,CAAC,EAAE;YAEF,IAAI,CAAC,MAAM,EAAE,KAAG;YACjB,gDAAgD;YAChD,6BAA6B;YAC7B,wEAAwE;YACxE,yBAAyB;YACzB,IAAI;QAGZ,CAAC,EACD,KAAK,CAAE,EAAE;YACR,IAAI,CAAC,SAAS,GAAE,KAAK,CAAC;YAGnB,iDAAiD;YACjD,sDAAsD;YACtD,oGAAoG;YACpG,MAAM;YACF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uCAAuC,CAAC;YAC9D,IAAI,CAAC,MAAM,EAAE;QACjB,CAAC,CAAC;IAER,CAAC;IAED,OAAO,CAAC,EAAE,EAAE,QAAQ;QAClB,YAAY;QACZ,iBAAiB;QACjB,IAAI,CAAC,UAAU,GAAE,IAAI,CAAC;QACtB,EAAE,GAAG,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,GAAC,CAAC,CAAC,CAAC;QACjD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;QAChB,IAAI,GAAG,GAAG,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;QACnE,mBAAmB;QACnB,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;YAC7B,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE;gBACnD,IAAI,SAAS,GAAG,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;gBACvC,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;gBAExB,gCAAgC;gBAChC,iEAAiE;gBACjE,0BAA0B;gBAC1B,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC5B,CAAC,CAAC,CAAC;YACH,OAAO;SACR;QAED,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE;YAChD,IAAI,SAAS,GAAG,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YACvC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACvB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;YAC5D,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACtB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,gBAAgB;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;IAGD,qBAAqB;IACrB,uBAAuB;IACvB,8BAA8B;IAC9B,qBAAqB;IACrB,oBAAoB;IACpB,yDAAyD;IACzD,yBAAyB;IACzB,mCAAmC;IACnC,4DAA4D;IAC5D,wBAAwB;IACxB,gDAAgD;IAChD,mCAAmC;IACnC,wBAAwB;IACxB,mCAAmC;IACnC,SAAS;IACT,aAAa;IACb,MAAM;IACN,uDAAuD;IACvD,kDAAkD;IAClD,sBAAsB;IACtB,uEAAuE;IACvE,qCAAqC;IACrC,OAAO;IACP,IAAI;IAEJ,yBAAyB;IACvB,SAAS,CAAC,GAAQ;QAChB,gJAAgJ;QAChJ,kCAAkC;QAClC,yBAAyB;QACzB,qCAAqC;QACrC,wBAAwB;QACxB,gBAAgB;QAChB,QAAQ;QACR,QAAQ;QACN,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,4CAA4C,GAAG,CAAC,SAAS,aAAa,EAAE,GAAG,EAAE;YACjH,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAGrB,CAAC,EAAE,GAAG,EAAE;YACN,OAAO;QACT,CAAC,CAAC;IACN,CAAC;IACD,QAAQ,CAAC,GAAG;QACV,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,6DAA6D,CAAC;IACjF,CAAC;IAED,YAAY;QACV,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,CAAC,GAAQ,EAAE,EAAE;YACzD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAEf,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QAIxB,CAAC,EAAE,CAAC,GAAG,EAAC,EAAE;YACR,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC1B,CAAC,CAAC;IAEN,CAAC;IAED,YAAY,CAAC,EAAE;QACb,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,SAAS,CACtC,CAAC,MAAa,EAAE,EAAE;YAChB,IAAI,MAAM,EAAE;gBAEV,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAClE,CAAC,QAAa,EAAE,EAAE;oBAEhB,IAAI,QAAQ,CAAC,SAAS,IAAI,IAAI,EAAE;wBAC9B,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;wBAC/B,IAAI,CAAC,UAAU,GAAE,KAAK,CAAC;wBACvB,IAAI,CAAC,cAAc,GAAG,kDAAkD,QAAQ,CAAC,aAAa,6BAA6B,CAAC;wBAC5H,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC;wBAC1B,QAAQ,CAAC,aAAa,GAAG,MAAM,CAAC;wBAChC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC;wBACvB,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC;wBAChC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE;wBAEhD,CAAC,CAAC,CAAC;wBAEH,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,CAAC;wBAC3C,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;qBAC3B;yBAAM;wBACL,IAAI,CAAC,MAAM,CAAC,OAAO,CACjB,WAAW,QAAQ,CAAC,aAAa,qDAAqD,CACvF,CAAC;qBACH;gBACH,CAAC,EACD,CAAC,KAAK,EAAE,EAAE;oBACR,IAAI,CAAC,MAAM,CAAC,OAAO,CACjB,yGAAyG,CAC1G,CAAC;gBACJ,CAAC,CACF,CAAC;aACH;QAEH,CAAC,EACD,CAAC,GAAG,EAAE,EAAE;YACN,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,kHAAkH,CACnH,CAAC;YACF,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC5B,CAAC,CACF,CAAC;IACJ,CAAC;IAED,aAAa;QACX,IAAG,IAAI,CAAC,eAAe,EAAC;YACtB,IAAI,CAAC,eAAe,CAAC,SAAS,GAAG,IAAI,CAAC;YACtC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE;YAE5D,CAAC,CAAC,CAAC;SACJ;IAEH,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC,eAAe,CAAC,SAAS,GAAG,IAAI,CAAC;QACtC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE;QAE5D,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;QAChC,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE;YAElD,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;YACzB,IAAI,SAAS,GAAG,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YAEvC,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;YACxB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,IAAI,CAAC,eAAe,CAAC,SAAS,GAAG,IAAI,CAAC;YACtC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE;YAE5D,CAAC,CAAC,CAAC;YACH,6CAA6C;YAE7C,mCAAmC;QACrC,CAAC,EAAE,KAAK,CAAC,EAAE;YACT,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,oHAAoH,CACrH,CAAC;YAEF,IAAI,CAAC,eAAe,CAAC,SAAS,GAAG,IAAI,CAAC;YACtC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE;gBAE1D,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC5B,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,cAAc;QAEZ,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC9B,MAAM,CAAC,mBAAmB,CAAC;QAC3B,IAAG,IAAI,CAAC,eAAe,EAAC;YACtB,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC3C,MAAM,CAAC,MAAM,GAAG,GAAG,EAAE;gBACnB,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBACxD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACrD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;gBAC1C,IAAI,CAAC,QAAQ;oBACX,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,IAAI,EAAE,EAAE,gBAAgB,CAAC,GAAG,MAAM,CAAC;gBAC1E,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC;gBAChC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,CAAC;gBAC3C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;gBACzB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAEzC,CAAC,CAAC;SACH;IAEH,CAAC;IAEC,gBAAgB,CAAC,EAAE;QAErB,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;YAChD,IAAI,SAAS,GAAG,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YAErC,IAAI,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;YAC9B,MAAM,CAAC,mBAAmB;YAC1B,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YACxB,MAAM,CAAC,MAAM,GAAG,GAAG,EAAE;gBAEnB,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACvD,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC;gBACvB,IAAI,CAAC,QAAQ,GAAE,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,IAAI,EAAE,EAAE,gBAAgB,CAAC,GAAG,MAAM,CAAC;gBACvF,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC;gBAEhC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAC,CAAC,CAAC,IAAI,CAAC;gBAC1B,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;YAExB,CAAC,CAAC;YACJ,mCAAmC;QACrC,CAAC,CAAC;IACF,CAAC;;8FAzoBY,uBAAuB;sHAAvB,uBAAuB;;;;;;QC5BpC,0EAA6B;QACzB,oHAEM;QACN,wEAAoK;QAEpK,0EAAyC;QACtB,4EAAgB;QAAA,6DAAS;QAAA,2EAAsB;QAAC,wDAAmC;QAAA,6DAAO;QACzG,0EAAiB;QAMb,wHAkFM;QACV,6DAAM;QAKd,2EAAqI;QAKlE,4EAAe;QAAA,6DAAK;QACvE,+EAA4E;QAC/C,mEAAO;QAAA,6DAAO;QAG/C,4EAAiC;QAE7B,uHAaM;QAEN,uHAGM;QAEV,6DAAM;QACN,4EAA0B;QACtB,uHAGM;QACN,uHAEM;QACN,+EAA0H;QAA/C,iJAAS,mBAAe,IAAC;QAAsB,mEAAM;QAAA,6DAAS;;QA9I7H,2DAAe;QAAf,gFAAe;QAM4B,2DAAmC;QAAnC,qHAAmC;QAOtE,2DAAe;QAAf,gFAAe;QAoGM,4DAAyB;QAAzB,0FAAyB;QAeD,2DAAwB;QAAxB,yFAAwB;QAOnF,2DAAoC;QAApC,yGAAoC;QAIpC,2DAAwB;QAAxB,yFAAwB;;;;;;;;;;;;;;;;;;;AC5ImB;AACU;;AAC3E,uEAAuE;AACvE,sFAAsF;AAO/E,MAAM,uBAAuB;IAElC,YAAmD,iBAAyB,EAA+B,OAAe;QAAvE,sBAAiB,GAAjB,iBAAiB,CAAQ;QAA+B,YAAO,GAAP,OAAO,CAAQ;IAAI,CAAC;IAE/H,IAAY,SAAS;QACnB,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;QAChC,OAAO,IAAI,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,EAAC,CAAC,KAAK,CAAC;IACjD,CAAC;IACC,QAAQ,CAAC,CAAkB;QACzB,aAAa;QACb,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;QAEhB,gBAAgB;QAChB,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAE3C,kBAAkB;QAClB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACvC,OAAO;gBACL,iBAAiB,EAAE,KAAK;aACzB;SACJ;QAGD,0BAA0B;QAC1B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS,EAAE;YACtC,OAAO,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;YACrC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM;gBAAE,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;SACxD;QAED,8BAA8B;QAC9B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS,EAAE;YACtC,CAAC,CAAC,SAAS,CAAC,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAAC,CAAC;SAC7C;QAED,OAAO,IAAI,CAAC;IACd,CAAC;;8FAnCU,uBAAuB,kEAEX,mBAAmB,mEAA+C,SAAS;qHAFvF,uBAAuB,yOAJvB;YACH,EAAE,OAAO,EAAE,yDAAa,EAAE,WAAW,EAAE,yDAAU,CAAC,GAAG,EAAE,CAAC,uBAAuB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE;SACtG;;;;;;;;;;;;;;;;;;;;;;;ACJ0E;AACG;;;;;;;;;ICJ9E,yEAAyC;IACvC,yEAAyC;IAC3C,4DAAM;;;IADM,0DAAmB;IAAnB,mFAAmB;;;;IAS7B,yEAAoD;IAC7B,2VAAuB;IAA5C,4DAAyD;IAAC,sEAAyC;IACnG,6EAA2F;IAArD,ySAAS,oCAAsB,IAAC;IAAqB,8DAAG;IAAA,4DAAS;IACvG,6EAA4E;IAArC,ySAAS,aAAM,IAAC;IAAqB,6DAAE;IAAA,4DAAS;;;IAFlE,0DAAuB;IAAvB,qFAAuB;IAAoB,0DAA2B;IAA3B,yJAA2B;;;IAuCzF,yEAAuH;IACjH,uDAA4B;IAAA,4DAAK;IACrC,qEAAI;IAAA,uDAAsB;IAAA,4DAAK;IAC/B,qEAAI;IAAA,uDAAe;IAAA,4DAAK;IACxB,qEAAI;IAAA,uDAAgB;IAAA,4DAAK;IACzB,qEAAI;IAAA,wDAAc;IAAA,4DAAK;IACvB,sEAAI;IAAA,wDAAc;IAAA,4DAAK;;;IALnB,0DAA4B;IAA5B,6FAA4B;IAC5B,0DAAsB;IAAtB,uFAAsB;IACtB,0DAAe;IAAf,gFAAe;IACf,0DAAgB;IAAhB,iFAAgB;IAChB,0DAAc;IAAd,+EAAc;IACd,0DAAc;IAAd,+EAAc;;;;IAOlB,qEAA8B;IAEL,wWAA4B;IAAiC,4DAAsB;;;IAG5G,qEAAoB;IAEmB,8EAAmB;IAAA,4DAAO;;;;IAvDvE,yEAAyC;IAK/B,8DAEF;IAAA,4DAAK;IACL,yEAA0D;IACxD,iEAEF;IAAA,4DAAK;IACL,yEAA0D;IACxD,kEAEF;IAAA,4DAAK;IACL,0EAA0D;IACxD,oEAEF;IAAA,4DAAK;IACL,0EAA0D;IACxD,kEAEF;IAAA,4DAAK;IACL,0EAA0D;IACxD,kEACF;IAAA,4DAAK;IAST,+HAWK;;IACL,yEAAO;IACL,8HAIK;IACL,8HAIK;IACP,4DAAQ;;;IAvB+C,2DAA8D;IAA9D,wOAA8D;IAa9G,0DAAuB;IAAvB,0FAAuB;IAKvB,0DAAa;IAAb,gFAAa;;ADzDrB,MAAM,0BAA0B;IAqBrC,YAAoB,QAAkC,EAC5C,OAA8B;QADpB,aAAQ,GAAR,QAAQ,CAA0B;QAC5C,YAAO,GAAP,OAAO,CAAuB;QApBxC,WAAM,GAAQ,EAAE,CAAC;QACjB,aAAQ,GAAG,KAAK,CAAC;QAGjB,SAAI,GAAG,CAAC,CAAC;QACT,eAAU,GAAG,EAAE,CAAC;QAEhB,iBAAY,GAAG,iBAAiB,CAAC;QACjC,mBAAc,GAAG,2CAA2C,CAAC;QAC7D,gBAAW,GAAG,4CAA4C,CAAC;QAC3D,eAAU,GAAG,+CAA+C,CAAC;QAC7D,mBAAc,GAAG,KAAK,CAAC;QACvB,kBAAa,GAAG,KAAK,CAAC;QACtB,kBAAa,GAAG,EAAE,CAAC;QACnB,YAAO,GAAG,sBAAsB,CAAC;QAE1B,cAAS,GAAG,KAAK,CAAC;QACzB,YAAO,GAAY,KAAK,CAAC;IAGmB,CAAC;IAE7C,QAAQ;QACN,iBAAiB;QACjB,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IACD,MAAM;QACJ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YAC9C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;YAErB,2BAA2B;YAC3B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACzB,CAAC,EAAE,KAAK,CAAC,EAAE;YACT,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACnB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACtB,CAAC,CAAC,CAAC;IACL,CAAC;IACD,QAAQ,CAAC,EAAO;QAEd;;;;;;;;;;;cAWM;IACR,CAAC;IACD,SAAS,CAAC,GAAQ;QAChB,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;QACrB,IAAI,CAAC,aAAa,GAAG,oDAAoD,IAAI,CAAC,SAAS,CAAC,YAAY,YAAY,CAAC;QACjH,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAC5B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC;IAED,IAAI;QACF,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED,eAAe,CAAC,SAAkB,IAAI;QACpC,IAAI,CAAC,UAAU,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,iBAAiB,CAAC;IAC9D,CAAC;;oGAvEU,0BAA0B;wHAA1B,0BAA0B;QCZvC,yEAA6B;QAC3B,sHAEM;QACN,yEAAiB;QAET,qEAAwC;QAA2B,oEAAG;QAAC,uDAA0B;QAAA,4DAAI;QAG7G,gEAAI;QACJ,0EAAiB;QACf,wHAIM;QACN,yHA4DM;QACR,4DAAM;;QA5EkB,0DAAe;QAAf,+EAAe;QAKwC,0DAA0B;QAA1B,gGAA0B;QAKjG,0DAAc;QAAd,8EAAc;QAKI,0DAAe;QAAf,+EAAe;;;;;;;;;;;;;;;;;AChBpC,MAAM,WAAW,GAAG;IACzB,UAAU,EAAE,IAAI;IAChB,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,YAAY;IACrB,cAAc,EAAE,IAAI;IACpB,WAAW,EAAE;QACX,GAAG,EAAE,uCAAuC;QAC5C,UAAU,EAAE,OAAO;QACnB,QAAQ,EAAE,IAAI;KACf;IACD,aAAa,EAAG,uBAAuB;IACvC,UAAU,EAAE;QACV,GAAG,EAAE,+CAA+C;QACpD,QAAQ,EAAE,8CAA8C;QACxD,SAAS,EAAC,4DAA4D;KACvE;IACD,UAAU,EAAE;QACZ,GAAG,EAAE,kCAAkC;QACvC,MAAM,EAAC,kCAAkC;QACvC,UAAU,EAAE,OAAO;QACnB,QAAQ,EAAE,IAAI;QACd,UAAU,EAAE,IAAI;KACjB;IACC,WAAW,EACb;QACE,GAAG,EAAE,uCAAuC;KAC7C;IACC,OAAO,EAAE;QACT,OAAO,EAAC,0CAA0C;KACnD;IACC,YAAY,EAAE;QACd,GAAG,EAAC,wCAAwC;KAC7C;IACD,aAAa,EAAE;QACb,GAAG,EAAE,mCAAmC;KACzC;IACD,KAAK,EAAC;QACJ,WAAW,EAAC,+BAA+B;KAC5C;CACF,CAAC;;;;;;;;;;;;;;;;;;;ACvCyB;AACoB;AAEF;AACY;AAEzD,IAAI,6EAAsB,EAAE;IAC1B,6DAAc,EAAE,CAAC;CAClB;AAID,IAAI,MAAU,CAAC;AACf,IAAI,UAAc,CAAC;AAEnB,KAAK,CAAC,MAAM,CAAC;IACX,CAAC,QAAQ,EAAE,EAAE;QAEX,iBAAiB;QACjB,IAAG,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,IAAI,IAAI,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,SAAS,IAAI,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,WAAW,EAC3I;YACC,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;SACxC;aAED;YACC,MAAM,GAAG,CAAC,CAAC,CAAC;SACZ;QAEC,MAAM,CAAC,IAAI,CAAC;YACV,GAAG,EAAE,GAAG,iFAA0B,sCAAsC,MAAM,IAAI,wFAAiC,EAAE;YACrH,IAAI,EAAE,KAAK;YACX,OAAO,EAAE;gBACP,QAAQ,EAAE,kBAAkB,KAAI;gBAChC,oEAAoE;aACrE;YACD,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;gBAChB,sFAA+B,GAAG,IAAI,CAAC;gBAEvC,OAAO,QAAQ,EAAE,CAAC;YAChB,CAAC;YACD,KAAK,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,EAAE;gBACxC,OAAO,QAAQ,CAAC,GAAG,KAAK,CAAC,MAAM,MAAM,WAAW,MAAM,UAAU,EAAE,CAAC,CAAC;YACtE,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IACA,CAAC,QAAQ,EAAE,EAAE;QACP,mBAAmB;QACnB,wEAAwB,CAAC,eAAe,CAAC,sDAAS,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACjG,CAAC;CAEP,EAAE,CAAC,KAAK,EAAE,EAAE;IAEN,uBAAuB;IAEvB,IAAI,KAAK,EAAE;QACL,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,KAAK,CAAC,CAAC;KACjE;IACD,gDAAgD;AACvD,CAAC,CAAC,CAAC;;;;;;;;;;;AC1DH;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;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;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;ACnSA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA","sources":["./src/app/PayGate/PaymentComplete/paymentComplete.component.ts","./src/app/PayGate/PaymentComplete/paymentComplete.component.html","./src/app/PayGate/accountDeposit.component.ts","./src/app/PayGate/accountDeposit.component.html","./src/app/activate-account/activate-account.component.ts","./src/app/activate-account/activate-account.component.html","./src/app/ammenduser/ammenduser.component.ts","./src/app/ammenduser/ammenduser.component.html","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/app/app.routing.ts","./src/app/application-approval/carrier-viewer/carrier-viewer.component.ts","./src/app/application-approval/carrier-viewer/carrier-viewer.component.html","./src/app/application-approval/permit-viewer/permit-viewer.component.ts","./src/app/application-approval/permit-viewer/permit-viewer.component.html","./src/app/application-approval/shared/confirmation-viewer/confirmation-viewer.component.ts","./src/app/application-approval/shared/confirmation-viewer/confirmation-viewer.component.html","./src/app/application-approval/shared/motivation-viewer/motivation-viewer.component.ts","./src/app/application-approval/shared/motivation-viewer/motivation-viewer.component.html","./src/app/application-approval/shared/permit-type-viewer/permit-type-viewer.component.ts","./src/app/application-approval/shared/permit-type-viewer/permit-type-viewer.component.html","./src/app/application-approval/shared/route-viewer/route-viewer.component.ts","./src/app/application-approval/shared/route-viewer/route-viewer.component.html","./src/app/application-approval/shared/uploads-viewer/uploads-viewer.component.ts","./src/app/application-approval/shared/uploads-viewer/uploads-viewer.component.html","./src/app/application-approval/shared/vehicle-viewer/vehicle-viewer.component.ts","./src/app/application-approval/shared/vehicle-viewer/vehicle-viewer.component.html","./src/app/approval-manager/approval-manager.component.ts","./src/app/approval-manager/approval-manager.component.html","./src/app/approval-manager/permit-approval-list/permit-approval-list.component.ts","./src/app/approval-manager/permit-approval-list/permit-approval-list.component.html","./src/app/approval-manager/permit-correspondence/permit-correspondence.component.ts","./src/app/approval-manager/permit-correspondence/permit-correspondence.component.html","./src/app/approval-manager/printing/printing.component.ts","./src/app/approval-manager/printing/printing.component.html","./src/app/auth.guard.ts","./src/app/busy/busy.component.ts","./src/app/busy/busy.component.html","./src/app/ca-contact-page/ca-contact-page.component.ts","./src/app/ca-contact-page/ca-contact-page.component.html","./src/app/ca-landing-page/ca-landing-page.component.ts","./src/app/ca-landing-page/ca-landing-page.component.html","./src/app/carrier-account/approve/carriercorrespondence/carriercorrespondence.component.ts","./src/app/carrier-account/approve/carriercorrespondence/carriercorrespondence.component.html","./src/app/carrier-account/approve/list-accounts/list-accounts.component.ts","./src/app/carrier-account/approve/list-accounts/list-accounts.component.html","./src/app/carrier-account/approve/manager/manager.component.ts","./src/app/carrier-account/approve/manager/manager.component.html","./src/app/carrier-account/compliance-legal/compliance-legal.component.ts","./src/app/carrier-account/compliance-legal/compliance-legal.component.html","./src/app/carrier-account/delink-carrier-account/delink-carrier-account.component.ts","./src/app/carrier-account/delink-carrier-account/delink-carrier-account.component.html","./src/app/carrier-account/delink-carrier-account/enter-confirmation-popup/enter-confirmation-popup.component.ts","./src/app/carrier-account/demographics/demographics.component.ts","./src/app/carrier-account/demographics/demographics.component.html","./src/app/carrier-account/link-carrier-account/enter-otp-popup/enter-otp-popup.component.ts","./src/app/carrier-account/link-carrier-account/link-carrier-account.component.ts","./src/app/carrier-account/link-carrier-account/link-carrier-account.component.html","./src/app/carrier-account/management/management.component.ts","./src/app/carrier-account/management/management.component.html","./src/app/carrier-account/statement/footer-statment/footer-statment.component.ts","./src/app/carrier-account/statement/footer-statment/footer-statment.component.html","./src/app/carrier-account/statement/footer/footer.component.ts","./src/app/carrier-account/statement/invoice/invoice.component.ts","./src/app/carrier-account/statement/invoice/invoice.component.html","./src/app/carrier-account/statement/statement.component.ts","./src/app/carrier-account/statement/statement.component.html","./src/app/carrier-account/submission/submission.component.ts","./src/app/carrier-account/submission/submission.component.html","./src/app/classes/page.ts","./src/app/companydetails/companydetails.component.ts","./src/app/companydetails/companydetails.component.html","./src/app/compliance/carrier-compliance-list/carrier-compliance-list.component.ts","./src/app/compliance/carrier-compliance-list/carrier-compliance-list.component.html","./src/app/compliance/compliance-application/compliance-application.component.ts","./src/app/compliance/compliance-application/compliance-application.component.html","./src/app/compliance/compliance-details/compliance-details.component.ts","./src/app/compliance/compliance-details/compliance-details.component.html","./src/app/compliance/compliance-return-list/compliance-return-list.component.ts","./src/app/compliance/compliance-return-list/compliance-return-list.component.html","./src/app/compliance/confirmation/c-confirmation.component.ts","./src/app/compliance/confirmation/c-confirmation.component.html","./src/app/constants/account.enum.ts","./src/app/consultant/consultant.component.ts","./src/app/consultant/consultant.component.html","./src/app/consultant/popups/assign-role-popup.component.ts","./src/app/corspdc/batch/batch.component.ts","./src/app/corspdc/batch/batch.component.html","./src/app/corspdc/corspdc.component.ts","./src/app/corspdc/corspdc.component.html","./src/app/extract-views/extract-views/add-data-extract/add-data-extract.component.ts","./src/app/extract-views/extract-views/add-data-extract/add-data-extract.component.html","./src/app/extract-views/extract-views/extract-views.component.ts","./src/app/extract-views/extract-views/extract-views.component.html","./src/app/extract-views/extract-views/run-extracts/run-extracts.component.ts","./src/app/extract-views/extract-views/run-extracts/run-extracts.component.html","./src/app/facebookpolicy/facebookpolicy.component.ts","./src/app/facebookpolicy/facebookpolicy.component.html","./src/app/forgot/forgot.component.ts","./src/app/forgot/forgot.component.html","./src/app/forgot/username/username.component.ts","./src/app/forgot/username/username.component.html","./src/app/home/home.component.ts","./src/app/home/home.component.html","./src/app/login/login.component.ts","./src/app/login/login.component.html","./src/app/maintain/add-new-place/add-new-place.component.ts","./src/app/maintain/add-new-place/add-new-place.component.html","./src/app/maintain/add-scanner/add-scanner.component.ts","./src/app/maintain/add-scanner/add-scanner.component.html","./src/app/maintain/carrier-type-document/carrier-type-document.component.ts","./src/app/maintain/carrier-type-document/carrier-type-document.component.html","./src/app/maintain/carrier-type/carrier-type.component.ts","./src/app/maintain/carrier-type/carrier-type.component.html","./src/app/maintain/document-type/document-type.component.ts","./src/app/maintain/document-type/document-type.component.html","./src/app/maintain/edit-freight-type/edit-freight-type.component.ts","./src/app/maintain/edit-freight-type/edit-freight-type.component.html","./src/app/maintain/external-vehicles/external-vehicles.component.ts","./src/app/maintain/external-vehicles/external-vehicles.component.html","./src/app/maintain/list-carrier-type-document/list-carrier-type-document.component.ts","./src/app/maintain/list-carrier-type-document/list-carrier-type-document.component.html","./src/app/maintain/list-carrier-type/list-carrier-type.component.ts","./src/app/maintain/list-carrier-type/list-carrier-type.component.html","./src/app/maintain/list-document-type/list-document-type.component.ts","./src/app/maintain/list-document-type/list-document-type.component.html","./src/app/maintain/list-freight-type/list-freight-type.component.ts","./src/app/maintain/list-freight-type/list-freight-type.component.html","./src/app/maintain/list-permit-type-document/list-permit-type-document.component.ts","./src/app/maintain/list-permit-type-document/list-permit-type-document.component.html","./src/app/maintain/list-permit-type-vehicle/list-permit-type-vehicle.component.ts","./src/app/maintain/list-permit-type-vehicle/list-permit-type-vehicle.component.html","./src/app/maintain/list-permit-type/list-permit-type.component.ts","./src/app/maintain/list-permit-type/list-permit-type.component.html","./src/app/maintain/list-scanner/list-scanner.component.ts","./src/app/maintain/list-scanner/list-scanner.component.html","./src/app/maintain/list-session/list-session.component.ts","./src/app/maintain/list-session/list-session.component.html","./src/app/maintain/list-status/list-status.component.ts","./src/app/maintain/list-status/list-status.component.html","./src/app/maintain/list-transport-association/transport-association-list.component.ts","./src/app/maintain/list-transport-association/transport-association-list.component.html","./src/app/maintain/list-vehicle-make/list-vehicle-make.component.ts","./src/app/maintain/list-vehicle-make/list-vehicle-make.component.html","./src/app/maintain/list-vehicle-type/list-vehicle-type.component.ts","./src/app/maintain/list-vehicle-type/list-vehicle-type.component.html","./src/app/maintain/manage-countries/manage-countries.component.ts","./src/app/maintain/manage-countries/manage-countries.component.html","./src/app/maintain/manage-country-places/manage-country-places.component.ts","./src/app/maintain/manage-country-places/manage-country-places.component.html","./src/app/maintain/manage-vehicles/manage-vehicles.component.ts","./src/app/maintain/manage-vehicles/manage-vehicles.component.html","./src/app/maintain/permit-certificate-return/permit-certificate-return.component.ts","./src/app/maintain/permit-certificate-return/permit-certificate-return.component.html","./src/app/maintain/permit-type-document/permit-type-document.component.ts","./src/app/maintain/permit-type-document/permit-type-document.component.html","./src/app/maintain/permit-type/permit-type.component.ts","./src/app/maintain/permit-type/permit-type.component.html","./src/app/maintain/route-management/add-route/add-route.component.ts","./src/app/maintain/route-management/add-route/add-route.component.html","./src/app/maintain/route-management/list-route/list-route/list-route.component.ts","./src/app/maintain/route-management/list-route/list-route/list-route.component.html","./src/app/maintain/run-correspondence-tasks/run-correspondence-tasks.component.ts","./src/app/maintain/run-correspondence-tasks/run-correspondence-tasks.component.html","./src/app/maintain/run-maintenance-tasks/run-maintenance-tasks.component.ts","./src/app/maintain/run-maintenance-tasks/run-maintenance-tasks.component.html","./src/app/maintain/status/status.component.ts","./src/app/maintain/status/status.component.html","./src/app/maintain/transport-association/transport-association.component.ts","./src/app/maintain/transport-association/transport-association.component.html","./src/app/maintain/vehicle-make/vehicle-make.component.ts","./src/app/maintain/vehicle-make/vehicle-make.component.html","./src/app/maintain/vehicle-type/vehicle-type.component.ts","./src/app/maintain/vehicle-type/vehicle-type.component.html","./src/app/maintain/view-permit/view-permit.component.ts","./src/app/maintain/view-permit/view-permit.component.html","./src/app/menu/menu.component.ts","./src/app/menu/menu.component.html","./src/app/models/socialusers.ts","./src/app/permit-list-application/permit-list-application.component.ts","./src/app/permit-list-application/permit-list-application.component.html","./src/app/permits/permit-application/new-permit-application/new-permit-application.component.ts","./src/app/permits/permit-application/new-permit-application/new-permit-application.component.html","./src/app/permits/permit-application/permit-application.component.ts","./src/app/permits/permit-application/permit-application.component.html","./src/app/permits/permit-application/renew-permit/renew-permit.component.ts","./src/app/permits/permit-application/renew-permit/renew-permit.component.html","./src/app/permits/permit-application/shared/app-motivation/app-motivation.component.ts","./src/app/permits/permit-application/shared/app-motivation/app-motivation.component.html","./src/app/permits/permit-application/shared/app-permit-type/app-permit-type.component.ts","./src/app/permits/permit-application/shared/app-permit-type/app-permit-type.component.html","./src/app/permits/permit-application/shared/app-route/app-route.component.ts","./src/app/permits/permit-application/shared/app-route/app-route.component.html","./src/app/permits/permit-application/shared/app-uploads/app-uploads.component.ts","./src/app/permits/permit-application/shared/app-uploads/app-uploads.component.html","./src/app/permits/permit-application/shared/app-vehicle/app-vehicle.component.ts","./src/app/permits/permit-application/shared/app-vehicle/app-vehicle.component.html","./src/app/permits/permit-application/shared/carrier-details/carrier-details.component.ts","./src/app/permits/permit-application/shared/carrier-details/carrier-details.component.html","./src/app/permits/permit-application/shared/confirmation/confirmation.component.ts","./src/app/permits/permit-application/shared/confirmation/confirmation.component.html","./src/app/permits/permit-application/shared/under-construction/under-construction.component.ts","./src/app/permits/permit-application/shared/under-construction/under-construction.component.html","./src/app/permits/permit-application/timetable/manage/manage.component.ts","./src/app/permits/permit-application/timetable/manage/manage.component.html","./src/app/permits/permit-application/timetable/timetable.component.ts","./src/app/permits/permit-application/timetable/timetable.component.html","./src/app/permits/permit-application/view-permit-application/view-permit-application.component.ts","./src/app/permits/permit-application/view-permit-application/view-permit-application.component.html","./src/app/pipes/currencyFormat.pipe.ts","./src/app/pipes/custom-time-zone.pipe.ts","./src/app/pipes/noSanitize.pipe.ts","./src/app/popup/alert.component.ts","./src/app/popup/comment.component.ts","./src/app/popup/confirm.component.ts","./src/app/popup/custom-toast/custom-toast.component.ts","./src/app/popup/custom-toast/custom-toast.component.html","./src/app/popup/error.component.ts","./src/app/popup/parent-dialog.component.ts","./src/app/popup/prompt.component.ts","./src/app/popup/yesno.component.ts","./src/app/register/register.component.ts","./src/app/register/register.component.html","./src/app/reset/confirmpasswordchange/confirmpasswordchange.component.ts","./src/app/reset/confirmpasswordchange/confirmpasswordchange.component.html","./src/app/reset/reset.component.ts","./src/app/reset/reset.component.html","./src/app/services/application.service.ts","./src/app/services/authentication.service.ts","./src/app/services/authweb.service.ts","./src/app/services/baseservice.ts","./src/app/services/calendar.service.ts","./src/app/services/carrier-account.service.ts","./src/app/services/carrier-type-document.service.ts","./src/app/services/carrier-type.service.ts","./src/app/services/carrier.service.ts","./src/app/services/carriertransaction.service.ts","./src/app/services/carrierworkflow.service.ts","./src/app/services/compliancereturns.service.ts","./src/app/services/corspdc.service.ts","./src/app/services/country.service.ts","./src/app/services/documents-service.service.ts","./src/app/services/documenttype.service.ts","./src/app/services/freight-type.service.ts","./src/app/services/globals.service.ts","./src/app/services/google-places-search.service.ts","./src/app/services/idle-manager.service.ts","./src/app/services/menu.service.ts","./src/app/services/navigation.service.ts","./src/app/services/paygate.service.ts","./src/app/services/permit-type-document.service.ts","./src/app/services/permit-type-vehicle.service.ts","./src/app/services/permit-type.service.ts","./src/app/services/permit.service.ts","./src/app/services/place.service.ts","./src/app/services/route.service.ts","./src/app/services/run-correspondence-tasks.service.ts","./src/app/services/run-maintenance-tasks.service.ts","./src/app/services/scanner.service.ts","./src/app/services/session.service.ts","./src/app/services/shared/confirm-dialog/confirm-dialog.component.ts","./src/app/services/shared/confirm-dialog/confirm-dialog.component.html","./src/app/services/shared/confirm-dialog/confirm-dialog.module.ts","./src/app/services/shared/confirm-dialog/confirm-dialog.service.ts","./src/app/services/shared/popup.service.ts","./src/app/services/signalr.service.ts","./src/app/services/sociallogin.service.ts","./src/app/services/status.service.ts","./src/app/services/storage.service.ts","./src/app/services/timetable.service.ts","./src/app/services/transport-assoc.service.ts","./src/app/services/utility-service.service.ts","./src/app/services/vehicle-entry-carrier.service.ts","./src/app/services/vehicle-entry.service.ts","./src/app/services/vehicle-make.service.ts","./src/app/services/vehicle-type.service.ts","./src/app/services/vehicle.service.ts","./src/app/services/workflowdashboard.service.ts","./src/app/shared/calendar-viewer/calendar-viewer.component.ts","./src/app/shared/calendar-viewer/calendar-viewer.component.html","./src/app/shared/calendar-viewer/trip/trip.component.ts","./src/app/shared/calendar-viewer/trip/trip.component.html","./src/app/shared/errors/errors.component.ts","./src/app/shared/errors/errors.component.html","./src/app/shared/footer-btn/footer-btn.component.ts","./src/app/shared/footer-btn/footer-btn.component.html","./src/app/shared/projects/ngx-intl-tel-input/src/lib/data/country-code.ts","./src/app/shared/projects/ngx-intl-tel-input/src/lib/enums/country-iso.enum.ts","./src/app/shared/projects/ngx-intl-tel-input/src/lib/enums/search-country-field.enum.ts","./src/app/shared/projects/ngx-intl-tel-input/src/lib/enums/tooltip-label.enum.ts","./src/app/shared/projects/ngx-intl-tel-input/src/lib/ngx-intl-tel-input.component.ts","./src/app/shared/projects/ngx-intl-tel-input/src/lib/ngx-intl-tel-input.component.html","./src/app/shared/projects/ngx-intl-tel-input/src/lib/ngx-intl-tel-input.module.ts","./src/app/shared/projects/ngx-intl-tel-input/src/lib/ngx-intl-tel-input.service.ts","./src/app/shared/projects/ngx-intl-tel-input/src/lib/ngx-intl-tel-input.validator.ts","./src/app/shared/projects/ngx-intl-tel-input/src/public_api.ts","./src/app/side-menu/side-menu.component.ts","./src/app/side-menu/side-menu.component.html","./src/app/support/support.component.ts","./src/app/support/support.component.html","./src/app/uploaddocument/uploaddocument.component.ts","./src/app/uploaddocument/uploaddocument.component.html","./src/app/validators/equalvalidator.directive.ts","./src/app/workflow/workflowdashboard/workflowdashboard.component.ts","./src/app/workflow/workflowdashboard/workflowdashboard.component.html","./src/environments/environment.prod.ts","./src/main.ts","./node_modules/moment/locale|sync|/^/.*$","ignored|C:\\agent\\_work\\2\\s\\node_modules\\ng2-pdf-viewer\\node_modules\\pdfjs-dist\\legacy\\build|canvas","ignored|C:\\agent\\_work\\2\\s\\node_modules\\ng2-pdf-viewer\\node_modules\\pdfjs-dist\\legacy\\build|fs","ignored|C:\\agent\\_work\\2\\s\\node_modules\\ng2-pdf-viewer\\node_modules\\pdfjs-dist\\legacy\\build|http","ignored|C:\\agent\\_work\\2\\s\\node_modules\\ng2-pdf-viewer\\node_modules\\pdfjs-dist\\legacy\\build|https","ignored|C:\\agent\\_work\\2\\s\\node_modules\\ng2-pdf-viewer\\node_modules\\pdfjs-dist\\legacy\\build|url","ignored|C:\\agent\\_work\\2\\s\\node_modules\\ng2-pdf-viewer\\node_modules\\pdfjs-dist\\legacy\\build|zlib"],"sourcesContent":["import { Component, OnInit, Input } from '@angular/core';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { environment } from '../../../environments/environment';\r\nimport * as angular from 'angular';\r\nimport { resolve } from 'url';\r\nimport { FormBuilder } from '@angular/forms';\r\nimport { PayGateService } from 'app/services/paygate.service';\r\nimport { CarrierService } from 'app/services/carrier.service';\r\nimport { ActivatedRoute, Params, Router } from '@angular/router';\r\nimport { accounting } from 'accounting';\r\nimport { PopupService } from 'app/services/shared/popup.service';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\ndeclare var $: any;\r\n\r\n@Component({\r\n selector: 'app-account-deposit',\r\n templateUrl: './paymentComplete.component.html',\r\n styleUrls: ['./paymentComplete.component.css'] \r\n \r\n})\r\nexport class PaymentCompleteComponent implements OnInit {\r\n @Input() dataCntrl: any;\r\n @Input() isApproval: boolean = false;\r\n \r\n isLoading = false;\r\n message = \"Loading. Please wait...\";\r\n instructMsg = '';\r\n departuresList: any = [];\r\n departuresListRemove: any = [];\r\n editFlag: boolean = false;\r\n pageload: boolean = false;\r\n showBlock: boolean = false;\r\n \r\n payReqId: string = \"\";\r\n checkSum: string = \"\";\r\n carrierid : any;\r\n Carrier : any;\r\n amountDisplay : any;\r\n amount:any;\r\n paymentRef: string = \"\";\r\n status : number;\r\n statusDesc : string = \"\";\r\n\r\n\r\n\r\n constructor(private formBuilder: FormBuilder, \r\n private payGateService:PayGateService,\r\n private carrierService:CarrierService,\r\n private activeRoute: ActivatedRoute,\r\n private msgService: PopupService,\r\n private msg: ToastrService,\r\n private router:Router) {}\r\n\r\n ngOnInit() {\r\n this.activeRoute.params.subscribe((params: Params) => {\r\n this.carrierid = params['id'];\r\n this.status = Number(params['status']);\r\n this.paymentRef = params['refNum'];\r\n switch(this.status)\r\n {\r\n case 0 :\r\n this.statusDesc = \"Not Done\";\r\n break;\r\n case 1 :\r\n this.statusDesc = \"Approved\";\r\n break;\r\n case 2 :\r\n this.statusDesc = \"Declined\";\r\n break;\r\n case 3 :\r\n this.statusDesc = \"Cancelled\";\r\n break;\r\n case 4 :\r\n this.statusDesc = \"User Cancelled\";\r\n break;\r\n case 5 :\r\n this.statusDesc = \"Received by PayGate\";\r\n break;\r\n case 7 :\r\n this.statusDesc = \"Settlement Voided\";\r\n break;\r\n }\r\n\r\n this.LoadCarrierAccountDetails();\r\n });\r\n\r\n \r\n \r\n }\r\n\r\n \r\n\r\n formatCurrency(value) {\r\n return accounting.formatMoney(value, 'R', 2, ' ', '.');\r\n }\r\n\r\n LoadCarrierAccountDetails()\r\n {\r\n this.carrierService.getById(this.carrierid).subscribe(carrier=>{\r\n this.Carrier = carrier;\r\n console.log(carrier);\r\n });\r\n }\r\n\r\n\r\n \r\n backToTab() {\r\n this.router.navigateByUrl('carrier/accounts/VCA');\r\n }\r\n}\r\n ","
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

PAYMENT COMPLETE

\r\n \r\n
\r\n\r\n
=2 && status<=4)\" class=\"col-50\" style=\"text-align: center;\">\r\n

PAYMENT FAILED

\r\n \r\n
\r\n\r\n
= 5\" class=\"col-50\" style=\"text-align: center;\">\r\n

PAYMENT IN PROGRESS

\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { environment } from '../../environments/environment';\r\nimport * as angular from 'angular';\r\nimport { resolve } from 'url';\r\nimport { FormBuilder } from '@angular/forms';\r\nimport { PayGateService } from '../services/paygate.service';\r\nimport { CarrierService } from 'app/services/carrier.service';\r\nimport { ActivatedRoute, Params, Router } from '@angular/router';\r\nimport { accounting } from 'accounting';\r\nimport { PopupService } from 'app/services/shared/popup.service';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { ConfirmDialogService } from 'app/services/shared/confirm-dialog/confirm-dialog.service';\r\n\r\ndeclare var $: any;\r\n\r\n@Component({\r\n selector: 'app-account-deposit',\r\n templateUrl: './accountDeposit.component.html',\r\n styleUrls: ['./accountDeposit.component.css'] \r\n \r\n})\r\nexport class AccountDepositComponent implements OnInit {\r\n @Input() dataCntrl: any;\r\n @Input() isApproval: boolean = false;\r\n \r\n isLoading = false;\r\n message = \"Loading. Please wait...\";\r\n instructMsg = '';\r\n departuresList: any = [];\r\n departuresListRemove: any = [];\r\n editFlag: boolean = false;\r\n pageload: boolean = false;\r\n showBlock: boolean = false;\r\n payGateUrl:string = \"https://secure.paygate.co.za/payweb3/process.trans\";\r\n payReqId: string = \"\";\r\n checkSum: string = \"\";\r\n carrierid : any;\r\n Carrier : any;\r\n amountDisplay : any;\r\n amount:number;\r\n paymentRef: string = \"\";\r\n\r\n\r\n checkoutForm = this.formBuilder.group({\r\n PAY_REQUEST_ID: '',\r\n CHECKSUM: ''\r\n });\r\n constructor(private formBuilder: FormBuilder, \r\n private payGateService:PayGateService,\r\n private carrierService:CarrierService,\r\n private activeRoute: ActivatedRoute,\r\n private msgService: PopupService,\r\n private msg: ToastrService,private confirmDialogService: ConfirmDialogService,\r\n private router:Router) {}\r\n\r\n ngOnInit() {\r\n this.activeRoute.params.subscribe((params: Params) => {\r\n this.carrierid = params['id'];\r\n this.LoadCarrierAccountDetails();\r\n });\r\n\r\n \r\n \r\n }\r\n\r\n InitiatePayment()\r\n {\r\n if(!this.isFormValid())\r\n {\r\n return;\r\n }\r\n\r\n // this.msgService.showConfirm('Pay CrossEasy Carrier Account', `You will be redirected to PayGate`, 'Accepted payment methods include credit and debit cards, Secure EFT, Zapper and SnapScan','Proceed to Pay ' + this.amountDisplay,'Go Back').subscribe(isConfirmed => {\r\n // if(isConfirmed){\r\n\r\n // this.message = \"Please wait while we redirect you to our payment service...\"\r\n // this.isLoading = true;\r\n // this.payGateService.AddTransaction(this.Carrier.carrier_account_id, this.amount.toString()).subscribe(transactionRef=>{\r\n \r\n // var REFERENCE = this.paymentRef = this.Carrier.carrier_account_id.toString() + '_' + transactionRef;\r\n // var AMOUNT= this.amount.toString(); \r\n // var RETURN_URL= environment.payGateApi.returnUrl + REFERENCE;\r\n // var EMAIL= this.Carrier.email;\r\n\r\n // this.payGateService.InitiateTransaction(REFERENCE,AMOUNT,EMAIL,RETURN_URL).subscribe((res:any)=>{\r\n \r\n // this.payReqId = res.PAY_REQUEST_ID;\r\n // this.checkSum = res.CHECKSUM;\r\n \r\n // if(this.payReqId != null && this.checkSum != null)\r\n // {\r\n // this.checkoutForm.patchValue({ \r\n // PAY_REQUEST_ID:this.payReqId, \r\n // CHECKSUM:this.checkSum\r\n // });\r\n\r\n // let formSubmitBtn = document.getElementById(\"checkoutFormBtn\");\r\n // formSubmitBtn.click();\r\n\r\n // this.isLoading = false;\r\n // if(!environment.production)\r\n // {\r\n // this.router.navigateByUrl('carrier/paymentcomplete/'+this.carrierid);\r\n // }\r\n // }\r\n // else\r\n // {\r\n // this.isLoading = false;\r\n // this.msg.error('Payment Gateway Error', 'Something went wrong, please try again...');\r\n // }\r\n // }, (error)=>{\r\n\r\n // this.isLoading = false;\r\n // this.msg.error('Payment Gateway Error', 'Something went wrong, please try again...', error);\r\n // });\r\n // });\r\n\r\n // }\r\n // });\r\n this.confirmDialogService.confirmThis('Pay CrossEasy Carrier Account. You will be redirected to PayGate. Accepted payment methods include credit and debit cards, Secure EFT, Zapper and SnapScan. Proceed to Pay '+ this.amountDisplay, () => { \r\n\r\n this.message = \"Please wait while we redirect you to our payment service...\"\r\n this.isLoading = true;\r\n this.payGateService.AddTransaction(this.Carrier.carrier_account_id, this.amount.toString()).subscribe(transactionRef=>{\r\n \r\n var REFERENCE = this.paymentRef = this.Carrier.carrier_account_id.toString() + '_' + transactionRef;\r\n var AMOUNT= this.amount.toString(); \r\n var RETURN_URL= environment.payGateApi.returnUrl + REFERENCE;\r\n var EMAIL= this.Carrier.email;\r\n\r\n this.payGateService.InitiateTransaction(REFERENCE,AMOUNT,EMAIL,RETURN_URL).subscribe((res:any)=>{\r\n \r\n this.payReqId = res.PAY_REQUEST_ID;\r\n this.checkSum = res.CHECKSUM;\r\n \r\n if(this.payReqId != null && this.checkSum != null)\r\n {\r\n this.checkoutForm.patchValue({ \r\n PAY_REQUEST_ID:this.payReqId, \r\n CHECKSUM:this.checkSum\r\n });\r\n\r\n let formSubmitBtn = document.getElementById(\"checkoutFormBtn\");\r\n formSubmitBtn.click();\r\n\r\n this.isLoading = false;\r\n if(!environment.production)\r\n {\r\n this.router.navigateByUrl('carrier/paymentcomplete/'+this.carrierid);\r\n }\r\n }\r\n else\r\n {\r\n this.isLoading = false;\r\n this.msg.error('Payment Gateway Error', 'Something went wrong, please try again...');\r\n }\r\n }, (error)=>{\r\n\r\n this.isLoading = false;\r\n this.msg.error('Payment Gateway Error', 'Something went wrong, please try again...', error);\r\n });\r\n });\r\n\r\n \r\n }, () => { \r\n return;\r\n })\r\n }\r\n\r\n CreditAccounInSage()\r\n {\r\n this.carrierService.processAccountCredit({id:this.carrierid, refNum:this.paymentRef, amnt:this.amount/100})\r\n }\r\n\r\n isFormValid() : boolean\r\n {\r\n if(this.amount == null || this.amount == undefined || this.amount === 0)\r\n {\r\n this.msg.error('No Amount', 'Please enter an amount');\r\n return false;\r\n }\r\n else return true;\r\n }\r\n\r\n formatCurrency(value) {\r\n return accounting.formatMoney(value, 'R', 2, ' ', '.');\r\n }\r\n\r\n LoadCarrierAccountDetails()\r\n {\r\n this.carrierService.getById(this.carrierid).subscribe(carrier=>{\r\n this.Carrier = carrier;\r\n console.log(carrier);\r\n });\r\n }\r\n\r\n onSubmit(form: any, e: any): void {\r\n // Process checkout data here\r\n e.target.submit();\r\n }\r\n \r\n\r\n\r\n formatCurrency_TaxableValue(event)\r\n { \r\n let inputAmount = Number.isNaN(Number(event.target.value))? 0 : Number(event.target.value);\r\n \r\n var uy = new Intl.NumberFormat('en-ZA',{style: 'currency', currency:'ZAR'}).format(inputAmount); \r\n this.amount = inputAmount * 100; \r\n if(inputAmount != 0)\r\n this.amountDisplay = uy;\r\n\r\n this.isFormValid();\r\n }\r\n \r\n isNumberKey(evt){\r\n var charCode = (evt.which) ? evt.which : evt.keyCode\r\n if (charCode > 31 && (charCode < 48 || charCode > 57))\r\n return false;\r\n return true;\r\n}\r\n \r\n backToTab() {\r\n \r\n }\r\n}\r\n ","
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n

Fund My Account :

\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Account NumberAccount NameTrading NameRegistration NumberAccount Balance
{{Carrier?.carrier_code}}{{Carrier?.name}}{{Carrier?.trading_name}}{{Carrier?.registration_number}}{{formatCurrency(Carrier?.account_balance * -1)}}
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

Billing Address

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n

CrossEasy Payment

\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { AuthWebService } from 'app/services/authweb.service';\r\nimport { Router, NavigationEnd, ActivatedRoute } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-activate-account',\r\n templateUrl: './activate-account.component.html',\r\n styleUrls: ['./activate-account.component.css']\r\n})\r\nexport class ActivateAccountComponent implements OnInit {\r\n public isLoading = false;\r\n\r\n constructor(public authWebService: AuthWebService,private router: Router,private route: ActivatedRoute) { }\r\n\r\n ngOnInit() {\r\n this.activate();\r\n }\r\nactivate(){\r\n // this.isLoading = true;\r\n // this.authWebService.activateAccout(localStorage.getItem('activeEmail'))\r\n // this.isLoading = false;\r\n //console.log('from activate')\r\n this.route.params.subscribe(params => {\r\n //console.log(params.id)\r\n\r\n this.authWebService.activateAccout(params.id)\r\n\r\n })\r\n\r\n}\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n \"iCBMS\"\r\n\r\n
\r\n\r\n
\r\n\r\n\r\n
\r\n\r\n\r\n
\r\n

Activating...

\r\n
\r\n
\r\n
\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { FormGroup, FormControl, Validators, FormArray } from '@angular/forms';\r\n\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { DialogService } from 'ng2-bootstrap-modal';\r\nimport { AuthWebService } from '../services/authweb.service';\r\nimport { UtilityServiceService } from '../services/utility-service.service';\r\nimport { environment } from 'environments/environment';\r\nimport { isNumeric } from 'rxjs/util/isNumeric';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { SearchCountryField, TooltipLabel, CountryISO } from 'app/shared/projects/ngx-intl-tel-input/src/public_api';\r\n\r\n@Component({\r\n selector: 'app-ammenduser',\r\n templateUrl: './ammenduser.component.html',\r\n styleUrls: ['./ammenduser.component.css']\r\n})\r\nexport class AmmenduserComponent implements OnInit {\r\n\r\n form;\r\n aUser: any = {};\r\n holdinguser: any = {};\r\n sub: any;\r\n lblHeading = '';\r\n btnActionLabel = '';\r\n isEdit: boolean;\r\n user = \"Haddad\";\r\n EditUser: any ={};\r\n isDup = false;\r\n selectedGroupCode: any = {};\r\n selectedDisplay = 3;\r\n params: any = {};\r\n loginUser: any = { UserName: 'admin', Password:'dev2019'};\r\n\tsystemCode: String = null;\r\n AttemptCount = 0;\r\n\tOtpConfig = null;\r\n oldFirstName;\r\n oldLastName;\r\n oldemail='';\r\n oldmobile='';\r\n ssoupdate = false;\r\n terms: string = null;\r\n public MobileNumber;\r\n public PhoneNumber;\r\n\r\n public isLoading = false;\r\n message = null;\r\n existingUsers: any;\r\n webservice: any;\r\n storageService: any;\r\n mobnumPattern = /^\\+?(?:\\+?(\\d{1,3}))?[-. (]*(\\d{3})[-. )]*(\\d{3})[-. ]*(\\d{4})(?: *x(\\d+))?\\s*$/;\r\n numberisvalid =false;\r\n isadminuser = false;\r\n \r\n//SADC Countries\r\nseparateDialCode = true;\r\nSearchCountryField = SearchCountryField;\r\nTooltipLabel = TooltipLabel;\r\nCountryISO = CountryISO;\r\ndefaultCountry:any = CountryISO.SouthAfrica;\r\ndefaultCountryPhone:any = CountryISO.SouthAfrica;\r\n\r\n\r\npreferredCountries: CountryISO[] = [\r\n CountryISO.Angola,\r\n CountryISO.Botswana,\r\n CountryISO.Comoros,\r\n CountryISO.CongoDRCJamhuriYaKidemokrasiaYaKongo,\r\n CountryISO.Lesotho,\r\n CountryISO.Madagascar,\r\n CountryISO.Malawi,\r\n CountryISO.Mauritius,\r\n CountryISO.Mozambique,\r\n CountryISO.Namibia,\r\n CountryISO.Seychelles,\r\n CountryISO.Swaziland,\r\n CountryISO.Zambia,\r\n CountryISO.Zimbabwe,\r\n ];\r\n\r\n\r\n\r\n constructor(public authWebService: AuthWebService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n public utility: UtilityServiceService,private toastr:ToastrService) { }\r\n\r\n ngOnInit() {\r\n\r\n /* this.webservice.request('UserService', 'AuthenticatedUser', {\r\n\t\t\tuserName: this.loginUser.UserName,\r\n\t\t\tpassword: this.loginUser.Password,\r\n\t\t\tsystemCode:this.systemCode\r\n\t }).then((data) => {\r\n\r\n\t\t\tenvironment.authWebApi.userData = data;\r\n\t\t\tthis.storageService.setID(data.User.ID);\r\n\t\r\n }); */ \r\n \r\n\r\n this.aUser = environment.authWebApi.userData.User;\r\n console.log(\"This Email: \");\r\n console.log(this.aUser.EmailAddress);\r\n\r\n if(this.aUser.EmailAddress.includes('@cbrta.co.za')){\r\n this.isadminuser = true;\r\n document.getElementById('FirstName').setAttribute('disabled','');\r\n document.getElementById('LastName').setAttribute('disabled','');\r\n // document.getElementById('MobileNumber').setAttribute('disabled','');\r\n // document.getElementById('PhoneNumber').setAttribute('disabled','');\r\n document.getElementById('EmailAddress').setAttribute('disabled','');\r\n // document.getElementById('UserName').setAttribute('disabled','');\r\n document.getElementById('CommunicationType').setAttribute('disabled','');\r\n // document.getElementById('nterms').setAttribute('disabled','');\r\n // document.getElementById('SaveButton').setAttribute('disabled','');\r\n\r\n try {\r\n this.MobileNumber.elRef.nativeElement.firstChild.children[0].disabled = 'true';\r\n this.PhoneNumber.elRef.nativeElement.firstChild.children[0].disabled = 'true';\r\n } catch (e) {\r\n // ignore this\r\n }\r\n \r\n }\r\n\r\n if(this.aUser.EmailAddress === null || this.aUser.MobileNumber === null){\r\n this.ssoupdate = true;\r\n \r\n }\r\n\r\n console.log(\"Is this a facebook User: \", this.ssoupdate);\r\n \r\n this.initForm();\r\n \r\n }\r\n\r\n initForm() {\r\n console.log(this.aUser);\r\n this.defaultCountry = this.aUser.Iso2mobile ?? this.defaultCountry;\r\n this.defaultCountryPhone = this.aUser.Iso2phone?? this.defaultCountryPhone;\r\n this.form = new FormGroup({ \r\n ID: new FormControl()\r\n , FirstName: new FormControl(this.aUser.FirstName,Validators.compose([Validators.required, Validators.pattern('([a-zA-Z,.-]+( [a-zA-Z,.-]+)*){2,30}')]))\r\n , LastName: new FormControl(this.aUser.LastName, Validators.compose([Validators.required, Validators.pattern('([a-zA-Z,.-]+( [a-zA-Z,.-]+)*){2,30}')]))\r\n ,EmailAddress: new FormControl(this.aUser.EmailAddress, Validators.compose([Validators.required, Validators.pattern(/^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/)]))\r\n //, MobileNumber: new FormControl(this.aUser.MobileNumber, Validators.compose([Validators.required,Validators.maxLength(15)]))\r\n , MobileNumber: new FormControl(this.aUser.MobileNumber, Validators.compose([Validators.required]))\r\n //, PhoneNumber: new FormControl(this.aUser.PhoneNumber, Validators.compose([Validators.required,Validators.maxLength(15)]))\r\n , PhoneNumber: new FormControl(this.aUser.PhoneNumber, Validators.compose([Validators.required]))\r\n ,UserName: new FormControl(this.aUser.UserName, Validators.required)\r\n ,CommunicationType: new FormControl(this.aUser.CommunicationType, Validators.required)\r\n \r\n });\r\n this.form.patchValue(this.utility.defaults);\r\n //console.log(this.aUser.DialCodeMobile);\r\n \r\n this.oldFirstName = this.aUser.FirstName;\r\n this.oldLastName = this.aUser.LastName;\r\n this.oldemail = this.aUser.EmailAddress;\r\n this.oldmobile = this.aUser.MobileNumber;\r\n }\r\n ngOnDestroy() { \r\n ///this.sub.unsubscribe();\r\n }\r\n\r\n getAllErrors(form: FormGroup | FormArray): { [key: string]: any; } | null {\r\n let hasError = false;\r\n const result = Object.keys(form.controls).reduce((acc, key) => {\r\n const control = form.get(key);\r\n const errors = (control instanceof FormGroup || control instanceof FormArray)\r\n ? this.getAllErrors(control)\r\n : control.errors;\r\n if (errors) {\r\n acc[key] = errors;\r\n hasError = true;\r\n }\r\n return acc;\r\n }, {} as { [key: string]: any; });\r\n return hasError ? result : null;\r\n}\r\n\r\ncheckMobileNumber(obj:any)\r\n{\r\n //check length\r\n \r\n if (obj.MobileNumber.trim().length >= 10) \r\n {\r\n// how many spaces are in a string?\r\n var knt = obj.MobileNumber.trim().split(\" \").length - 1;\r\n //console.log(\"what is the count\");\r\n //console.log(knt);\r\n var str = new String(obj.MobileNumber.trim()); \r\n for(let i =0;i {\r\n\r\n if (code.length > 3) {\r\n this.authWebService.checkByCode(code.trim()).subscribe(result => {\r\n this.isDup = (result.Status && !this.isEdit) ? true : false;\r\n }, error => {\r\n this.isDup = false;\r\n\r\n });\r\n }\r\n });\r\n }\r\n\r\n\r\n\r\n onChangeValue() {\r\n\r\n }\r\n\r\n onSelectChange() {\r\n console.dir(this.selectedDisplay);\r\n }\r\n\r\n editUser() {\r\n\r\n\t/*\tlet validation = this.helper.validation();\r\n\t\tlet validMobile = (this.aUser.MobileNumber || '').match(/^\\+?(?:\\+?(\\d{1,3}))?[-. (]*(\\d{3})[-. )]*(\\d{3})[-. ]*(\\d{4})(?: *x(\\d+))?\\s*$/);\r\n\t\tlet validEmail = (this.aUser.EmailAddress || '').match(/^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/);\r\n\t\t\r\n\t\tvalidation.addIf(!this.aUser, \"'user' is required\");\r\n\t\tvalidation.addIf(!this.aUser.ID, \"'user.ID' is required\");\r\n\t\tvalidation.addIf(!this.aUser.FirstName, \"'FirstName' is required\");\r\n\t\tvalidation.addIf(!this.aUser.LastName, \"'LastName' is required\");\r\n\t\tvalidation.addIf(!validMobile, \"Mobile number is invalid\");\r\n\t\tvalidation.addIf(!validEmail, \"Email Address is invalid\");*/\r\n\r\n\t//\tif (validation.check()) {\r\n\r\n ////console.log(this.aUser)\r\n\t\t\tthis.authWebService.request('UserService', 'AmmendUser', {\r\n\t\t\t\tuser: this.aUser\r\n\t\t\t}).then((ur) => {\r\n //console.log(ur);\r\n\t\t\t\tthis.router.navigate(['/login']);\r\n\t\t\t}, (error) => {\r\n //\tthis.message.danger('Failed to amend user', error.message);\r\n \r\n //console.log(error.message);\r\n \r\n\t\t\t});\r\n\t\t//}\r\n\t}\r\n\r\n verifyOtp()\r\n\t{\r\n\t\tconst OtpCode = document.getElementById('OTPCode') as HTMLInputElement | null;\r\n\t\tlet Otp = OtpCode.value;\r\n\t\tthis.AttemptCount++;\r\n\r\n \r\n this.holdinguser.Otp = Otp;\r\n\r\n\r\n\t\tif(this.AttemptCount == 4)\r\n\t\t{\r\n this.AttemptCount = 0;\r\n document.getElementById('Attempts').innerHTML = \"You have 3 attempts left.\"\r\n\t\t\tdocument.getElementById('secretButton').click();\r\n document.getElementById('SaveButton').removeAttribute('disabled');\r\n this.toastr.error('Exceeded OTP attempts. Please click on the Update button to generate a new OTP.','User Update');\r\n\t\t\treturn true;\r\n\t\t}else\r\n\t\t{\r\n\t\t\tlet count = 3 - this.AttemptCount;\r\n\t\t document.getElementById('Attempts').innerHTML = \"You have \"+count+\" attempts left.\"\r\n\t\t}\r\n\r\n\t\t//let Otp = OtpCode.value;\r\n console.log(\"Holding User details\")\r\n\t\tconsole.log(this.holdinguser);\r\n\t\tthis.authWebService.webrequest('POST','UserService', 'ValidateOtp', JSON.stringify(this.holdinguser)).then((ur) => {\r\n\r\n\t\t\t//if otp is valid, update the user details\r\n if(ur.success)\r\n {\r\n this.aUser.FirstName = this.holdinguser.FirstName;\r\n this.aUser.LastName = this.holdinguser.LastName;\r\n this.aUser.EmailAddress = this.holdinguser.EmailAddress;\r\n this.aUser.UserName = this.holdinguser.UserName;\r\n this.aUser.MobileNumber = this.holdinguser.MobileNumber;\r\n this.aUser.PhoneNumber = this.holdinguser.PhoneNumber;\r\n this.aUser.Iso2mobile = this.defaultCountry;\r\n this.aUser.Iso2phone = this.defaultCountryPhone;\r\n \r\n this.aUser.DialCodeMobile = this.holdinguser.DialCodeMobile;\r\n // this.aUser.MobileNumber = this.holdinguser.MobileNumber.number;\r\n this.aUser.DialCodePhone = this.holdinguser.DialCodePhone;\r\n //this.aUser.PhoneNumber = this.holdinguser.PhoneNumber.number;\r\n this.aUser.CommunicationType = this.holdinguser.CommunicationType;\r\n \r\n this.aUser.DateUpdated = new Date();\r\n \r\n \r\n this.authWebService.webrequest('POST','UserService', 'AmmendUser', JSON.stringify(this.aUser)).then((ur) => {\r\n // this.toastr.options.onCloseClick = function() { };\r\n document.getElementById('closeButton').click();\r\n let t = this.toastr.success('Your profile has been updated successfully','User Update');\r\n t.onHidden.subscribe(x => {\r\n this.router.navigate(['/home']);\r\n })\r\n \r\n\t\t\t\t\r\n\t\t\t}, (error) => {\r\n\t\t\t\tthis.toastr.error('Contact the administrator if the problem persists.\\n'+'\\nTel : 012 471 2121'+'\\nEmail: helpdesk@cbrta.co.za','Failed to save user');\r\n\t\t\t});\r\n }\r\n else\r\n {\r\n this.toastr.error(ur.message,'Failed to Verify OTP')\r\n }\r\n\t\t\r\n\t\t}, (error) => {\r\n\t\t\tthis.toastr.error('Contact the administrator if the problem persists.\\n'+'\\nTel : 012 471 2121'+'\\nEmail: helpdesk@cbrta.co.za', 'Failed to Verify OTP' );\r\n\t\t});\r\n\r\n\t\t\r\n\t\t\r\n\t}\r\n\r\n close(){\r\n this.AttemptCount = 0;\r\n document.getElementById('Attempts').innerHTML = \"You have 3 attempts left.\"\r\n\t\tdocument.getElementById('SaveButton').removeAttribute('disabled');\r\n\t}\r\n\r\n ckeckTerms(event){\r\n if (event.target.checked ) {\r\n this.terms = 'clicked';\r\n }\r\n }\r\n\r\n\r\n cancelupdate(){\r\n \r\n if((this.aUser.MobileNumber == null || this.aUser.EmailAddress == null)){\r\n\r\n this.authWebService.logout();\r\n\r\n }else{\r\n\r\n this.router.navigate(['/home']);\r\n\r\n }\r\n\r\n }\r\n\r\n\r\n}\r\n\r\n","
\r\n
\r\n
\r\n\r\n

\r\n \r\n \r\n \r\n Update User details\r\n

\r\n
\r\n \r\n\r\n \r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n By clicking the checkbox, you note our\r\n POPIA Processing Notices\r\n
\r\n\r\n
\r\n \r\n\r\n \r\n \r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n

\r\n
\r\n \r\n

You have 3 attempts left

\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n
POPIA Processing Notices
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n

Background to data privacy in South Africa

\r\n


The Protection of Personal Information Act, 4 of 2013, (“POPIA”), which came into force on 1 July 2021, is a law which regulates the use and processing of a person and / legal entity’s personal information, this being\r\n in response to, and in order to protect and give effect to a person and/or legal entity’s rights to privacy, including the right not to have their / its personal information and related data misused, abused or used\r\n for ulterior purposes.

\r\n

POPIA applies to personal information which belongs to individuals and legal entities (“Data Subjects”) which is processed, be it in an automated or non-automated manner in South Africa, by another (“Responsible Party”)\r\n and places on any Responsible Party who is processing a data Subject’s personal information, a duty to use it lawfully and only for a specific and defined purpose(s).

\r\n

In terms of POPIA, Cross Border Road Transport Agency (C-BRTA) , as a Responsible Party, is required to appoint an Information Officer (“IO”) and Deputy Information Officers (“DIOs”), to be responsible for establishing\r\n a POPIA Compliance Framework, and who following this, are required to assess, analyse and understand what types of personal information C-BRTA is processing which belongs to Data Subjects and to thereafter develop certain\r\n processes and procedures, including a POPIA Policy, which have to be followed by all C-BRTA employees when they process and use another’s personal information.

\r\n

A Personal Information Impact Assessment as per the C-BRTA’s POPIA Compliance Framework has been carried out and created, which has indicated that C-BRTA , during the course of its business activities does and will continue\r\n to collect, store and process personal information about C-BRTA employees, its customers, suppliers and other third parties.

\r\n

Furthermore, the Impact Assessment has defined and revealed that C-BRTA processes a large amount of different types of personal information including names, addresses, opinions, financial details, medical details and the\r\n like which pertain to current, past and prospective employees and customers, suppliers, and others who C-BRTA communicates and deals with and which processing is carried out for a variety of purposes, including for\r\n business, compliance and legal purposes.

\r\n

C-BRTA also processes special purpose information including gender, sex, marital status, colour, age, race or ethnic origin, religious beliefs, trade union membership and the like for the purposes of recruitment, employment\r\n equity statistics, legal compliance and for the facilitation of union fees and memberships.

\r\n

Following the Personal Information Impact Assessment, C-BRTA is confident that whilst this personal information is held on paper or on a computer or other media, such storage is subject to the prescribed legal safeguards\r\n as specified in POPIA and other regulations.

\r\n

As per the POPIA requirements has implemented a robust POPIA compliance programme which includes various POPIA policies and processes, some of which are internal documents and some are which are available for public access.\r\n These documents are available for public access and can be accessed in the menu on the left.

\r\n


\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n","import { Component, OnInit, Input, ViewChild } from \"@angular/core\";\r\nimport { Router, ActivatedRoute, Params, NavigationEnd } from \"@angular/router\";\r\nimport { environment } from \"../environments/environment\";\r\nimport { AuthWebService } from \"../app/services/authweb.service\";\r\nimport { StorageService } from \"./services/storage.service\";\r\nimport { UtilityServiceService } from \"./services/utility-service.service\";\r\nimport { CarriertransactionService } from \"./services/carriertransaction.service\";\r\n//import { PreBootService } from './services/preboot.service'; //!important - Do Not move\r\n\r\n\r\nimport { Keepalive } from \"@ng-idle/keepalive\";\r\nimport { BsModalService, ModalDirective } from \"ngx-bootstrap/modal\";\r\nimport { BsModalRef } from \"ngx-bootstrap/modal\";\r\n//import { ModalDirective } from 'ngx-bootstrap/modal';\r\nimport { IdleManagerService } from \"app/services/idle-manager.service\";\r\nimport { Idle, DEFAULT_INTERRUPTSOURCES } from \"@ng-idle/core\";\r\nimport { PopupService } from \"./services/shared/popup.service\";\r\nimport { SignalrService } from \"./services/signalr.service\";\r\nimport { AuthSession } from \"./interfaces/authsession.interface\";\r\nimport { DocumentsServiceService } from 'app/services/documents-service.service';\r\nimport { SocialAuthService, SocialUser } from \"angular12-social-login\";\r\n\r\n\r\n@Component({\r\n selector: \"app-root\",\r\n templateUrl: \"app.component.html\",\r\n styleUrls: [\"app.component.css\"],\r\n})\r\nexport class AppComponent {\r\n public ftitle = \"\";\r\n @Input(\"ctrlData\") ctrlData: any = {\r\n carrierId: 0,\r\n isApproval: false,\r\n currentActive: 1,\r\n action: 0,\r\n ctrlAction: 0,\r\n data: {},\r\n };\r\n enableClass: boolean = true;\r\n idleState = \"Not started.\";\r\n timedOut = false;\r\n lastPing?: Date = null;\r\n userIdleTime = 5;\r\n userTimeOut = 10;\r\n sessionId: string;\r\n isKiosk = false;\r\n auth2: any;\r\n userd: any;\r\n\r\n paygateEnabled = environment.paygateEnabled;\r\n public modalRef: BsModalRef;\r\n @ViewChild(\"childModal\", { static: true }) childModal: ModalDirective;\r\n ipAddress: any;\r\n\r\n constructor(\r\n public authWebService: AuthWebService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private storageSvc: StorageService,\r\n private msgService: PopupService,\r\n public utility: UtilityServiceService,\r\n private signalrService: SignalrService,\r\n private idle: Idle,\r\n private documentService: DocumentsServiceService,\r\n private keepalive: Keepalive,\r\n private modalService: BsModalService,\r\n private idleSrvc: IdleManagerService,\r\n private authService: SocialAuthService\r\n ) {\r\n this.setIdleSettings();\r\n \r\n \r\n\r\n // this.signalrService.getIpAddres();\r\n }\r\n\r\n user: SocialUser;\r\n loggedIn: boolean;\r\n\r\n \r\n ngOnInit() {\r\n let currentUrl: any = \"\";\r\n let previousUrl: any = \"\";\r\n this.router.events.subscribe((e) => {\r\n if (e instanceof NavigationEnd) {\r\n previousUrl = currentUrl;\r\n if (previousUrl != \"\") {\r\n setTimeout(() => {\r\n localStorage.setItem(\"previousUrl\", previousUrl);\r\n sessionStorage.setItem(\"previousUrl\", previousUrl);\r\n }, 200);\r\n }\r\n currentUrl = e.url;\r\n if (e.url.indexOf(\"/permit/application\") > 0) {\r\n this.enableClass = false;\r\n } else {\r\n this.enableClass = true;\r\n }\r\n }\r\n });\r\n\r\n\r\n this.getSystemConfig();\r\n this.checkIfUserLoggedIn();\r\n //When session is closed logout\r\n console.dir(\"LoginID\", sessionStorage.getItem(\"loginID\"));\r\n if (\r\n localStorage.getItem(\"userID\") !== null &&\r\n sessionStorage.getItem(\"loginID\") === null\r\n ) {\r\n this.authWebService.logout();\r\n }\r\n\r\n this.checkIfKiosk();\r\n // this.googleAuthSDK();\r\n }\r\n\r\n \r\n receiveTransData($event) {}\r\n\r\n getSystemConfig() {\r\n this.authWebService.SystemConfig().subscribe(\r\n (data) => {\r\n environment.authWebApi.systemData = data;\r\n \r\n const footer = environment.authWebApi.systemData.Configurations.find(\r\n (p) => p.Code == \"MainFooter\"\r\n );\r\n if (footer) {\r\n this.ftitle = footer.Value;\r\n } else {\r\n this.ftitle = \"iCBMS\";\r\n }\r\n },\r\n (error) => {\r\n //console.log(error)\r\n }\r\n );\r\n }\r\n\r\n checkIfKiosk() {\r\n this.documentService.checkIfKiosk().subscribe(\r\n (res: any) => {\r\n \r\n\r\n this.isKiosk = true;\r\n\r\n this.runSignalRService();\r\n\r\n try{\r\n this.signalrService.getPCDetails().subscribe((result: any)=>{\r\n console.log(\"GET PC DETAILS\", result);\r\n this.signalrService.machinename = result.pcName;\r\n this.signalrService.ipAddress = result.ipAddress;\r\n });\r\n }catch(e){\r\n console.error(e);\r\n }\r\n\r\n },\r\n (err) => {\r\n \r\n }\r\n );\r\n }\r\n\r\n runSignalRService(){\r\n\r\n if (localStorage.getItem(\"userID\") === null) {\r\n return;\r\n }\r\n\r\n if (localStorage.getItem(\"sessionId\") != null)\r\n {\r\n this.sessionId = localStorage.getItem(\"sessionId\").toString();\r\n } \r\n else \r\n {\r\n this.sessionId = crypto.randomUUID();\r\n localStorage.setItem(\"sessionId\", this.sessionId);\r\n }\r\n\r\n \r\n let authSession: AuthSession = {\r\n id: 0,\r\n carrierId: 0,\r\n sessionId: this.sessionId,\r\n pcIpAddress: this.signalrService.ipAddress,\r\n pcName: \"\",\r\n statusId: 1,\r\n connectionId: this.signalrService.connectionId,\r\n sessionStartTime: new Date(),\r\n sessionEndTime: new Date(),\r\n dateCreated: new Date(),\r\n dateModified: new Date(),\r\n userCreated: localStorage.getItem(\"userID\"),\r\n userModifiedId: Number(localStorage.getItem(\"userID\")),\r\n \r\n };\r\n\r\n this.signalrService.SessionManager(authSession);\r\n \r\n }\r\n\r\n public googleAuthSDK() {\r\n\r\n (window)['googleSDKLoaded'] = () => {\r\n (window)['gapi'].load('auth2', () => {\r\n this.auth2 = (window)['gapi'].auth2.init({\r\n client_id: '42235825666-vl4kgsvsl4lvh7986v1dl2ifspe351tk.apps.googleusercontent.com',\r\n plugin_name:'login',\r\n cookiepolicy: 'single_host_origin',\r\n scope: 'profile email'\r\n });\r\n\r\n // this.callLogin();\r\n\t\t\r\n });\r\n }\r\n\r\n (function (d, s, id) {\r\n var js, fjs = d.getElementsByTagName(s)[0];\r\n if (d.getElementById(id)) { return; }\r\n js = d.createElement('script');\r\n js.id = id;\r\n js.src = \"https://apis.google.com/js/platform.js?onload=googleSDKLoaded\";\r\n fjs?.parentNode?.insertBefore(js, fjs);\r\n }(document, 'script', 'google-jssdk'));\r\n }\r\n\r\n activate(email) {\r\n //console.log( this.authWebService.activateAccout(email));\r\n // this.authWebService.activateAccout(email)\r\n }\r\n\r\n checkIfUserLoggedIn = () => {\r\n this.router.events.subscribe((event: any) => {\r\n if (event instanceof NavigationEnd) {\r\n this.utility.isView = true;\r\n this.utility.setShowStatementFooter(false);\r\n let url =\r\n this.router.url.indexOf(\"?\") !== -1\r\n ? this.router.url.substring(0, this.router.url.indexOf(\"?\")).trim()\r\n : this.router.url;\r\n switch (url) {\r\n case \"/activate\": {\r\n const firstNum = this.router.url.indexOf(\"=\");\r\n // //console.log(this.router.url.substring(firstNum + 1))\r\n // if (this.router.url.substring(firstNum + 1).includes('@')) {\r\n // //console.log('in get email '+this.router.url.substring(firstNum + 1))\r\n // this.activate(this.router.url.substring(firstNum + 1))\r\n // // localStorage.setItem('activeEmail', this.router.url.substring(firstNum + 1))\r\n // }\r\n this.router.navigate([\r\n \"activate\",\r\n this.router.url.substring(firstNum + 1),\r\n ]);\r\n\r\n break;\r\n }\r\n case \"/register\": {\r\n this.router.navigate([\"register\"]);\r\n break;\r\n }\r\n\r\n case \"/reset\": {\r\n this.router.navigate([\"reset\"]);\r\n\r\n break;\r\n }\r\n\r\n case \"/reset/confirm\": {\r\n this.router.navigate([\"reset/confirm\"]);\r\n break;\r\n }\r\n\r\n // default:{\r\n // if (this.authWebService.authenticated != true) { this.router.navigate(['login']); }\r\n\r\n // break;\r\n\r\n // }\r\n }\r\n }\r\n });\r\n };\r\n\r\n reset() {\r\n this.idle.watch();\r\n this.timedOut = false;\r\n }\r\n\r\n hideChildModal(): void {\r\n this.childModal.hide();\r\n }\r\n\r\n stay() {\r\n this.childModal.hide();\r\n this.reset();\r\n }\r\n\r\n logout() {\r\n console.log(\"Tryting to Logout\");\r\n this.authService.signOut();\r\n this.childModal.hide();\r\n this.idleSrvc.setLoggedIn(false);\r\n this.authWebService.logout();\r\n var cookies = document.cookie.split(\";\");\r\n console.log(\"Cookies\");\r\n console.log(cookies);\r\n \r\n }\r\n\r\n setIdleSettings = () => {\r\n this.authWebService.getUserTimeout().subscribe((data) => {\r\n this.userIdleTime = +data;\r\n this.userIdleTime = this.userIdleTime * 60;\r\n if (this.userIdleTime > 0) {\r\n this.idle.setIdle(this.userIdleTime);\r\n this.idle.setTimeout(this.userTimeOut);\r\n this.idle.setInterrupts(DEFAULT_INTERRUPTSOURCES);\r\n\r\n this.idle.onIdleEnd.subscribe(() => {\r\n this.idleState = \"No longer idle.\";\r\n this.reset();\r\n });\r\n\r\n this.idle.onTimeout.subscribe(() => {\r\n this.childModal.hide();\r\n this.idleState = \"Timed out!\";\r\n this.timedOut = true;\r\n this.authWebService.logout();\r\n });\r\n\r\n this.idle.onIdleStart.subscribe(() => {\r\n this.idleState = \"You've gone idle!\";\r\n this.childModal.show();\r\n });\r\n\r\n this.idle.onTimeoutWarning.subscribe((countdown) => {\r\n let s = countdown > 1 ? \"s!\" : \"!\";\r\n this.idleState =\r\n \"You will be logged out in \" + countdown + ` second${s}`;\r\n });\r\n\r\n // sets the ping interval to 15 seconds\r\n this.keepalive.interval(15);\r\n\r\n this.keepalive.onPing.subscribe(() => (this.lastPing = new Date()));\r\n\r\n this.idleSrvc.getLoggedIn().subscribe((userLoggedIn) => {\r\n if (userLoggedIn) {\r\n this.idle.watch();\r\n this.timedOut = false;\r\n } else {\r\n this.idle.stop();\r\n }\r\n });\r\n } else {\r\n this.idleSrvc.setLoggedIn(false);\r\n }\r\n });\r\n };\r\n}\r\n","\r\n
\r\n
\r\n \"iCBMS\"\r\n\r\n
\r\n\r\n
\r\n \r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n
\r\n >>> GREAT NEWS!! <<<   We Accept Online Payments: Go To   → My Accounts → View Accounts, select the account you want to deposit money into. Then Select the “Fund Account” Option.\r\n
\r\n
\r\n \r\n
\r\n >>> NOTICE: <<<   Payment Gateway is currently offline due to maintenance.. \r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
Your session will be terminated in {{ this.signalrService.sub | async }} seconds
\r\n\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n {{ftitle}}\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n

You have been idle!

\r\n {{idleState}}
\r\n You may extend your session.\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n","\r\n\r\nimport { NgModule, LOCALE_ID, APP_INITIALIZER, CUSTOM_ELEMENTS_SCHEMA, ApplicationRef, OnInit } from '@angular/core';\r\nimport { NgMultiSelectDropDownModule } from 'ng-multiselect-dropdown';\r\n//AuthGuard\r\nimport { AuthGuard } from './auth.guard'\r\n\r\n//Custom routing module\r\nimport { appRouting } from './app.routing'\r\n\r\n//import { PreBootService } from './Service/preboot.service'; //!important - Do Not move\r\n\r\n//Angular modules\r\nimport { RouterModule } from '@angular/router';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { ReactiveFormsModule, FormBuilder, FormGroup, Validators, FormsModule } from '@angular/forms';\r\nimport { CommonModule, DatePipe, CurrencyPipe, Location } from \"@angular/common\";\r\n\r\n//Ngx-toastr\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { ToastrModule } from 'ngx-toastr';\r\nimport { NgbDateStruct, NgbCalendar } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n\r\n\r\n\r\n//Installed modules\r\nimport { OrderModule } from 'ngx-order-pipe';\r\nimport { NgxPaginationModule } from 'ngx-pagination';\r\nimport { NgxLoadingModule } from 'ngx-loading';\r\nimport { FroalaEditorModule, FroalaViewModule } from 'angular-froala-wysiwyg';\r\nimport { CKEditorModule } from 'ng2-ckeditor';\r\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ChartsModule } from 'ng2-charts';\r\n\r\n\r\n//Components\r\nimport { AppComponent } from './app.component';\r\nimport { HomeComponent } from './home/home.component';\r\n\r\n\r\nimport { BusyComponent } from './busy/busy.component';\r\nimport { MenuComponent } from './menu/menu.component';\r\n\r\n\r\n//Shared Components\r\n\r\n\r\n//Message pop-up components\r\nimport { ConfirmComponent } from './popup/confirm.component';\r\nimport { AlertComponent } from './popup/alert.component';\r\nimport { PromptComponent } from './popup/prompt.component';\r\nimport { ParentDialogComponent } from './popup/parent-dialog.component';\r\nimport { ErrorComponent } from './popup/error.component';\r\nimport { CommentComponent } from './popup/comment.component';\r\n\r\nimport { ConfirmationPopoverModule } from 'angular-confirmation-popover';\r\n\r\n\r\n//Service\r\n\r\nimport { GlobalsService } from './services/globals.service';\r\nimport { NavigationService } from './services/navigation.service';\r\nimport { AuthenticationService } from './services/authentication.service';\r\nimport { MenuService } from './services/menu.service';\r\nimport { PopupService } from './services/shared/popup.service';\r\nimport { VehicleMakeService } from './services/vehicle-make.service';\r\nimport { VehicleTypeService } from './services/vehicle-type.service';\r\nimport {FreightTypeService} from './services/freight-type.service';\r\nimport { StatusService } from './services/status.service';\r\nimport { UtilityServiceService } from './services/utility-service.service';\r\nimport { PermitTypeService } from './services/permit-type.service';\r\nimport { CarrierTypeService } from './services/carrier-type.service';\r\nimport { DocumentsServiceService } from './services/documents-service.service';\r\nimport { DocumenttypeService } from './services/documenttype.service';\r\nimport { CarrierTypeDocumentService } from './services/carrier-type-document.service';\r\nimport { ApplicationService } from './services/application.service';\r\nimport { VehicleService } from './services/vehicle.service';\r\nimport { PermitService } from './services/permit.service';\r\nimport { CarrierworkflowService } from './services/carrierworkflow.service';\r\nimport { WorkflowdashboardService } from './services/workflowdashboard.service';\r\nimport { RunMaintenanceTasksService } from './services/run-maintenance-tasks.service';\r\nimport { RunCorrespondenceTasksService } from './services/run-correspondence-tasks.service';\r\nimport { CarrierAccountService } from './services/carrier-account.service';\r\nimport { GooglePlacesSearchService } from './services/google-places-search.service';\r\nimport { PayGateService } from './services/paygate.service';\r\n\r\n\r\n//Custom routing module\r\n\r\n\r\n//Custom pipes\r\nimport { CurrencyFormat } from './pipes/currencyFormat.pipe';\r\nimport { NoSanitizePipe } from './pipes/noSanitize.pipe';\r\n\r\nimport { VehicleTypeComponent } from './maintain/vehicle-type/vehicle-type.component';\r\nimport { ListVehicleTypeComponent } from './maintain/list-vehicle-type/list-vehicle-type.component';\r\n\r\nimport { ListVehicleMakeComponent } from './maintain/list-vehicle-make/list-vehicle-make.component';\r\nimport { VehicleMakeComponent } from './maintain/vehicle-make/vehicle-make.component';\r\nimport { PermitTypeComponent } from './maintain/permit-type/permit-type.component';\r\nimport { ListPermitTypeComponent } from './maintain/list-permit-type/list-permit-type.component';\r\nimport { ListStatusComponent } from './maintain/list-status/list-status.component';\r\nimport { StatusComponent } from './maintain/status/status.component';\r\nimport { ListCarrierTypeComponent } from './maintain/list-carrier-type/list-carrier-type.component';\r\nimport { CarrierTypeComponent } from './maintain/carrier-type/carrier-type.component';\r\nimport { AuthWebService } from './services/authweb.service';\r\nimport { LoginComponent } from './login/login.component';\r\nimport { StorageService } from './services/storage.service';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { RegisterComponent } from './register/register.component';\r\nimport { AmmenduserComponent } from './ammenduser/ammenduser.component';\r\nimport { CompanydetailsComponent } from './companydetails/companydetails.component';\r\nimport { CaLandingPageComponent } from './ca-landing-page/ca-landing-page.component';\r\nimport { EqualvalidatorDirective } from './validators/equalvalidator.directive';\r\nimport { ForgotComponent } from './forgot/forgot.component';\r\nimport { ResetComponent } from './reset/reset.component';\r\nimport { UsernameComponent } from './forgot/username/username.component';\r\nimport { UploaddocumentComponent } from './uploaddocument/uploaddocument.component';\r\nimport { ConfirmpasswordchangeComponent } from './reset/confirmpasswordchange/confirmpasswordchange.component';\r\nimport { ListDocumentTypeComponent } from './maintain/list-document-type/list-document-type.component';\r\nimport { DocumentTypeComponent } from './maintain/document-type/document-type.component';\r\nimport { CarrierService } from './services/carrier.service';\r\nimport { ManagementComponent } from './carrier-account/management/management.component';\r\nimport { CaContactPageComponent } from './ca-contact-page/ca-contact-page.component';\r\n\r\nimport { ComplianceLegalComponent } from './carrier-account/compliance-legal/compliance-legal.component';\r\nimport { TransportAssocService } from './services/transport-assoc.service';\r\nimport { PermitApplicationComponent } from './permits/permit-application/permit-application.component';\r\nimport { NewPermitApplicationComponent } from './permits/permit-application/new-permit-application/new-permit-application.component';\r\nimport { AppPermitTypeComponent } from './permits/permit-application/shared/app-permit-type/app-permit-type.component';\r\nimport { AppVehicleComponent } from './permits/permit-application/shared/app-vehicle/app-vehicle.component';\r\nimport { AppRouteComponent } from './permits/permit-application/shared/app-route/app-route.component';\r\nimport { AppMotivationComponent } from './permits/permit-application/shared/app-motivation/app-motivation.component';\r\nimport { AppUploadsComponent } from './permits/permit-application/shared/app-uploads/app-uploads.component';\r\nimport { CountryService } from './services/country.service';\r\nimport { SubmissionComponent } from './carrier-account/submission/submission.component';\r\nimport { ListCarrierTypeDocumentComponent } from './maintain/list-carrier-type-document/list-carrier-type-document.component';\r\nimport { CarrierTypeDocumentComponent } from './maintain/carrier-type-document/carrier-type-document.component';\r\nimport { ViewPermitApplicationComponent } from './permits/permit-application/view-permit-application/view-permit-application.component';\r\nimport { RecaptchaModule } from 'ng-recaptcha';\r\nimport { SideMenuComponent } from './side-menu/side-menu.component';\r\nimport { TransportAssociationComponent } from './maintain/transport-association/transport-association.component';\r\nimport { TransportAssociationListComponent } from './maintain/list-transport-association/transport-association-list.component';\r\nimport { WorkflowdashboardComponent } from './workflow/workflowdashboard/workflowdashboard.component';\r\nimport { PermitTypeDocumentComponent } from './maintain/permit-type-document/permit-type-document.component';\r\nimport { ListPermitTypeDocumentComponent } from './maintain/list-permit-type-document/list-permit-type-document.component';\r\nimport { ConfirmationComponent } from './permits/permit-application/shared/confirmation/confirmation.component';\r\nimport { ErrorsComponent } from './shared/errors/errors.component';\r\n\r\nimport { FooterBtnComponent } from './shared/footer-btn/footer-btn.component';\r\n\r\nimport { ActivateAccountComponent } from './activate-account/activate-account.component';\r\nimport { ApprovalManagerComponent } from './approval-manager/approval-manager.component';\r\nimport { PermitViewerComponent } from './application-approval/permit-viewer/permit-viewer.component';\r\nimport { CarrierViewerComponent } from './application-approval/carrier-viewer/carrier-viewer.component';\r\nimport { MotivationViewerComponent } from './application-approval/shared/motivation-viewer/motivation-viewer.component';\r\nimport { PermitTypeViewerComponent } from './application-approval/shared/permit-type-viewer/permit-type-viewer.component';\r\nimport { RouteViewerComponent } from './application-approval/shared/route-viewer/route-viewer.component';\r\nimport { UploadsViewerComponent } from './application-approval/shared/uploads-viewer/uploads-viewer.component';\r\nimport { VehicleViewerComponent } from './application-approval/shared/vehicle-viewer/vehicle-viewer.component';\r\nimport { ConfirmationViewerComponent } from './application-approval/shared/confirmation-viewer/confirmation-viewer.component';\r\nimport { PermitApprovalListComponent } from './approval-manager/permit-approval-list/permit-approval-list.component';\r\nimport { PermitCorrespondenceComponent } from './approval-manager/permit-correspondence/permit-correspondence.component';\r\n\r\nimport { PdfViewerModule } from 'ng2-pdf-viewer';\r\nimport { ManagerComponent } from './carrier-account/approve/manager/manager.component';\r\nimport { ListAccountsComponent } from './carrier-account/approve/list-accounts/list-accounts.component';\r\n\r\n\r\nimport { CarriercorrespondenceComponent } from './carrier-account/approve/carriercorrespondence/carriercorrespondence.component';\r\nimport { AddRouteComponent } from './maintain/route-management/add-route/add-route.component';\r\nimport { PrintingComponent } from './approval-manager/printing/printing.component';\r\n\r\nimport { ManageCountriesComponent } from './maintain/manage-countries/manage-countries.component';\r\nimport { AddNewPlaceComponent } from './maintain/add-new-place/add-new-place.component';\r\nimport { PlaceService } from './services/place.service'\r\nimport { ManageCountryPlacesComponent } from './maintain/manage-country-places/manage-country-places.component';\r\nimport { ListPermitTypeVehicleComponent } from './maintain/list-permit-type-vehicle/list-permit-type-vehicle.component';\r\n\r\nimport { ListRouteComponent } from './maintain/route-management/list-route/list-route/list-route.component';\r\nimport { PermitTypeVehicleService } from './services/permit-type-vehicle.service';\r\nimport { CorspdcService } from './services/corspdc.service';\r\nimport { CorspdcComponent } from './corspdc/corspdc.component';\r\nimport { PermitListApplicationComponent } from './permit-list-application/permit-list-application.component';\r\nimport { YesNoComponent } from './popup/yesno.component';\r\nimport { PermitCertificateReturnComponent } from './maintain/permit-certificate-return/permit-certificate-return.component';\r\nimport { RunMaintenanceTasksComponent } from './maintain/run-maintenance-tasks/run-maintenance-tasks.component';\r\nimport { BatchComponent } from './corspdc/batch/batch.component';\r\nimport { StatementComponent } from './carrier-account/statement/statement.component';\r\nimport { InvoiceComponent } from './carrier-account/statement/invoice/invoice.component';\r\nimport { RunCorrespondenceTasksComponent } from './maintain/run-correspondence-tasks/run-correspondence-tasks.component';\r\nimport { UnderConstructionComponent } from './permits/permit-application/shared/under-construction/under-construction.component';\r\nimport { DemographicsComponent } from './carrier-account/demographics/demographics.component';\r\nimport { ConsultantComponent } from './consultant/consultant.component';\r\nimport { CustomToastComponent } from './popup/custom-toast/custom-toast.component';\r\nimport { RenewPermitComponent } from './permits/permit-application/renew-permit/renew-permit.component';\r\nimport { NgxIntlTelInputModule } from './shared/projects/ngx-intl-tel-input/src/lib/ngx-intl-tel-input.module';\r\nimport { AssignRolePopupComponent } from './consultant/popups/assign-role-popup.component';\r\nimport { LinkCarrierAccountComponent } from './carrier-account/link-carrier-account/link-carrier-account.component';\r\nimport { DeLinkCarrierAccountComponent } from './carrier-account/delink-carrier-account/delink-carrier-account.component';\r\nimport { EnterOtpPopupComponent } from './carrier-account/link-carrier-account/enter-otp-popup/enter-otp-popup.component';\r\nimport { EnterConfirmationPopupComponent } from './carrier-account/delink-carrier-account/enter-confirmation-popup/enter-confirmation-popup.component';\r\nimport { TimetableService } from './services/timetable.service';\r\nimport { ManageComponent } from './permits/permit-application/timetable/manage/manage.component';\r\nimport { ExtractViewsComponent } from './extract-views/extract-views/extract-views.component';\r\nimport { RunExtractsComponent } from './extract-views/extract-views/run-extracts/run-extracts.component';\r\nimport { AddDataExtractComponent } from './extract-views/extract-views/add-data-extract/add-data-extract.component';\r\nimport { TimetableComponent } from './permits/permit-application/timetable/timetable.component';\r\nimport { CustomTimeZonePipe } from './pipes/custom-time-zone.pipe';\r\nimport { FooterComponent } from './carrier-account/statement/footer/footer.component';\r\nimport { CarriertransactionService } from './services/carriertransaction.service';\r\nimport { FooterStatmentComponent } from './carrier-account/statement/footer-statment/footer-statment.component';\r\nimport { IdleManagerService } from './services/idle-manager.service';\r\nimport { NgIdleKeepaliveModule } from '@ng-idle/keepalive';\r\nimport { MomentModule } from 'angular2-moment';\r\nimport { ModalModule } from 'ngx-bootstrap/modal';\r\nimport { ViewPermitComponent } from './maintain/view-permit/view-permit.component';\r\nimport { ManageVehiclesComponent } from './maintain/manage-vehicles/manage-vehicles.component';\r\nimport { VehicleEntryService } from './services/vehicle-entry.service';\r\nimport { VehicleEntryCarrierService } from 'app/services/vehicle-entry-carrier.service';\r\nimport { TableModule } from 'primeng/table';\r\nimport { ExternalVehiclesComponent } from './maintain/external-vehicles/external-vehicles.component';\r\nimport { CarrierDetailsComponent } from './permits/permit-application/shared/carrier-details/carrier-details.component';\r\nimport { CalendarViewerComponent } from './shared/calendar-viewer/calendar-viewer.component';\r\nimport { TripComponent } from './shared/calendar-viewer/trip/trip.component';\r\nimport { FileDropModule } from 'ngx-file-drop';\r\nimport { ListFreightTypeComponent } from './maintain/list-freight-type/list-freight-type.component';\r\nimport { EditFreightTypeComponent } from './maintain/edit-freight-type/edit-freight-type.component';\r\nimport { CarrierComplianceListComponent } from './compliance/carrier-compliance-list/carrier-compliance-list.component';\r\nimport { CompliancereturnsService } from './services/compliancereturns.service';\r\nimport { SessionService } from './services/session.service';\r\n\r\n\r\nimport { CalendarService } from './services/calendar.service';\r\nimport { SupportComponent } from './support/support.component';\r\nimport { ComplianceApplicationComponent } from './compliance/compliance-application/compliance-application.component';\r\nimport { ComplianceReturnListComponent } from './compliance/compliance-return-list/compliance-return-list.component';\r\nimport { ComplianceDetailsComponent } from './compliance/compliance-details/compliance-details.component';\r\nimport { CConfirmationComponent } from './compliance/confirmation/c-confirmation.component';\r\n\r\n//PAYGATE\r\nimport { AccountDepositComponent } from './PayGate/accountDeposit.component';\r\nimport {PaymentCompleteComponent} from './PayGate/PaymentComplete/paymentComplete.component';\r\n\r\nimport { PdfJsViewerModule } from 'ng2-pdfjs-viewer';\r\nimport { BootstrapModalModule, DialogService } from 'ng2-bootstrap-modal';\r\nimport { ConfirmDialogModule } from './services/shared/confirm-dialog/confirm-dialog.module';\r\nimport { NgxExtendedPdfViewerModule } from 'ngx-extended-pdf-viewer';\r\nimport {MsalModule, MsalService, MSAL_INSTANCE} from '@azure/msal-angular';\r\nimport { IPublicClientApplication, PublicClientApplication } from '@azure/msal-browser';\r\n\r\n//import { HttpInterceptor } from '@angular/common/http';\r\n\r\n//Custom pre-boot service\r\n// export function prebootServiceFactory(prebootService: PreBootService): Function {\r\n// return () => prebootService.load();\r\n// }\r\n\r\n\r\nimport { FacebookLoginProvider, GoogleLoginProvider, SocialAuthService, SocialAuthServiceConfig, SocialLoginModule } from 'angular12-social-login'; \r\nimport { SocialUser } from 'angular12-social-login'; \r\nimport { environment } from 'environments/environment';\r\nimport { FacebookpolicyComponent } from './facebookpolicy/facebookpolicy.component';\r\nimport { ListSessionComponent } from './maintain/list-session/list-session.component';\r\nimport { AddScannerComponent } from './maintain/add-scanner/add-scanner.component';\r\nimport { ListScannerComponent } from './maintain/list-scanner/list-scanner.component';\r\n\r\nimport { CredentialResponse, PromptMomentNotification } from 'google-one-tap';\r\n\r\n\r\n// let gapiClientConfig: NgGapiClientConfig = {\r\n// client_id: \"42235825666-vl4kgsvsl4lvh7986v1dl2ifspe351tk.apps.googleusercontent.com\",\r\n// discoveryDocs: [\"https://analyticsreporting.googleapis.com/$discovery/rest?version=v4\"],\r\n// ux_mode: \"redirect\",\r\n// redirect_uri: \"https://ng-gapi-example.stackblitz.io/redirect\",\r\n// scope: [\r\n// \"https://www.googleapis.com/auth/userinfo.profile\"\r\n// ].join(\" \")\r\n// };\r\n\r\nconst fbLoginOptions = {\r\n scope: 'pages_messaging,pages_messaging_subscriptions,email,pages_show_list,manage_pages',\r\n return_scopes: true,\r\n enable_profile_selector: true\r\n }; // https://developers.facebook.com/docs/reference/javascript/FB.login/v2.11\r\n \r\n const googleLoginOptions = {\r\n scope: 'profile email',\r\n plugin_name:'login',\r\n cookiepolicy: 'single_host_origin'\r\n }; // https://developers.google.com/api-client-library/javascript/reference/referencedocs#gapiauth2clientconfig\r\n \r\n const vkLoginOptions = {\r\n fields: 'photo_max,contacts', // Profile fields to return, see: https://vk.com/dev/objects/user\r\n version: '5.124', // https://vk.com/dev/versions\r\n }; // https://vk.com/dev/users.get\r\n\r\nexport function socialConfigs() {\r\n const config = [\r\n {\r\n id: FacebookLoginProvider.PROVIDER_ID,\r\n provider: new FacebookLoginProvider('502819838047618', fbLoginOptions),\r\n },\r\n {\r\n id: GoogleLoginProvider.PROVIDER_ID,\r\n provider: new GoogleLoginProvider(\r\n '922769349816-o4sujaq5m0gs033ilvneqj8taffa71qs.apps.googleusercontent.com',\r\n googleLoginOptions\r\n ),\r\n },\r\n ];\r\n return config;\r\n }\r\n export function MSALInstanceFactory():IPublicClientApplication{\r\n return new PublicClientApplication({\r\n auth: {\r\n clientId: 'd6b2061d-8857-41e0-a99d-a3578b390e59',\r\n redirectUri: environment.azure.redirectUri \r\n }\r\n })\r\n \r\n}\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n HomeComponent,\r\n MenuComponent,\r\n BusyComponent,\r\n //Share Components\r\n //Popup Components\r\n ConfirmComponent,\r\n AlertComponent,\r\n PromptComponent,\r\n ParentDialogComponent,\r\n YesNoComponent,\r\n ErrorComponent,\r\n CommentComponent,\r\n //Currency\r\n CurrencyFormat,\r\n NoSanitizePipe,\r\n VehicleTypeComponent,\r\n ListVehicleTypeComponent,\r\n ListVehicleMakeComponent,\r\n VehicleMakeComponent,\r\n PermitTypeComponent,\r\n ListPermitTypeComponent,\r\n ListStatusComponent,\r\n StatusComponent,\r\n ListCarrierTypeComponent,\r\n CConfirmationComponent,\r\n CarrierTypeComponent,\r\n LoginComponent,\r\n RegisterComponent,\r\n AmmenduserComponent,\r\n CompanydetailsComponent,\r\n CaLandingPageComponent,\r\n EqualvalidatorDirective,\r\n ForgotComponent,\r\n ResetComponent,\r\n UsernameComponent,\r\n ManagementComponent,\r\n UploaddocumentComponent,\r\n ConfirmpasswordchangeComponent,\r\n ListDocumentTypeComponent,\r\n DocumentTypeComponent,\r\n ComplianceLegalComponent,\r\n SubmissionComponent,\r\n DocumentTypeComponent,\r\n ListCarrierTypeDocumentComponent,\r\n CarrierTypeDocumentComponent,\r\n //\r\n ResetComponent,\r\n UsernameComponent,\r\n ManagementComponent,\r\n UploaddocumentComponent,\r\n ConfirmpasswordchangeComponent,\r\n CaContactPageComponent,\r\n PermitApplicationComponent,\r\n NewPermitApplicationComponent,\r\n AppPermitTypeComponent,\r\n AppVehicleComponent,\r\n AppRouteComponent,\r\n AppMotivationComponent,\r\n AppUploadsComponent,\r\n ViewPermitApplicationComponent,\r\n SideMenuComponent,\r\n TransportAssociationComponent,\r\n TransportAssociationListComponent,\r\n WorkflowdashboardComponent,\r\n PermitTypeDocumentComponent,\r\n ListPermitTypeDocumentComponent,\r\n ConfirmationComponent,\r\n ErrorsComponent,\r\n ActivateAccountComponent,\r\n ApprovalManagerComponent,\r\n FooterBtnComponent,\r\n PermitViewerComponent,\r\n CarrierViewerComponent,\r\n MotivationViewerComponent,\r\n PermitTypeViewerComponent,\r\n RouteViewerComponent,\r\n UploadsViewerComponent,\r\n VehicleViewerComponent,\r\n ConfirmationViewerComponent,\r\n PermitApprovalListComponent,\r\n PermitCorrespondenceComponent,\r\n ManagerComponent,\r\n ListAccountsComponent,\r\n CarriercorrespondenceComponent,\r\n AddRouteComponent,\r\n PrintingComponent,\r\n ManageCountriesComponent,\r\n AddNewPlaceComponent,\r\n ListRouteComponent,\r\n ManageCountriesComponent,\r\n AddNewPlaceComponent,\r\n ManageCountryPlacesComponent,\r\n ListPermitTypeVehicleComponent,\r\n CorspdcComponent,\r\n PermitListApplicationComponent,\r\n PermitCertificateReturnComponent,\r\n RunCorrespondenceTasksComponent,\r\n RunMaintenanceTasksComponent,\r\n UnderConstructionComponent,\r\n BatchComponent,\r\n CustomToastComponent,\r\n StatementComponent,\r\n InvoiceComponent,\r\n DemographicsComponent,\r\n ConsultantComponent,\r\n InvoiceComponent,\r\n RenewPermitComponent,\r\n AssignRolePopupComponent,\r\n LinkCarrierAccountComponent,\r\n DeLinkCarrierAccountComponent,\r\n EnterOtpPopupComponent,\r\n EnterConfirmationPopupComponent,\r\n TimetableComponent,\r\n ManageComponent,\r\n CustomTimeZonePipe,\r\n ExtractViewsComponent,\r\n RunExtractsComponent,\r\n AddDataExtractComponent,\r\n FooterComponent,\r\n FooterStatmentComponent,\r\n ViewPermitComponent,\r\n ManageVehiclesComponent,\r\n ExternalVehiclesComponent,\r\n CarrierDetailsComponent,\r\n CalendarViewerComponent,\r\n TripComponent,\r\n ListFreightTypeComponent,\r\n EditFreightTypeComponent,\r\n CarrierComplianceListComponent,\r\n ComplianceDetailsComponent,\r\n ComplianceReturnListComponent,\r\n ComplianceApplicationComponent,\r\n SupportComponent,\r\n //Paygate\r\n AccountDepositComponent,\r\n PaymentCompleteComponent,\r\n FacebookpolicyComponent,\r\n ListSessionComponent,\r\n AddScannerComponent,\r\n ListScannerComponent\r\n ],\r\n bootstrap: [AppComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n ConfirmDialogModule,\r\n TableModule,\r\n PdfViewerModule,\r\n PdfJsViewerModule,\r\n BrowserModule,\r\n HttpClientModule,\r\n OrderModule,\r\n // BootstrapModalModule,\r\n ReactiveFormsModule,\r\n NgxPaginationModule,\r\n NgxLoadingModule.forRoot({}),\r\n appRouting,\r\n FroalaEditorModule.forRoot(),\r\n FroalaViewModule.forRoot(),\r\n ConfirmationPopoverModule.forRoot({\r\n confirmButtonType: 'danger' // set defaults here\r\n }),\r\n CKEditorModule,\r\n NgbModule,\r\n RecaptchaModule,\r\n BrowserAnimationsModule,\r\n ToastrModule.forRoot({\r\n disableTimeOut: true,\r\n tapToDismiss: false,\r\n positionClass: 'toast-center-center',\r\n closeButton: true,\r\n preventDuplicates: true,\r\n maxOpened: 1\r\n }),\r\n NgMultiSelectDropDownModule.forRoot(),\r\n NgxIntlTelInputModule,\r\n NgIdleKeepaliveModule.forRoot(),\r\n MomentModule,\r\n ModalModule.forRoot(),\r\n FileDropModule,\r\n NgxExtendedPdfViewerModule,\r\n SocialLoginModule,\r\n MsalModule,\r\n ],\r\n providers: [\r\n AuthGuard,\r\n // { provide: Http, useClass: ExtendedHttpService },\r\n // PreBootService,\r\n // {\r\n // provide: APP_INITIALIZER,\r\n // useFactory: prebootServiceFactory,\r\n // deps: [PreBootService],\r\n // multi: true\r\n // },\r\n // DialogService,\r\n DatePipe,\r\n CurrencyPipe,\r\n GlobalsService,\r\n NavigationService,\r\n NavigationService,\r\n AuthenticationService, \r\n MenuService,\r\n PopupService,\r\n StatusService,\r\n VehicleTypeService,\r\n FreightTypeService,\r\n VehicleMakeService,\r\n UtilityServiceService,\r\n PermitTypeService,\r\n CarrierTypeService,\r\n AuthWebService,\r\n StorageService,\r\n CarrierService,\r\n DocumentsServiceService,\r\n DocumenttypeService,\r\n TransportAssocService,\r\n CountryService,\r\n PlaceService,\r\n CarrierTypeDocumentService,\r\n ApplicationService,\r\n PayGateService,\r\n VehicleService,\r\n PermitService,\r\n CarrierworkflowService,\r\n WorkflowdashboardService,\r\n PermitTypeVehicleService,\r\n CorspdcService,\r\n RunMaintenanceTasksService,\r\n RunCorrespondenceTasksService,\r\n CarrierAccountService,\r\n TimetableService,\r\n CarriertransactionService,\r\n IdleManagerService,\r\n GooglePlacesSearchService,\r\n VehicleEntryService,\r\n VehicleEntryCarrierService,\r\n CompliancereturnsService,\r\n CalendarService,\r\n SessionService,\r\n {\r\n provide: LOCALE_ID,\r\n useValue: 'en-ZA'\r\n }, {\r\n provide: 'SocialAuthServiceConfig',\r\n useValue: {\r\n autoLogin: false,\r\n prompt: \"select_account\",\r\n providers: [\r\n {\r\n id: FacebookLoginProvider.PROVIDER_ID,\r\n provider: new FacebookLoginProvider('502819838047618'),\r\n }, {\r\n id: GoogleLoginProvider.PROVIDER_ID,\r\n provider: new GoogleLoginProvider('922769349816-o4sujaq5m0gs033ilvneqj8taffa71qs.apps.googleusercontent.com', googleLoginOptions),\r\n },\r\n ],\r\n onError: (err) => {\r\n console.error(err);\r\n },\r\n } as SocialAuthServiceConfig,\r\n },\r\n {\r\n provide:MSAL_INSTANCE,\r\n useFactory:MSALInstanceFactory\r\n },\r\n MsalService\r\n ]\r\n})\r\nexport class AppModule implements OnInit {\r\n user: SocialUser | undefined;\r\n loggedIn: boolean | undefined;\r\n \r\n constructor(private authService: SocialAuthService,applicationRef: ApplicationRef) {\r\n Object.defineProperty(applicationRef, '_rootComponents', { get: () => applicationRef['components'] });\r\n }\r\n \r\n ngOnInit(): void {\r\n this.authService.authState.subscribe((user) => {\r\n this.user = user;\r\n this.loggedIn = user != null;\r\n });\r\n }\r\n// constructor(applicationRef: ApplicationRef) {\r\n// //for ng2-bootstrap-modal in angualar 5\r\n// Object.defineProperty(applicationRef, '_rootComponents', { get: () => applicationRef['components'] });\r\n// }\r\n}\r\n","import { ConsultantComponent } from './consultant/consultant.component';\r\nimport { UnderConstructionComponent } from './permits/permit-application/shared/under-construction/under-construction.component';\r\nimport { InvoiceComponent } from './carrier-account/statement/invoice/invoice.component';\r\nimport { ModuleWithProviders, Component } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\n\r\nimport { HomeComponent } from './home/home.component';\r\n\r\nimport { AuthGuard } from './auth.guard';\r\nimport { VehicleTypeComponent } from './maintain/vehicle-type/vehicle-type.component';\r\nimport { ListVehicleTypeComponent } from './maintain/list-vehicle-type/list-vehicle-type.component';\r\nimport { VehicleMakeComponent } from './maintain/vehicle-make/vehicle-make.component';\r\nimport { ListVehicleMakeComponent } from './maintain/list-vehicle-make/list-vehicle-make.component';\r\nimport { ListPermitTypeComponent } from './maintain/list-permit-type/list-permit-type.component';\r\nimport { PermitTypeComponent } from './maintain/permit-type/permit-type.component';\r\nimport { StatusComponent } from './maintain/status/status.component';\r\nimport { ListStatusComponent } from './maintain/list-status/list-status.component';\r\nimport { CarrierTypeComponent } from './maintain/carrier-type/carrier-type.component';\r\nimport { ListCarrierTypeComponent } from './maintain/list-carrier-type/list-carrier-type.component';\r\nimport { LoginComponent } from './login/login.component';\r\nimport { RegisterComponent } from './register/register.component';\r\nimport { AmmenduserComponent } from './ammenduser/ammenduser.component';\r\nimport { CaLandingPageComponent } from './ca-landing-page/ca-landing-page.component';\r\nimport { UsernameComponent } from './forgot/username/username.component';\r\nimport { ForgotComponent } from './forgot/forgot.component';\r\nimport { ResetComponent } from './reset/reset.component';\r\nimport { CompanydetailsComponent } from './companydetails/companydetails.component';\r\nimport { ManagementComponent } from './carrier-account/management/management.component';\r\nimport { UploaddocumentComponent } from './uploaddocument/uploaddocument.component';\r\nimport { ConfirmpasswordchangeComponent } from './reset/confirmpasswordchange/confirmpasswordchange.component';\r\nimport { CaContactPageComponent } from '../app/ca-contact-page/ca-contact-page.component';\r\nimport { ListDocumentTypeComponent } from './maintain/list-document-type/list-document-type.component';\r\nimport { DocumentTypeComponent } from './maintain/document-type/document-type.component';\r\nimport { PermitApplicationComponent } from './permits/permit-application/permit-application.component';\r\nimport { NewPermitApplicationComponent } from './permits/permit-application/new-permit-application/new-permit-application.component';\r\nimport { ViewPermitApplicationComponent } from './permits/permit-application/view-permit-application/view-permit-application.component';\r\nimport { ListCarrierTypeDocumentComponent } from './maintain/list-carrier-type-document/list-carrier-type-document.component';\r\nimport { CarrierTypeDocumentComponent } from './maintain/carrier-type-document/carrier-type-document.component';\r\nimport { TransportAssociationComponent } from './maintain/transport-association/transport-association.component';\r\nimport { TransportAssociationListComponent } from './maintain/list-transport-association/transport-association-list.component';\r\nimport { WorkflowdashboardComponent } from './workflow/workflowdashboard/workflowdashboard.component';\r\nimport { ListPermitTypeDocumentComponent } from './maintain/list-permit-type-document/list-permit-type-document.component';\r\nimport { PermitTypeDocumentComponent } from './maintain/permit-type-document/permit-type-document.component';\r\nimport { ErrorsComponent } from './shared/errors/errors.component';\r\nimport { ActivateAccountComponent } from './activate-account/activate-account.component';\r\nimport { ApprovalManagerComponent } from './approval-manager/approval-manager.component';\r\nimport { PermitApprovalListComponent } from './approval-manager/permit-approval-list/permit-approval-list.component';\r\n\r\nimport { PermitCorrespondenceComponent } from './approval-manager/permit-correspondence/permit-correspondence.component';\r\nimport { PermitViewerComponent } from './application-approval/permit-viewer/permit-viewer.component';\r\nimport { CarriercorrespondenceComponent } from './carrier-account/approve/carriercorrespondence/carriercorrespondence.component';\r\n\r\nimport { ManagerComponent } from './carrier-account/approve/manager/manager.component';\r\n\r\nimport { AddRouteComponent } from './maintain/route-management/add-route/add-route.component';\r\nimport { ListRouteComponent } from './maintain/route-management/list-route/list-route/list-route.component';\r\n\r\nimport { ListSessionComponent } from './maintain/list-session/list-session.component';\r\n\r\nimport { ManageCountriesComponent } from './maintain/manage-countries/manage-countries.component';\r\nimport { ManageCountryPlacesComponent } from './maintain/manage-country-places/manage-country-places.component';\r\nimport { AddNewPlaceComponent } from './maintain/add-new-place/add-new-place.component';\r\nimport { ListPermitTypeVehicleComponent } from './maintain/list-permit-type-vehicle/list-permit-type-vehicle.component';\r\nimport { CorspdcComponent } from './corspdc/corspdc.component';\r\nimport { PermitListApplicationComponent } from './permit-list-application/permit-list-application.component';\r\nimport { PermitCertificateReturnComponent } from './maintain/permit-certificate-return/permit-certificate-return.component';\r\nimport { RunMaintenanceTasksComponent } from './maintain/run-maintenance-tasks/run-maintenance-tasks.component';\r\nimport { RunCorrespondenceTasksComponent } from './maintain/run-correspondence-tasks/run-correspondence-tasks.component';\r\nimport { BatchComponent } from './corspdc/batch/batch.component';\r\nimport { StatementComponent } from './carrier-account/statement/statement.component';\r\nimport { LinkCarrierAccountComponent } from './carrier-account/link-carrier-account/link-carrier-account.component';\r\nimport { DeLinkCarrierAccountComponent } from './carrier-account/delink-carrier-account/delink-carrier-account.component';\r\nimport { ManageComponent } from './permits/permit-application/timetable/manage/manage.component';\r\nimport { TimetableComponent } from './permits/permit-application/timetable/timetable.component';\r\nimport { ExtractViewsComponent } from './extract-views/extract-views/extract-views.component';\r\nimport { RunExtractsComponent } from './extract-views/extract-views/run-extracts/run-extracts.component';\r\nimport { AddDataExtractComponent } from './extract-views/extract-views/add-data-extract/add-data-extract.component';\r\nimport { ViewPermitComponent } from './maintain/view-permit/view-permit.component';\r\nimport { RenewPermitComponent } from './permits/permit-application/renew-permit/renew-permit.component';\r\nimport { ManageVehiclesComponent } from './maintain/manage-vehicles/manage-vehicles.component';\r\nimport { ExternalVehiclesComponent } from './maintain/external-vehicles/external-vehicles.component';\r\nimport { CarrierDetailsComponent } from './permits/permit-application/shared/carrier-details/carrier-details.component';\r\nimport { CalendarViewerComponent } from './shared/calendar-viewer/calendar-viewer.component';\r\nimport { ListFreightTypeComponent } from './maintain/list-freight-type/list-freight-type.component';\r\nimport { EditFreightTypeComponent } from './maintain/edit-freight-type/edit-freight-type.component';\r\n\r\nimport { CarrierComplianceListComponent } from './compliance/carrier-compliance-list/carrier-compliance-list.component';\r\nimport { ComplianceReturnListComponent } from './compliance/compliance-return-list/compliance-return-list.component';\r\n\r\nimport {SupportComponent} from './support/support.component';\r\nimport { ComplianceApplicationComponent } from './compliance/compliance-application/compliance-application.component';\r\nimport { PrintingComponent } from './approval-manager/printing/printing.component';\r\nimport {AccountDepositComponent} from './PayGate/accountDeposit.component';\r\nimport {PaymentCompleteComponent} from './PayGate/PaymentComplete/paymentComplete.component'\r\nimport { FacebookpolicyComponent } from './facebookpolicy/facebookpolicy.component';\r\n\r\nimport { ListScannerComponent } from './maintain/list-scanner/list-scanner.component';\r\nimport { AddScannerComponent } from './maintain//add-scanner/add-scanner.component';\r\n\r\n\r\n\r\n\r\nconst appRoutes: Routes = [\r\n //Public routes\r\n\r\n // { path: '', redirectTo: 'home', pathMatch: 'full' },\r\n\r\n\r\n\r\n { path: 'home', component: HomeComponent },\r\n { path: '', component: LoginComponent, pathMatch: 'full' },\r\n { path: 'login', component: LoginComponent },\r\n { path: 'activate/:id', component: ActivateAccountComponent },\r\n { path: 'facebook-privacy', component: FacebookpolicyComponent },\r\n//AccountDeposit\r\n{ path: 'carrier/fundaccount/:id', component: AccountDepositComponent },\r\n{ path: 'carrier/paymentcomplete/:id/:status/:refNum', component: PaymentCompleteComponent},\r\n\r\n //Admin routes\r\n\r\n //{ path: 'statuses/edit/:id', component: StatusmanageComponent, canActivate: [AuthGuard], data: { Roles: ['SUPERUSER', 'ADMIN'] } },\r\n //VehicleTypeComponent\r\n { path: 'vehicle/type/add', component: VehicleTypeComponent },\r\n { path: 'vehicle/type/edit/:id', component: VehicleTypeComponent },\r\n { path: 'vehicle/type/list', component: ListVehicleTypeComponent },\r\n { path: 'freight/type/list', component: ListFreightTypeComponent },\r\n { path: 'freight/type/add', component:EditFreightTypeComponent},\r\n { path: 'freight/type/edit/:id', component:EditFreightTypeComponent},\r\n\r\n //VehicleMakeCompofnent\r\n { path: 'vehicle/make/add', component: VehicleMakeComponent },\r\n { path: 'vehicle/make/edit/:id', component: VehicleMakeComponent },\r\n { path: 'vehicle/make/list', component: ListVehicleMakeComponent },\r\n //PermitTypeComponent\r\n { path: 'permit/type/add', component: PermitTypeComponent },\r\n { path: 'permit/type/edit/:id', component: PermitTypeComponent },\r\n { path: 'permit/type/list', component: ListPermitTypeComponent },\r\n\r\n //StatusComponent\r\n { path: 'status/add', component: StatusComponent },\r\n { path: 'status/edit/:id', component: StatusComponent },\r\n { path: 'status/list', component: ListStatusComponent },\r\n\r\n //CarrierTypeComponent\r\n { path: 'carrier/type/add', component: CarrierTypeComponent },\r\n { path: 'carrier/type/edit/:id', component: CarrierTypeComponent },\r\n { path: 'carrier/type/list', component: ListCarrierTypeComponent },\r\n\r\n //CompanyDetails\r\n { path: 'carrier/companydetails/add', component: CompanydetailsComponent },\r\n { path: 'carrier/companydetails/edit/id', component: CompanydetailsComponent },\r\n { path: 'carrier/companydetails/list', component: CompanydetailsComponent },\r\n\r\n //TransportAssociation\r\n { path: 'transport/association/add', component: TransportAssociationComponent },\r\n { path: 'transport/association/edit/:id', component: TransportAssociationComponent },\r\n { path: 'transport/association/list', component: TransportAssociationListComponent },\r\n\r\n //CarrieAcoount\r\n { path: 'carrier/create/contact', component: CaContactPageComponent },\r\n\r\n //LoginComponent\r\n\r\n //RegisterComponent\r\n { path: 'register', component: RegisterComponent },\r\n { path: 'ammenduser', component: AmmenduserComponent },\r\n { path: 'forgot/username', component: UsernameComponent },\r\n { path: 'forgot', component: ForgotComponent },\r\n { path: 'reset', component: ResetComponent },\r\n //Carrier Account Management\r\n { path: 'carrier/accounts', component: CaLandingPageComponent },\r\n { path: 'carrier/accounts/:id', component: CaLandingPageComponent },\r\n { path: 'carrier/account/add', component: ManagementComponent },\r\n { path: 'carrier/account/edit/:id', component: ManagementComponent },\r\n { path: 'carrier/account/edit/:id/:status', component: ManagementComponent },\r\n { path: 'reset/confirm', component: ConfirmpasswordchangeComponent },\r\n\r\n //Carrier Transcations\r\n { path: 'carrier/statement/:id/:carrierid', component: StatementComponent },\r\n { path: 'carrier/invoice/:id/:referencenumber/:carrierid', component: InvoiceComponent },\r\n\r\n //Session Management\r\n { path: 'session/list', component: ListSessionComponent },\r\n //Scanner\r\n { path: 'scanner/list', component: ListScannerComponent },\r\n { path: 'scanner/add', component: AddScannerComponent },\r\n { path: 'scanner/edit/:id', component: AddScannerComponent },\r\n\r\n\r\n //Documents\r\n { path: 'carrier/account/document/:id', component: UploaddocumentComponent },\r\n { path: 'document/type/add', component: DocumentTypeComponent },\r\n { path: 'document/type/edit/:id', component: DocumentTypeComponent },\r\n { path: 'document/type/list', component: ListDocumentTypeComponent },\r\n\r\n //Contact Page\r\n { path: 'contact/details/add', component: CaContactPageComponent },\r\n\r\n //Permit Applications\r\n { path: 'carrier/permit/application/:id', component: PermitApplicationComponent },\r\n { path: 'carrier/permit/application/mypermits/:id', component: PermitListApplicationComponent },\r\n { path: 'carrier/permit/application/cancel/permit/:id/:appid', component: PermitListApplicationComponent },\r\n { path: 'carrier/permit/application/new/:id', component: NewPermitApplicationComponent },\r\n { path: 'carrier/permit/application/renew/:id/:crId/:type', component: RenewPermitComponent },\r\n { path: 'carrier/permit/application/edit/:id', component: NewPermitApplicationComponent },\r\n { path: 'carrier/permit/application/edit/:id/:isSelectedVehicle', component: NewPermitApplicationComponent },\r\n { path: 'carrier/permit/application/change/:id/:ctrlType', component: NewPermitApplicationComponent },\r\n { path: 'carrier/permit/application/change/:id/:ctrlType/:selectType', component: NewPermitApplicationComponent },\r\n { path: 'carrier/permit/application/change/:id/correction', component: NewPermitApplicationComponent },\r\n { path: 'carrier/permit/application/change/:id/vehicle/selected-vehicle', component: NewPermitApplicationComponent },\r\n { path: 'carrier/permit/application/duplicate/:id', component: NewPermitApplicationComponent },\r\n { path: 'carrier/permit/application/duplicate/edit/:id', component: NewPermitApplicationComponent },\r\n { path: 'carrier/permit/application/change/:id', component: NewPermitApplicationComponent },\r\n { path: 'carrier/process/permit/application/:id', component: PermitViewerComponent, canActivate: [AuthGuard]},\r\n { path: 'carrier/permit/application/view/:id', component: NewPermitApplicationComponent },\r\n { path: 'carrier/permit/application/view/:id/:constatus', component: NewPermitApplicationComponent },\r\n\r\n { path: 'carrier/permit/edit/:id/:edit', component: ViewPermitApplicationComponent },\r\n { path: 'carrier/documenttype/list', component: ListCarrierTypeDocumentComponent },\r\n { path: 'carrier/documenttype/add', component: CarrierTypeDocumentComponent },\r\n { path: 'carrier/documentttype/edit/:id', component: CarrierTypeDocumentComponent },\r\n\r\n { path: 'carrier-details', component: CarrierDetailsComponent },\r\n\r\n\r\n //Consultants\r\n { path: 'carrier/consultant/:id', component: ConsultantComponent },\r\n\r\n { path: 'route/management/add', component: AddRouteComponent },\r\n { path: 'route/management/list', component: ListRouteComponent },\r\n { path: 'route/management/edit/:id', component: AddRouteComponent },\r\n { path: 'permit/certificate/return', component: PermitCertificateReturnComponent },\r\n\r\n //Admin View Permits\r\n { path: 'maintain-view-permit', component: ViewPermitComponent },\r\n\r\n\r\n\r\n\r\n //Workflow\r\n { path: 'workflow/dashboard/list', component: WorkflowdashboardComponent },\r\n { path: 'approvals/permit/edit/:id', component: PermitViewerComponent },\r\n //Permit type document\r\n { path: 'permit/documenttype/list', component: ListPermitTypeDocumentComponent },\r\n { path: 'permit/documenttype/add', component: PermitTypeDocumentComponent },\r\n { path: 'permit/documentttype/edit/:id', component: PermitTypeDocumentComponent },\r\n\r\n\r\n\r\n\r\n //Permit type document\r\n { path: 'permit/documenttype/list', component: ListPermitTypeDocumentComponent },\r\n { path: 'permit/documenttype/add', component: PermitTypeDocumentComponent },\r\n { path: 'permit/documentttype/edit/:id', component: PermitTypeDocumentComponent },\r\n\r\n //approval-manager flow\r\n { path: 'permit/approval', component: ApprovalManagerComponent },\r\n { path: 'permit/approval/approved', component: ApprovalManagerComponent },\r\n { path: 'permit/approval/printed', component: ApprovalManagerComponent },\r\n { path: 'permit/approval/correspondence/:id', component: PermitCorrespondenceComponent },\r\n { path: 'permit/approval/view/:id', component: NewPermitApplicationComponent },\r\n { path: 'account/approval', component: ManagerComponent },\r\n { path: 'carrier/account/approval/:id', component: ManagerComponent, canActivate: [AuthGuard]},\r\n { path: 'carrier/approval/correspondence', component: CarriercorrespondenceComponent },\r\n { path: 'permit/approval/printing/:pId/:isapproved', component: PrintingComponent },\r\n //Admin Manage Countries\r\n { path: 'countries/list', component: ManageCountriesComponent },\r\n { path: 'countries/list/:type', component: ManageCountryPlacesComponent },\r\n { path: 'countries/add/:id', component: AddNewPlaceComponent },\r\n { path: 'countries/edit/:id/:placeId', component: AddNewPlaceComponent },\r\n //vehicle permit \r\n { path: 'permit/vehicletype/list', component: ListPermitTypeVehicleComponent },\r\n { path: 'permit/vehicles', component: ManageVehiclesComponent },\r\n { path: 'permit/my-vehicles/:appid', component: ManageVehiclesComponent },\r\n { path: 'permit/vehicle-replace/:appid', component: ManageVehiclesComponent },\r\n\r\n\r\n\r\n //Run maintanance tasks\r\n { path: 'maintenance/tasks', component: RunMaintenanceTasksComponent },\r\n { path: 'correspondence/tasks', component: RunCorrespondenceTasksComponent },\r\n\r\n //under-construction\r\n { path: 'under-construction', component: UnderConstructionComponent },\r\n\r\n //Correspondences\r\n { path: 'corspdc/list', component: CorspdcComponent },\r\n { path: 'corspdc/batch', component: BatchComponent },\r\n\r\n //Carrier account linking\r\n { path: 'carrier/account/link', component: LinkCarrierAccountComponent },\r\n { path: 'carrier/account/delink', component: DeLinkCarrierAccountComponent },\r\n { path: 'timetable', component: TimetableComponent },\r\n\r\n //extract views\r\n { path: 'data', component: ExtractViewsComponent },\r\n { path: 'data/run/extracts', component: RunExtractsComponent },\r\n { path: 'data/add/extract', component: AddDataExtractComponent },\r\n\r\n //External Vehicles\r\n {path:'carrier/externalvehicles', component:ExternalVehiclesComponent},\r\n { path: 'carrier/vehicle/list', component: ExternalVehiclesComponent },\r\n\r\n //Calendar Viewer\r\n { path: 'calendar/viewer', component: CalendarViewerComponent },\r\n\r\n //carrier compliace list CarrierComplianceListComponent\r\n {path:'carrier/compliance/list', component:CarrierComplianceListComponent},\r\n {path:'carrier/compliance/return/list', component:ComplianceReturnListComponent},\r\n {path:'carrier/compliance/return/list/:carrierid/:calendarid', component:ComplianceReturnListComponent},\r\n {path:'carrier/compliance/return/list/:carrierid/:calendarid/:action/:appId', component:ComplianceReturnListComponent},\r\n{ path: 'carrier/compliance/application',component:ComplianceApplicationComponent},\r\n {path:'support',component: SupportComponent},\r\n { path: '**', component: ErrorsComponent },\r\n\r\n \r\n \r\n\r\n];\r\n\r\nexport const appRouting: ModuleWithProviders = RouterModule.forRoot(appRoutes);\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-carrier-viewer',\r\n templateUrl: './carrier-viewer.component.html',\r\n styleUrls: ['./carrier-viewer.component.css']\r\n})\r\nexport class CarrierViewerComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","

\r\n carrier-viewer works!\r\n

\r\n","import { Component, OnInit, ViewChild, Input } from '@angular/core';\r\nimport { ActivatedRoute, Params, Router } from '@angular/router';\r\nimport { PopupService } from '../../services/shared/popup.service';\r\nimport { CurrencyFormat } from '../../pipes/currencyFormat.pipe';\r\nimport { CarrierService } from '../../services/carrier.service';\r\nimport { ApplicationService } from '../../services/application.service';\r\nimport { PermitService } from '../../services/permit.service';\r\nimport { AuthWebService } from 'app/services/authweb.service';\r\nimport { VehicleService } from '../../services/vehicle.service';\r\nimport { environment } from '../../../environments/environment';\r\nimport { AppVehicleComponent } from '../../permits/permit-application/shared/app-vehicle/app-vehicle.component'\r\nimport { UtilityServiceService } from '../../services/utility-service.service';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\n@Component({\r\n selector: 'permit-viewer',\r\n templateUrl: './permit-viewer.component.html',\r\n styleUrls: ['./permit-viewer.component.css'],\r\n providers: [CurrencyFormat]\r\n})\r\nexport class PermitViewerComponent implements OnInit {\r\n @Input('ctrlData') ctrlData: any;\r\n\r\n @ViewChild(AppVehicleComponent) vehicleComp:AppVehicleComponent;\r\n\r\n dataCntrl: any = { carrierID:-1, permittypeSelected:false, selectedtype:'', disableTypes:false, processStarted:false, currentTab:'', formValid:false, isViewEditControl:false, carrier: {}, application: {}, permit: {}, permittype: {}, vehicles:[],permitTypesDocLinks:[]};\r\n StartComplete:boolean;\r\n VehicleComplete:boolean;\r\n canSave:boolean;\r\n canSubmit:boolean;\r\n pageload:boolean;\r\n tabload: boolean;\r\n\r\n activeTab = 'permitype';\r\n disableTabs:boolean = true;\r\n myreference: '';\r\n username: any;\r\n iconCtrl = 1;\r\n disableBtn : boolean = false;\r\n isProcess : boolean = false;\r\n showMenuBtn:boolean=false;\r\n showPage: boolean;\r\n message = \"Loading, please wait...\";\r\n isLoading : boolean = false;\r\n isDupApplication: boolean = false;\r\n \r\n constructor(private router: Router, private activeRoute: ActivatedRoute, private showModal:PopupService,\r\n private carrierService: CarrierService, public currformat: CurrencyFormat,private authWebService: AuthWebService,\r\n public applicationService: ApplicationService, public permitService: PermitService,\r\n public vehicleService: VehicleService, public utility: UtilityServiceService,\r\n private toastr:ToastrService,private routr:Router) { }\r\n\r\n ngOnInit() {\r\n //console.log(this.router.url.indexOf('edit'))\r\n \r\n\r\n this.dataCntrl.currentTab = 'permitype'; \r\n this.utility.activeTab=1;\r\n this.utility.currentActive = 1;\r\n this.utility.permitType='permittype'\r\n this.utility.isView = false;\r\n if(this.router.url.indexOf('edit') < 0){\r\n\r\n if(environment.authWebApi.userData.Roles.find(p=>p.Code!='RGT')){\r\n this.activeRoute.params.subscribe((params: Params) => {\r\n this.dataCntrl.carrierID = params['id'];\r\n //console.log( params['id'])\r\n //console.log( this.dataCntrl.carrierID)\r\n \r\n \r\n \r\n });\r\n this.dataCntrl.currentTab = 'permitype';\r\n //this.getCarrier();\r\n if(environment.authWebApi.userData!=null && environment.authWebApi.userData!=undefined && environment.authWebApi.userData.hasOwnProperty('user')){\r\n this.username = environment.authWebApi.userData.User.Username;\r\n }\r\n }\r\n\r\n if(environment.authWebApi.userData.Roles.find(p=>p.Code!='ADMIN') ){\r\n this.activeRoute.params.subscribe((params: Params) => {\r\n this.dataCntrl.carrierID = params['id'];\r\n //console.log( params['id'])\r\n //console.log( this.dataCntrl.carrierID)\r\n \r\n\r\n\r\n });\r\n this.dataCntrl.currentTab = 'permitype';\r\n //this.getCarrier();\r\n if(environment.authWebApi.userData!=null && environment.authWebApi.userData!=undefined && environment.authWebApi.userData.hasOwnProperty('user')){\r\n this.username = environment.authWebApi.userData.User.Username;\r\n }\r\n }\r\n \r\n }\r\n if(this.router.url.indexOf('edit') > 0){\r\n this.activeRoute.params.subscribe((params: Params) => {\r\n if(environment.authWebApi.userData.Roles.find(p=>p.Code=='RGT')){\r\n this.disableBtn = true;\r\n //console.log('This is Admin')\r\n }\r\n\r\n if(environment.authWebApi.userData.Roles.find(p=>p.Code=='ADMIN')){\r\n this.disableBtn = true;\r\n //console.log('This is Admin')\r\n }\r\n });\r\n }\r\n if(this.router.url.indexOf('process') > 0){\r\n this.activeRoute.params.subscribe((params: Params) => {\r\n // this.ctrlData = this.dataCntrl;\r\n //console.log( params['id'])\r\n this.isLoading =true;\r\n this.applicationService.getById(params['id']).subscribe((data:any) =>{\r\n this.isDupApplication = data.permit_type.code == this.authWebService.userData.Configurations.find(x => x.Code == \"DupPermitAppCode1\").Value;\r\n this.dataCntrl.application = data;\r\n //console.log(this.dataCntrl.application);\r\n this.dataCntrl.carrierID = data.carrier_id;\r\n this.dataCntrl.permit_type_id=data.permit_type_id;\r\n this.dataCntrl.permit=data.permits;\r\n this.dataCntrl.permittype=data.permit_type;\r\n this.dataCntrl.vehicles=data.vehicle;\r\n this.isLoading =false;\r\n this.utility.carrierStatusId=data.carrier.status_id;\r\n if(environment.authWebApi.userData.Roles.find(p=>p.Code=='RGT')){\r\n this.isProcess = true;\r\n //console.log('This is process Admin')\r\n this.dataCntrl.currentTab = 'permitype';\r\n // this.ctrlData.currentTab = 'permitype';\r\n //this.getCarrier();\r\n this.showPage=true;\r\n \r\n }\r\n if(environment.authWebApi.userData.Roles.find(p=>p.Code=='ADMIN')){\r\n this.isProcess = true;\r\n //console.log('This is process Admin')\r\n this.dataCntrl.currentTab = 'permitype';\r\n // this.ctrlData.currentTab = 'permitype';\r\n //this.getCarrier();\r\n this.showPage=true;\r\n \r\n }\r\n });\r\n });\r\n \r\n }\r\n this.onActive();\r\n \r\n \r\n \r\n }\r\n showMenu(dropdown){\r\n this.showMenuBtn=!this.showMenuBtn\r\n }\r\n getApp(id){\r\n this.applicationService.getById(id).subscribe(data =>{\r\n //console.log(data);\r\n this.dataCntrl.application = data;\r\n \r\n })\r\n }\r\n getCarrier(){\r\n this.pageload = true;\r\n this.carrierService.getById(this.dataCntrl.carrierID).subscribe(result => {\r\n this.setCarrierData(result);\r\n this.pageload = false;\r\n }, error => {\r\n this.pageload = false;\r\n //console.log(error);\r\n });\r\n this.pageload = false;\r\n }\r\n\r\n setCarrierData(data){\r\n data.account_balance = data.account_balance != 0 ? this.currformat.transform(parseFloat(data.account_balance)) : 'R 0.00';\r\n this.dataCntrl.carrier = data;\r\n this.dataCntrl.application.carrier_id = data.id;\r\n this.dataCntrl.application.person_id = data.person_id;\r\n }\r\n cancel(){\r\n this.routr.navigateByUrl('permit/approval')\r\n }\r\n approve(){\r\n this.routr.navigateByUrl('permit/approval/correspondence')\r\n }\r\n tabChanged(tab){\r\n this.dataCntrl.currentTab = tab;\r\n this.disableButtons();\r\n switch (tab) {\r\n case 'permitype': {\r\n this.canSave = this.dataCntrl.permittypeSelected ? true : false;\r\n this.activeTab = tab;\r\n break;\r\n }\r\n case 'vehicle': {\r\n this.canSave = true;\r\n this.activeTab = tab;\r\n break;\r\n }\r\n case 'route': {\r\n this.canSave = true;\r\n this.activeTab = tab;\r\n break;\r\n }\r\n case 'motivation': {\r\n this.canSave = true;\r\n this.activeTab = tab;\r\n break;\r\n }\r\n case 'uploads': {\r\n this.canSave = true;\r\n this.activeTab = tab;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n disableButtons(){\r\n this.canSave = false;\r\n this.canSubmit = false;\r\n }\r\n\r\n onStart(){\r\n this.saveApplication();\r\n this.canSave = true;\r\n this.dataCntrl.processStarted = true;\r\n this.disableTabs = this.dataCntrl.permittypeSelected ? false : true;\r\n this.activeTab = 'vehicle';\r\n this.dataCntrl.currentTab = 'vehicle';\r\n }\r\n\r\n onCancel(){\r\n if(this.dataCntrl.processStarted==true && this.dataCntrl.application.id==undefined){\r\n this.showModal.showConfirm('Cancel Application', 'Are you sure you want to cancel?', `Your application has not been saved. If you continue to cancel without saving, you will loose all your data.`, 'Yes', 'No')\r\n .subscribe((isConfirmed) => {\r\n if (isConfirmed) {\r\n this.router.navigateByUrl(`/carrier/permit/application/${this.dataCntrl.carrierID}`);\r\n } else {\r\n return;\r\n }\r\n });\r\n }else{\r\n this.router.navigateByUrl(`/carrier/permit/application/${this.dataCntrl.carrierID}`);\r\n }\r\n }\r\n\r\n onSave(){\r\n switch (this.dataCntrl.currentTab) {\r\n case 'permitype': {\r\n if(this.dataCntrl.application.id == undefined){\r\n this.saveApplication();\r\n }else{\r\n this.showModal.showAlert('Save Application','Application saved successfully');\r\n }\r\n break;\r\n }\r\n case 'vehicle': {\r\n this.saveVehicles();\r\n break;\r\n }\r\n case 'route': {\r\n this.saveRoute();\r\n break;\r\n }\r\n case 'motivation': {\r\n this.saveMotivation();\r\n break;\r\n }\r\n case 'uploads': {\r\n if(this.dataCntrl.application.id == undefined){\r\n this.saveApplication();\r\n }else{\r\n this.showModal.showAlert('Save Application','Application saved successfully');\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n\r\n saveApplication() {\r\n this.tabload = true;\r\n this.dataCntrl.application.date_modified = this.dataCntrl.application.date_created = new Date();\r\n this.dataCntrl.application.user_modified = this.dataCntrl.application.user_created = this.username;\r\n this.applicationService.postApplication(this.dataCntrl.application)\r\n .subscribe((result:any) => {\r\n this.dataCntrl.application = result;\r\n this.dataCntrl.permit.permit_type_id = result.permit_type_id;\r\n this.dataCntrl.permit.application_id = result.id;\r\n this.savePermit();\r\n },\r\n error => {\r\n this.tabload = false;\r\n this.showModal.showError('Save Application', 'Failed to save application. If the problem persist, please contact system administrator.', error);\r\n \r\n return;\r\n });\r\n }\r\n\r\n savePermit(){\r\n this.dataCntrl.permit.date_modified = this.dataCntrl.permit.date_created = new Date();\r\n this.dataCntrl.permit.user_modified = this.dataCntrl.permit.user_created = this.username;\r\n this.dataCntrl.permit.permit_fee = this.dataCntrl.permittype.current_fee == null ? 0 : this.dataCntrl.permittype.current_fee ;\r\n this.dataCntrl.permit.application_fee = this.dataCntrl.permittype.current_application_fee == null ? 0 : this.dataCntrl.permittype.current_application_fee ;\r\n this.permitService.postPermit(this.dataCntrl.permit)\r\n .subscribe(result => {\r\n this.dataCntrl.permit = result;\r\n this.tabload = false;\r\n },\r\n error => {\r\n this.tabload = false\r\n this.showModal.showError('Save Application', 'Failed to save application. If the problem persist, please contact system administrator.', error);\r\n return;\r\n });\r\n }\r\n\r\n saveVehicles(){\r\n this.tabload = true;\r\n this.dataCntrl.vehicles.forEach(element => {\r\n element.permit_id = this.dataCntrl.permit.id;\r\n element.date_modified = element.date_created = new Date();\r\n element.user_modified = element.user_created = this.username;\r\n });\r\n if(this.dataCntrl.application.id == undefined){\r\n this.saveApplication();\r\n }else{\r\n this.vehicleService.postVehicle(this.dataCntrl.vehicles)\r\n .subscribe(result => {\r\n this.dataCntrl.vehicles = result;\r\n this.updateVehiclelist(result);\r\n ///this.toastr.success('Saved Step 1 Successfully','Step 1');\r\n },\r\n error => {\r\n this.tabload = false;\r\n this.showModal.showError('Save Application','Failed to save application. If the problem persist, please contact system administrator.',error);\r\n return;\r\n });\r\n }\r\n }\r\n\r\n updateVehiclelist(data){\r\n this.vehicleComp.listvehicles = data;\r\n this.tabload = false;\r\n //this.nextFrame();\r\n }\r\n\r\n saveRoute(){\r\n this.tabload = true;\r\n if(this.dataCntrl.application.id == undefined){\r\n this.saveApplication();\r\n }else{\r\n this.applicationService.putApplication(this.dataCntrl.application)\r\n .subscribe(result => {\r\n this.dataCntrl.application = result;\r\n this.tabload = false;\r\n this.showModal.showAlert('Save Application','Route saved successfully');\r\n },\r\n error => {\r\n this.tabload = false;\r\n this.showModal.showError('Save Application','Failed to save application. If the problem persist, please contact system administrator.',error);\r\n return;\r\n });\r\n }\r\n }\r\n\r\n saveMotivation(){\r\n this.tabload = true;\r\n if(this.dataCntrl.application.id == undefined){\r\n this.saveApplication();\r\n }else{\r\n this.applicationService.putApplication(this.dataCntrl.application)\r\n .subscribe(result => {\r\n this.dataCntrl.application = result;\r\n this.tabload = false;\r\n this.showModal.showAlert('Save Application','Motivation saved successfully');\r\n },\r\n error => {\r\n //console.log(error)\r\n this.tabload = false;\r\n this.showModal.showError('Save Application','Failed to save application. If the problem persist, please contact system administrator.',error);\r\n return;\r\n });\r\n }\r\n }\r\n onActive() {\r\n //this.iconCtrl = key;\r\n this.applicationService.getTab().subscribe(x => {\r\n //console.log(x);\r\n if(x > 0){\r\n this.utility.activeTab = x;\r\n }\r\n\r\n })\r\n}\r\nonActive1(tabNum){\r\n if(Object.keys(this.dataCntrl.permittype).length>0){\r\n if(this.dataCntrl.permit.hasOwnProperty('application_id') && this.dataCntrl.permit.application_id!=null){\r\n this.applicationService.setTab(tabNum);\r\n this.onActive();\r\n }else{\r\n this.toastr.warning('Please save and continue','Permit Type');\r\n }\r\n \r\n }else{\r\n if(tabNum!=1){\r\n this.toastr.warning('Please select your Permit Type ','Permit Type');\r\n this.applicationService.setTab(1);\r\n this.onActive();\r\n return false;\r\n }\r\n \r\n }\r\n \r\n}\r\n nextFrame = () => {\r\n this.utility.activeTab = 3;\r\n this.utility.confirmCtrl = true;\r\n this.iconCtrl = 3;\r\n }\r\n\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
    \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n","import { Component, OnInit, Input, Pipe, ViewChild, ElementRef } from '@angular/core';\r\nimport { PopupService } from '../../../services/shared/popup.service';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { ApplicationService } from 'app/services/application.service';\r\nimport { UtilityServiceService } from 'app/services/utility-service.service';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { PermitService } from 'app/services/permit.service';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { Router } from '@angular/router';\r\nimport { VehicleService } from 'app/services/vehicle.service';\r\n// import * as jsPDF from 'jspdf';\r\n// import 'jspdf-autotable';\r\nimport { CarrierService } from 'app/services/carrier.service';\r\nimport { CountryService } from 'app/services/country.service';\r\nimport { CurrencyFormat } from 'app/pipes/currencyFormat.pipe';\r\nimport { AuthWebService } from 'app/services/authweb.service';\r\nimport { accounting } from 'accounting';\r\nimport { DatePipe } from '@angular/common';\r\nimport { PermitTypeService } from 'app/services/permit-type.service';\r\nimport { CompliancereturnsService } from 'app/services/compliancereturns.service';\r\n\r\nvar jsPDF = require('jspdf');\r\nrequire('jspdf-autotable');\r\ndeclare var $;\r\n\r\n// @Pipe({name: 'safeHtml'})\r\n\r\n@Component({\r\n selector: 'confirmation-viewer',\r\n templateUrl: './confirmation-viewer.component.html',\r\n styleUrls: ['./confirmation-viewer.component.css']\r\n})\r\nexport class ConfirmationViewerComponent implements OnInit {\r\n\r\n public isLoading = false;\r\n helphtml;\r\n linkhtml;\r\n @Input() dataCntrl: any;\r\n userDetails:any = null;\r\n totalFee:number = 0;\r\n termsFlag:boolean=false;\r\n public pageload: boolean = false;\r\n public pageload2: boolean = false;\r\n enabledBtnsFlag:boolean=false;\r\n @ViewChild('content', { static: true }) content: ElementRef;\r\n status_id: number;\r\n email_body = \"\";\r\n decl_date = new Date();\r\n vehicles: any = [];\r\n pageload3: boolean = true;\r\n countries: any = {};\r\nlineTotal\r\n permitStatus1: any;\r\n permitStatus2: any;\r\n message: string = \"Loading. Please wait...\";\r\n money: string = \"color: red\";\r\n\r\n ptype: any = null;\r\n ptypeDays: any = null; \r\n ptypeMonth: any = null; \r\n ptypeYears: any = null;\r\n complianceCertficateList : any = [];\r\n\r\n constructor(private sanitizer: DomSanitizer,private showModal:PopupService,private toastr:ToastrService,\r\n private applicationService:ApplicationService,public utility: UtilityServiceService,private permitService:PermitService,\r\n private router:Router,private vehicleService:VehicleService,private datePipe:DatePipe, private carrierService:CarrierService,\r\n private countryService:CountryService,public currformat: CurrencyFormat,private authWebService: AuthWebService,private permittypeService: PermitTypeService,\r\n private complianceService:CompliancereturnsService) { }\r\n\r\n ngOnInit() {\r\n this.setHTMLDATA();\r\n this.userDetails = environment.authWebApi.userData.User;\r\n if(environment.authWebApi.systemData!=null && environment.authWebApi.systemData.Configurations!=null){\r\n this.permitStatus1 = environment.authWebApi.systemData.Configurations.find(p => p.Code == 'PermitStatus2').Value;\r\n this.permitStatus2 = environment.authWebApi.systemData.Configurations.find(p => p.Code == 'PermitStatus4').Value;\r\n }\r\n //console.log(this.permitStatus1);\r\n // this.totalFee = (this.dataCntrl['permit'].application_fee + this.dataCntrl['permit'].permit_fee)*this.dataCntrl['vehicles'].length;\r\n \r\n\r\n //console.log(this.dataCntrl);\r\n setTimeout(()=>{this.getApplication();},2000);\r\n\r\n this.getSavedVehicleByPermit(this.dataCntrl.application.id,'update');\r\n this.getCountries();\r\n \r\n }\r\n\r\n getComplianceCertificates(){\r\n //alert(this.dataCntrl.permits.length);\r\n this.complianceCertficateList = [];\r\n this.dataCntrl.permits.forEach((permit:any) => { \r\n this.complianceService.GetComplianceCertificatesById(permit.id).subscribe((c:any) =>{ \r\n \r\n if(c.length > 0)\r\n {\r\n c.forEach(cert => {\r\n this.complianceCertficateList.push(cert);\r\n });\r\n }\r\n \r\n \r\n });\r\n });\r\n \r\n }\r\n checkTerms(event){\r\n if(event.target.checked){\r\n this.termsFlag=true;\r\n }else{\r\n this.termsFlag=false;\r\n }\r\n }\r\n getApplication(){\r\n this.pageload = true;\r\n this.utility.permitAppId=this.dataCntrl.application.id;\r\n if(this.dataCntrl.application.id !== null && this.dataCntrl.application.id !== undefined){\r\n this.applicationService.getById(this.dataCntrl.application.id).subscribe((data:any) =>{\r\n this.pageload = true;\r\n //console.log(data.vehicle);\r\n \r\n this.dataCntrl.application = data;\r\n //console.log(this.dataCntrl.application);\r\n this.dataCntrl.carrierID = data.carrier_id;\r\n this.utility.carrierId=data.carrier_id;\r\n this.dataCntrl.permit_type_id=data.permit_type_id;\r\n // alert(JSON.stringify(data.permits));\r\n this.dataCntrl.permits = data.permits;\r\n this.dataCntrl.permittype=data.permit_type;\r\n this.utility.permitStatusId=data.status_id;\r\n this.utility.permitFreightId=data.permit_type.freight_passenger_ind;\r\n //setTimeout(()=>{\r\n //this.dataCntrl.vehicles=data.vehicle;\r\n \r\n // this.dataCntrl['permit'].forEach(perm=> {\r\n // this.lineTotal = (perm.application_fee + perm.permit_fee);\r\n // this.totalFee += this.lineTotal;\r\n // });\r\n // this.totalFee = (this.dataCntrl['permit'].application_fee + this.dataCntrl['permit'].permit_fee)*this.dataCntrl.vehicles.length;\r\n // //console.log(this.formatCurrency(this.totalFee))\r\n //this.lineTotal = (this.dataCntrl['permit'].application_fee + this.dataCntrl['permit'].permit_fee);\r\n // this.lineTotal = this.formatCurrency(this.lineTotal);\r\n // this.totalFee = this.formatCurrency(this.totalFee);\r\n this.pageload = false;\r\n this.getCarrier();\r\n this.getCorrectionPermitType();\r\n //},3000);\r\n \r\n if(this.dataCntrl.permittype.annual_compliance_reqd)\r\n {\r\n // alert('yes')\r\n this.getComplianceCertificates();\r\n }\r\n \r\n }, error => {\r\n this.pageload = false;\r\n //console.log(error);\r\n })\r\n }else{\r\n \r\n //this.vehicles=this.dataCntrl.vehicles;\r\n //setTimeout(()=>{\r\n // this.totalFee = (this.dataCntrl['permit'].application_fee + this.dataCntrl['permit'].permit_fee)*this.dataCntrl.vehicles.length;\r\n // // //console.log(this.formatCurrency(this.totalFee))\r\n // this.lineTotal = (this.dataCntrl['permit'].application_fee + this.dataCntrl['permit'].permit_fee);\r\n // this.lineTotal = this.formatCurrency(this.lineTotal);\r\n // this.totalFee = this.formatCurrency(this.totalFee);\r\n this.getCarrier();\r\n this.getCorrectionPermitType();\r\n //},3000);\r\n \r\n }\r\n this.pageload = false;\r\n }\r\nformatCurrency(value) {\r\n return accounting.formatMoney(value, 'R', 2, ' ', '.');\r\n}\r\n getCarrier(){\r\n this.pageload = true;\r\n this.carrierService.getById(this.dataCntrl.carrierID).subscribe(result => {\r\n this.setCarrierData(result);\r\n this.pageload = false;\r\n }, error => {\r\n this.pageload = false;\r\n //console.log(error);\r\n });\r\n this.pageload = false;\r\n }\r\n getCorrectionPermitType(){\r\n this.pageload = true;\r\n this.permittypeService.getById(this.dataCntrl['permit'].permit_type_id).subscribe((type:any) =>{\r\n this.ptype = type;\r\n //console.log(this.ptype);\r\n if(type.permit_days > 0){\r\n this.ptypeDays = type.permit_days;\r\n }\r\n if(type.permit_months > 0){\r\n this.ptypeMonth = type.permit_months;\r\n }\r\n if(type.permit_years > 0){\r\n this.ptypeYears = type.permit_years;\r\n }\r\n this.pageload2 = false;\r\n } ,error =>{\r\n this.pageload2 = false;\r\n })\r\n }\r\n\r\n setCarrierData(data){\r\n // Country\r\n let thisCountry = this.countries.find(x => x.id == data.country_id);\r\n data.country_dial_code = thisCountry.dial_code;\r\n data.country_description = thisCountry.desc;\r\n data.country_code = thisCountry.code;\r\n\r\n // Account Balance\r\n data.account_balance = data.account_balance * -1;\r\n let colr = data.account_balance > 0? \"green\" : \"red\";\r\n document.getElementById(\"Money\").style.color = colr;\r\n data.account_balance = data.account_balance == 0? \"R 0.00\" : this.currformat.transform(parseFloat(data.account_balance)) ;\r\n\r\n this.dataCntrl.carrier = data;\r\n //console.log(this.dataCntrl.carrier);\r\n }\r\n\r\n getCountries() {\r\n this.pageload = true;\r\n this.countryService.listAllCountries().subscribe(result => {\r\n this.countries = result;\r\n this.pageload = false;\r\n });\r\n }\r\n\r\n saveConfirmation(){\r\n this.pageload = true;\r\n if(!this.termsFlag){\r\n this.pageload = false;\r\n return this.toastr.warning('Please agree the terms');\r\n }\r\n this.permitService.sendEmail(this.userDetails.EmailAddress).subscribe(result => {\r\n //console.log(result);\r\n this.pageload = false;\r\n this.isLoading = false;\r\n if (result == true) {\r\n this.retrieveSubmitStatus();\r\n \r\n\r\n //this.dialogService.addDialog(AlertComponent, { title: `Carrier Account Submission`, message: `Carrier Account with registration number ${this.caConfirmObj.registration_number} submitted successfully.`, bold: `${this.caConfirmObj.registration_number}` });\r\n //this.utility.activeTab = 1;\r\n } else {\r\n this.pageload = false;\r\n this.toastr.error(`Submission for failed.Please contact the system administrator if the problem persists.`);\r\n }\r\n }, error => {\r\n this.pageload = false;\r\n this.isLoading = false;\r\n this.toastr.error(`Submission for failed.Please contact the system administrator if the problem persists.`);\r\n //this.dialogService.addDialog(AlertComponent, { title: `Carrier Account Submission`, message: `Submission for ${this.caConfirmObj.registration_number} failed.Please contact the system administrator if the problem persists.`, bold: `${obj.registered_name}` });\r\n });\r\n }\r\n setHTMLDATA(){\r\n if(environment.authWebApi.systemData!=null){\r\n let link = environment.authWebApi.systemData.Configurations.find(p=>p.Code=='HTMLDec2');\r\n this.linkhtml = this.sanitizer.bypassSecurityTrustHtml(link.Value);\r\n }\r\n }\r\n retrieveSubmitStatus(){\r\n if (this.authWebService.userData) {\r\n this.pageload = true;\r\n this.status_id =+ environment.authWebApi.systemData.Configurations.find(config => config.Code == \"AccountStatus2\").Value;\r\n this.dataCntrl.application.status_id = this.status_id;\r\n this.dataCntrl.application.submission_date = new Date();\r\n \r\n this.applicationService.putApplication(this.dataCntrl.application)\r\n .subscribe(result => {\r\n //console.log(result);\r\n this.toastr.success(`Your permit application was submitted successfully.`,'Permit Application');\r\n this.router.navigate(['/carrier/permit/application/'+this.dataCntrl.carrierID]);\r\n this.pageload = false;\r\n },\r\n error => {\r\n //console.log(error);\r\n this.pageload = false;\r\n\r\n // this.toastr.error('Failed to save application. If the problem persist, please contact system administrator.','Save Application')\r\n\r\n // this.showModal.showError('Save Application','Failed to save application. If the problem persist, please contact system administrator.',error);\r\n return;\r\n });\r\n }\r\n }\r\n downloadPdf(){\r\n var img = new Image()\r\n img.src = '/assets/banner1.png';\r\n let doc = new jsPDF();\r\n doc.addImage(img, 'png', 0, 0, 220, 50);\r\n doc.fromHTML($(\"#confirm-content-1\").html(), 10, 50, {\r\n width: 500\r\n });\r\n doc.autoTable({html: '#pdfTable',\r\n margin: {top: 90},\r\n columnStyles: {\r\n 'Reg #': {columnWidth: 100}\r\n }});\r\n doc.save('permitApplication.pdf');\r\n }\r\n\r\n\r\n // cancelApplication(){\r\n // if(this.dataCntrl.application.id==undefined && this.dataCntrl.application.id==null){\r\n // this.router.navigate(['/carrier/permit/application/'+this.dataCntrl.carrierID]);\r\n // }else{\r\n // this.showModal.showConfirm('Delete Application', 'Are you sure you want to delete?', `You're about to delete application`, 'Yes', 'No')\r\n // .subscribe((isConfirmed) => {\r\n // if (isConfirmed) {\r\n // this.deleteApplication()\r\n // } else {\r\n // return;\r\n // }\r\n // });\r\n // }\r\n // }\r\n// deleteApplication(){\r\n// //console.log(\"delete application\");\r\n// this.pageload = true;\r\n\r\n// this.permitService.deletePermit(this.dataCntrl.permit.id).subscribe(x =>{\r\n// //console.log(x);\r\n// this.deleteApp(this.dataCntrl.application.id);\r\n// this.pageload = false;\r\n\r\n// this.router.navigate(['/carrier/permit/application/'+this.dataCntrl.carrierID]);\r\n\r\n// })\r\n// //this.dataCntrl.application.id\r\n// //this.dataCntrl.permit.id\r\n// }\r\n // deletePermit(id){\r\n // this.pageload = true;\r\n // this.permitService.deletePermit(id).subscribe(x =>{\r\n // this.pageload = false;\r\n // //console.log(x);\r\n // })\r\n\r\n // }\r\n // deleteApp(id){\r\n // this.pageload = true;\r\n // this.applicationService.deleteApplication(id).subscribe(x =>{\r\n // this.pageload = false;\r\n // //console.log(x);\r\n // })\r\n // }\r\n getSavedVehicleByPermit(appId,loadType){\r\n this.pageload2 = true;\r\n this.vehicles = [];\r\n \r\n this.permitService.getAllPermitsByApplicationId(appId).subscribe((data:any) =>{\r\n // this.pageload2 = true;\r\n \r\n //console.log(data.filter(i => i.application_id ==appId))\r\n let permits = data.filter(i => i.application_id ==appId);\r\n this.vehicleService.getPermitsAppVecle(appId).subscribe((x:any)=>{\r\n this.vehicles=[];\r\n if(permits.length > 0){\r\n for(let p = 0;p < permits.length;p++){\r\n //console.log(permits[p].id)\r\n \r\n //console.log(x.filter(i => i.permit_id == permits[p].id))\r\n let allVeh = x.filter(i => i.permit_id == permits[p].id);\r\n //console.log(allVeh.length)\r\n for(let v = 0;v< allVeh.length;v++){\r\n let myPerm = this.dataCntrl['permit'].find(element => element.id == allVeh[v].permit_id);\r\n this.vehicleService.getAllVe(allVeh[v].permit_id).subscribe((vehicles:any)=>{\r\n //console.log(vehicles)\r\n let object = {\r\n id: vehicles.id,\r\n vehicle_type_id: vehicles.vehicle_type_id,\r\n vehicle_make_id: vehicles.vehicle_make_id,\r\n vehicle_make: vehicles.vehicle_make,\r\n vehicle_type:vehicles.vehicle_type,\r\n is_current: false,\r\n registration_number: vehicles.registration_number,\r\n seating_capacity:vehicles.seating_capacity,\r\n gvn: vehicles.gvn,\r\n vin: vehicles.vin,\r\n date_license_expiry: this.datePipe.transform(vehicles.date_license_expiry,'dd/MM/yyyy'),\r\n start_date:this.datePipe.transform(vehicles.start_date,'dd/MM/yyyy'),\r\n editMode:false,\r\n application_fee : myPerm.application_fee,\r\n permit_fee : myPerm.permit_fee,\r\n lineTotal : myPerm.application_fee + myPerm.permit_fee\r\n }\r\n this.totalFee += object.lineTotal;\r\n \r\n //console.log(object)\r\n // if(this.vehicles.length === data.vehicle.length){\r\n // //console.log('Its 0')\r\n // this.vehicles = this.dataCntrl.vehicles ;\r\n // this.pageload = false;\r\n \r\n // return;\r\n // }\r\n this.vehicles.push(object);\r\n this.pageload = false;\r\n //console.log(this.vehicles)\r\n \r\n this.dataCntrl.vehicles = this.vehicles;\r\n });\r\n \r\n }\r\n this.pageload = false;\r\n \r\n }\r\n }else{\r\n this.pageload = false;\r\n \r\n }\r\n \r\n // this.newvehicles.push(x)\r\n // //console.log(this.newvehicles)\r\n // this.dataCntrl.vehicles = this.newvehicles\r\n // // this.vehicles = this.dataCntrl.vehicles;\r\n \r\n \r\n \r\n })\r\n \r\n this.pageload = true;\r\n });\r\n //this.pageload = true;\r\n //\r\n }\r\n}\r\n","
\r\n \r\n \r\n\r\n
\r\n
\r\n

\r\n \r\n Permit Approval : {{dataCntrl['permittype'].description}}\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

\r\n \r\n 1. Carrier Details\r\n

\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Carrier Number : {{dataCntrl['carrier'].carrier_code}}
Carrier Name : {{dataCntrl['carrier'].name}}
Telephone No. : +{{dataCntrl['carrier'].country_dial_code}} {{dataCntrl['carrier'].telephone}}({{dataCntrl['carrier'].country_code}}) {{dataCntrl['carrier'].telephone}}
Email Address : {{dataCntrl['carrier'].email}}
\r\n
\r\n
\r\n
\r\n
\r\n
Physical Address
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Street Name : {{dataCntrl['carrier'].physical_address_1}}
Town : {{dataCntrl['carrier'].physical_address_town}}
Postal Code : {{dataCntrl['carrier'].physical_post_code}}
Country : {{dataCntrl['carrier'].country_description}}
\r\n
\r\n
\r\n\t\t\t
\r\n
\r\n
\r\n

2. Permit Details

\r\n
\r\n\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n
Application Date: {{dataCntrl['application'].date_created | date :'dd/MM/yyyy'}}
Account Balance: {{dataCntrl['carrier'].account_balance}}
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n
Permit TypeStart DateDurationVehicle RegVehice TypeVIN NumberApplication FeePermit FeeLine Total
{{dataCntrl['permittype'].description}}{{list.start_date}} 0\">{{dataCntrl['permittype'].permit_years}} - Years 0\">{{dataCntrl['permittype'].permit_months}} - Months 0\">{{dataCntrl['permittype'].permit_days}} - Days 0\">{{ptypeYears}} - Years 0\">{{ptypeMonth}} - Months 0\">{{ptypeDays}} - Days{{list.registration_number}}{{list.vehicle_type}}{{list.vin}}{{formatCurrency(list.application_fee)}}{{formatCurrency(list.permit_fee)}}{{formatCurrency(list.lineTotal)}}
Total : {{formatCurrency(totalFee) }}
\r\n
\r\n
\r\n
\r\n

2.1 Annual Compliance Details

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n
Permit TypeEnd DateYearVehicle RegVehice TypeVIN NumberStatusApplication FeePermit FeeLine Total
{{clist.PermitType}}{{clist.ComplianceEndDate | date:'dd/MM/yyyy'}}{{clist.Year}}{{clist.RegistrationNumber}}{{clist.vehicle_type}}{{clist.Vin}}{{clist.ComplianceStatusDescription}}{{formatCurrency(clist.ApplicationFee)}}{{formatCurrency(clist.PermitFee)}}{{formatCurrency(clist.ApplicationFee + clist.PermitFee)}}
\r\n
\r\n\r\n\r\n
\r\n

3. Route Details

\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n

3.1 Time Table Details

\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n

4. Motivation

\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n

5. Supporting Documents

\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n

6. Compliance Documents

\r\n
\r\n
\r\n
\r\n
Permit Number: {{comps.PermitNumber}} | Vehicle: {{comps.RegistrationNumber}} | Compliance Year: {{comps.Year}}
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { FormControl, Validators, FormGroup, FormBuilder } from '@angular/forms';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { ApplicationService } from 'app/services/application.service';\r\nimport { PopupService } from '../../../services/shared/popup.service';\r\nimport { Router, ActivatedRoute, Params } from '@angular/router';\r\nimport { PermitService } from 'app/services/permit.service';\r\nimport { VehicleService } from 'app/services/vehicle.service';\r\n\r\n@Component({\r\n selector: 'motivation-viewer',\r\n templateUrl: './motivation-viewer.component.html',\r\n styleUrls: ['./motivation-viewer.component.css']\r\n})\r\nexport class MotivationViewerComponent implements OnInit {\r\n @Input() dataCntrl: any;\r\n\r\n form: FormGroup;\r\n model : any = [];\r\n tabload:boolean=false;\r\n public pageload = false;\r\n disableBtn : boolean = false;\r\n\r\n constructor(private formBuilder: FormBuilder,private toastr: ToastrService,\r\n private showModal:PopupService,public applicationService: ApplicationService,\r\n private router:Router,private permitService:PermitService,private vehicleService:VehicleService,private activeRoute: ActivatedRoute) { }\r\n\r\n ngOnInit() {\r\n if(this.router.url.indexOf('edit') > 0){\r\n this.activeRoute.params.subscribe((params: Params) => {\r\n this.dataCntrl.application.id= params['id'];\r\n if(environment.authWebApi.userData.Roles.find(p=>p.Code=='ADMIN')){\r\n this.disableBtn = true;\r\n //console.log('This is Admin')\r\n }\r\n });\r\n }\r\n this.initForm();\r\n this.model = this.dataCntrl;\r\n }\r\n\r\n initForm() {\r\n this.form = this.formBuilder.group({\r\n motivation: ['', [Validators.required]]\r\n });\r\n }\r\n \r\n changes(){\r\n this.form.statusChanges.subscribe(\r\n result => {\r\n this.dataCntrl.formValid = result == 'VALID'? true : false \r\n } \r\n );\r\n }\r\n saveMotivation(){\r\n this.pageload = true;\r\n this.tabload = true;\r\n if(this.dataCntrl.application.id == undefined){\r\n //this.saveApplication();\r\n }else{\r\n this.applicationService.putApplication(this.dataCntrl.application)\r\n .subscribe(result => {\r\n this.pageload = false;\r\n this.dataCntrl.application = result;\r\n this.tabload = false;\r\n this.toastr.success('Save Application','Motivation saved successfully');\r\n this.applicationService.setTab(5);\r\n },\r\n error => {\r\n //console.log(error)\r\n this.tabload = false;\r\n // this.showModal.showError('Save Application','Failed to save application. If the problem persist, please contact system administrator.',error);\r\n this.toastr.error('Failed to save application. If the problem persist, please contact system administrator.','Save Application')\r\n return;\r\n });\r\n }\r\n }\r\n backtoRoutes(){\r\n this.applicationService.setTab(3);\r\n }\r\n cancelApplication(){\r\n if(this.dataCntrl.application.id==undefined && this.dataCntrl.application.id==null){\r\n this.router.navigate(['/carrier/permit/application/'+this.dataCntrl.carrierID]);\r\n }else{\r\n this.showModal.showConfirm('Delete Application', 'Are you sure you want to delete?', `You're about to delete application`, 'Yes', 'No')\r\n .subscribe((isConfirmed) => {\r\n if (isConfirmed) {\r\n this.deleteApplication()\r\n } else {\r\n return;\r\n }\r\n });\r\n }\r\n }\r\n deleteApplication(){\r\n //console.log(\"delete application\");\r\n this.pageload = true;\r\n\r\n this.permitService.deletePermit(this.dataCntrl.permit.id).subscribe(x =>{\r\n //console.log(x);\r\n this.deleteApp(this.dataCntrl.application.id);\r\n this.pageload = false;\r\n\r\n this.router.navigate(['/carrier/permit/application/'+this.dataCntrl.carrierID]);\r\n\r\n })\r\n//this.dataCntrl.application.id\r\n//this.dataCntrl.permit.id\r\n }\r\n deletePermit(id){\r\n this.permitService.deletePermit(id).subscribe(x =>{\r\n //console.log(x);\r\n })\r\n\r\n }\r\n deleteApp(id){\r\n this.applicationService.deleteApplication(id).subscribe(x =>{\r\n //console.log(x);\r\n })\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n","import { Component, OnInit, Input, ViewEncapsulation } from '@angular/core';\r\nimport { PopupService } from '../../../services/shared/popup.service';\r\nimport { PermitTypeService } from '../../../services/permit-type.service';\r\nimport { CurrencyFormat } from '../../../pipes/currencyFormat.pipe';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { ApplicationService } from 'app/services/application.service';\r\nimport { PermitService } from 'app/services/permit.service'\r\nimport { ActivatedRoute, Router, Params } from '@angular/router';\r\nimport { UtilityServiceService } from 'app/services/utility-service.service';\r\nimport { Account } from 'app/constants/account.enum';\r\nimport { Subject } from 'rxjs';\r\nimport { CarrierService } from 'app/services/carrier.service';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'permit-type-viewer',\r\n templateUrl: './permit-type-viewer.component.html',\r\n styleUrls: ['./permit-type-viewer.component.css'],\r\n providers: [PermitTypeService, PopupService, CurrencyFormat],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class PermitTypeViewerComponent implements OnInit {\r\n @Input('ctrlData') ctrlData: any;\r\n\r\n permittype: any = [];\r\n selectedIndex:any;\r\n editMode:boolean;\r\n disableTypes:boolean = false;\r\n pageload: boolean;\r\n helphtml;\r\n linkhtml;\r\n vehicleTerm:any=\"\";\r\n vehicleType:any=\"\";\r\n permitType:any=\"\";\r\n referenceNum:any=\"\";\r\n selectedPermit:any = null;\r\n selectedPermitId:any=\"\";\r\n tabload:boolean=false;\r\n private activeTab = new Subject();\r\n\r\ndefaultValue: string;\r\n\r\n constructor(private sanitizer: DomSanitizer,\r\n public currformat: CurrencyFormat, private showModal:PopupService,\r\n private permitTypeService: PermitTypeService,\r\n public applicationService: ApplicationService,private route: ActivatedRoute,\r\n public utility: UtilityServiceService,private toastr: ToastrService,private router:Router,\r\n private permitService:PermitService,private activeRoute: ActivatedRoute,private carrierService: CarrierService) { }\r\n\r\n ngOnInit() {\r\n \r\n this.utility.confirmCtrl = false;\r\n //console.log(this.ctrlData);\r\n \r\n this.getPermitType();\r\n this.setHTMLDATA();\r\n if(this.ctrlData.data.id!=undefined && this.ctrlData.data.id!=null){\r\n this.vehicleType=this.ctrlData.vehicleType;\r\n this.vehicleTerm=this.ctrlData.vehicleTerm;\r\n this.referenceNum=this.ctrlData.data.reference_num;\r\n //console.log(this.referenceNum);\r\n this.selectedPermit=this.ctrlData.data.permit_type;\r\n //console.log(this.selectedPermit.id);\r\n this.selectedPermitId=this.selectedPermit.id;\r\n //console.log(this.ctrlData.permitSelectIndex);\r\n }\r\n //if(this.router.url.indexOf('edit') > 0){\r\n // this.activeRoute.params.subscribe((params: Params) => {\r\n // this.ctrlData.application.id= params['id'];\r\n // });\r\n this.getApplication();\r\n //}\r\n }\r\n getCarrier(){\r\n this.pageload = true;\r\n this.carrierService.getById(this.ctrlData.data.carrier.id).subscribe(result => {\r\n this.setCarrierData(result);\r\n this.pageload = false;\r\n }, error => {\r\n this.pageload = false;\r\n //console.log(error);\r\n });\r\n }\r\n setCarrierData(data){\r\n data.account_balance = data.account_balance != 0 ? this.currformat.transform(parseFloat(data.account_balance)) : 'R 0.00';\r\n this.ctrlData.carrier = data;\r\n //console.log(this.ctrlData.carrier);\r\n }\r\n getApplication(){\r\n //console.log(\"getApplication\");\r\n //console.log(this.ctrlData.data.id);\r\n if(this.ctrlData.data.id !== null && this.ctrlData.data.id !== undefined){\r\n this.applicationService.getById(this.ctrlData.data.id).subscribe((data:any) =>{\r\n //console.log(data.permit);\r\n this.ctrlData.permit = data.permit;\r\n this.ctrlData.application = data;\r\n this.ctrlData.carrierId = data.carrier_id;\r\n this.ctrlData.permit.id = data.permit.id\r\n this.referenceNum = data.reference_num;\r\n this.ctrlData.application.permit_type_id = data.permit_type_id;\r\n this.getPermitTypeForEdit(data.permit_type_id);\r\n })\r\n }\r\n \r\n }\r\n\r\n getPermitTypeForEdit(id){\r\n this.permitTypeService.getById(id).subscribe((x:any) => {\r\n //console.log(\" start received permit\");\r\n //console.log(x);\r\n //console.log(\" end received permit\");\r\n this.ctrlData.permittype=x;\r\n // this.dataCntrl.permit = x;\r\n this.defaultValue = x.description;\r\n this.vehicleTerm = x.temp_long_ind;\r\n this.vehicleType = x.freight_passenger_ind;\r\n this.ctrlData.selectedtype = x.code+'-'+x.description\r\n this.ctrlData.permittypeSelected = true;\r\n this.selectedPermitId = x.id;\r\n let indexVal:any=document.getElementById(\"idCtype\") as HTMLSelectElement;\r\n if(indexVal!=null){\r\n //console.log(indexVal.selectedIndex);\r\n this.ctrlData.permitSelectIndex=indexVal.selectedIndex;\r\n }\r\n //console.log(this.defaultValue)\r\n this.utility.confirmCtrl = true;\r\n \r\n })\r\n }\r\n\r\n getPermitType() {\r\n this.pageload = true;\r\n this.permitTypeService.getAll().subscribe(result => {\r\n ////console.log(result);\r\n this.permittype = result;\r\n // this.setPermitData(result)\r\n setTimeout(()=>{\r\n //console.log(this.ctrlData.data.permit_type_id);\r\n var indexVal1:any=document.getElementById(\"idCtype\") as HTMLSelectElement;\r\n if(indexVal1!=undefined && indexVal1!=\"\" && indexVal1!=null){\r\n indexVal1.selectedIndex=this.ctrlData.data.permit_type_id;\r\n }\r\n },100);\r\n this.setHTMLDATA()\r\n this.pageload = false;\r\n }, error => {\r\n this.pageload = false;\r\n //console.log(error);\r\n });\r\n }\r\n\r\n onChange(){\r\n //console.log(this.selectedPermit);\r\n this.ctrlData.permittypeSelected = true;\r\n this.ctrlData.data.permit_type_id = this.selectedPermit.id;\r\n this.ctrlData.selectedtype = this.selectedPermit.code+'-'+this.selectedPermit.description;\r\n this.ctrlData.permittype=this.selectedPermit;\r\n this.selectedPermitId=this.selectedPermit.id;\r\n let indexVal:any=document.getElementById(\"idCtype\") as HTMLSelectElement;\r\n if(indexVal!=null){\r\n //console.log(indexVal.selectedIndex);\r\n this.ctrlData.data.permit_type_id=indexVal.selectedIndex;\r\n }\r\n }\r\n\r\n setPermitData(data){\r\n data.forEach(element => {\r\n element.fee = this.currformat.transform(parseFloat(element.current_fee));\r\n });\r\n // this.permittype = data;\r\n\r\n if(this.ctrlData.isViewEditControl == true){\r\n this.editMode = this.ctrlData.editMode;\r\n // this.setSelectedType();\r\n }\r\n }\r\n\r\n setHTMLDATA(){\r\n\r\n if(environment.authWebApi.systemData!=null){\r\n let link = environment.authWebApi.systemData.Configurations.find(p=>p.Code=='iCBMSLinks2');\r\n let help = environment.authWebApi.systemData.Configurations.find(p=>p.Code=='iCBMSLand2');\r\n this.linkhtml = this.sanitizer.bypassSecurityTrustHtml(link.Value);\r\n this.helphtml = this.sanitizer.bypassSecurityTrustHtml(help.Value);\r\n }\r\n }\r\n\r\n setSelectedType(){\r\n this.selectedIndex = this.permittype.findIndex(p=>p.id == 11);\r\n }\r\n\r\n onSelectType(index,item){\r\n {\r\n this.selectedIndex = index;\r\n this.ctrlData.permittypeSelected = true;\r\n this.ctrlData.application.permit_type_id = item.id;\r\n this.ctrlData.selectedtype = `${item.code} - ${item.description}`;\r\n this.ctrlData.permittype = item;\r\n }\r\n }\r\n\r\n selectVehicleTerm(termVal){\r\n this.vehicleTerm=termVal;\r\n this.ctrlData.vehicleTerm=this.vehicleTerm;\r\n }\r\n selectVehicleType(typeVal){\r\n //console.log(typeVal)\r\n this.vehicleType=typeVal;\r\n this.ctrlData.vehicleType=this.vehicleType;\r\n }\r\n\r\n myRef(reference){\r\n //console.log(reference)\r\n this.referenceNum = reference;\r\n }\r\n saveApplication() {\r\n this.pageload = true;\r\n\r\n this.ctrlData.application.date_modified = this.ctrlData.application.date_created = new Date();\r\n this.ctrlData.application.user_modified = this.ctrlData.application.user_created = environment.authWebApi.userData.User.FirstName;\r\n this.ctrlData.application.reference_num = this.referenceNum;\r\n// if(this.dataCntrl.permit.permit_type_id === undefined){\r\n// this.pageload = false;\r\n// return this.toastr.warning('Please select Permit Type first!','Permit Type');\r\n// }\r\n//console.log(this.ctrlData.permit);\r\n//console.log(this.ctrlData.application)\r\nif(this.ctrlData.application.id==undefined && this.ctrlData.application.id==null){\r\n this.applicationService.postApplication(this.ctrlData.application)\r\n .subscribe((result:any) => {\r\n this.ctrlData.application = result;\r\n this.ctrlData.permit.permit_type_id = result.permit_type_id;\r\n this.ctrlData.permit.application_id = result.id;\r\n this.savePermit();\r\n this.pageload = false;\r\n\r\n\r\n\r\n },\r\n error => {\r\n // this.tabload = false;\r\n this.toastr.error('Save Application', 'Failed to save application. If the problem persist, please contact system administrator.', error)\r\n\r\n // this.showModal.showError('Save Application', 'Failed to save application. If the problem persist, please contact system administrator.', error);\r\n return;\r\n });\r\n}else{\r\n //console.log(this.ctrlData.permit);\r\n\r\n this.updateApplication();\r\n this.updatePermit();\r\n this.pageload = false;\r\n\r\n}\r\n\r\n }\r\n\r\n cancelApplication(){\r\n if(this.ctrlData.application.id==undefined && this.ctrlData.application.id==null){\r\n this.router.navigate(['/carrier/permit/application/'+this.ctrlData.carrierID]);\r\n }else{\r\n this.showModal.showConfirm('Delete Application', 'Are you sure you want to delete?', `You're about to delete application`, 'Yes', 'No')\r\n .subscribe((isConfirmed) => {\r\n if (isConfirmed) {\r\n this.deleteApplication()\r\n } else {\r\n return;\r\n }\r\n });\r\n }\r\n }\r\n deleteApplication(){\r\n //console.log(\"delete application\");\r\n this.pageload = true;\r\n\r\n this.permitService.deletePermit(this.ctrlData.permit.id).subscribe(x =>{\r\n //console.log(x);\r\n this.deleteApp(this.ctrlData.application.id);\r\n this.pageload = false;\r\n\r\n this.router.navigate(['/carrier/permit/application/'+this.ctrlData.carrierID]);\r\n\r\n })\r\n//this.dataCntrl.application.id\r\n//this.dataCntrl.permit.id\r\n }\r\n deletePermit(id){\r\n this.permitService.deletePermit(id).subscribe(x =>{\r\n //console.log(x);\r\n })\r\n\r\n }\r\n deleteApp(id){\r\n this.applicationService.deleteApplication(id).subscribe(x =>{\r\n //console.log(x);\r\n })\r\n }\r\n savePermit(){\r\n this.ctrlData.permit.date_modified = this.ctrlData.permit.date_created = new Date();\r\n this.ctrlData.permit.user_modified = this.ctrlData.permit.user_created = environment.authWebApi.userData.User.Username;\r\n this.ctrlData.permit.permit_fee = this.ctrlData.permittype.current_fee == null ? 0 : this.ctrlData.permittype.current_fee ;\r\n this.ctrlData.permit.application_fee = this.ctrlData.permittype.current_application_fee == null ? 0 : this.ctrlData.permittype.current_application_fee ;\r\n this.permitService.postPermit(this.ctrlData.permit)\r\n .subscribe(result => {\r\n this.ctrlData.permit = result;\r\n this.tabload = false;\r\n this.toastr.success('Saved Permit Type Successfully','Permit Type');\r\n this.applicationService.setTab(2);\r\n this.utility.confirmCtrl = true;\r\n },\r\n error => {\r\n this.tabload = false\r\n this.toastr.error('Failed to save application. If the problem persist, please contact system administrator.', error)\r\n\r\n return;\r\n });\r\n }\r\n\r\n updatePermit(){\r\n this.ctrlData.permit.date_modified = this.ctrlData.permit.date_created = new Date();\r\n this.ctrlData.permit.user_modified = this.ctrlData.permit.user_created = environment.authWebApi.userData.User.Username;\r\n this.ctrlData.permit.permit_fee = this.ctrlData.permittype.current_fee == null ? 0 : this.ctrlData.permittype.current_fee ;\r\n this.ctrlData.permit.application_fee = this.ctrlData.permittype.current_application_fee == null ? 0 : this.ctrlData.permittype.current_application_fee ;\r\n this.permitService.upadatePermit(this.ctrlData.permit).subscribe(result => {\r\n this.ctrlData.permit = result;\r\n this.toastr.success('Updated Permit Type Successfully','Permit Type');\r\n\r\n\r\n })\r\n\r\n }\r\n updateApplication(){\r\n this.applicationService.putApplication(this.ctrlData.application).subscribe((x:any) => {\r\n this.ctrlData.application = x;\r\n this.ctrlData.permit.permit_type_id = x.permit_type_id;\r\n this.ctrlData.permit.application_id = x.id;\r\n\r\n })\r\n }\r\n\r\n}\r\n","\r\n \r\n
\r\n \r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n Passenger\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n Freight\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n Temporary\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n Long-term Permit\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","\r\nimport {map, distinctUntilChanged, debounceTime} from 'rxjs/operators';\r\nimport { Component, OnInit, Input, ViewChild } from '@angular/core';\r\nimport { FormControl, Validators, FormGroup, FormBuilder } from '@angular/forms';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { ApplicationService } from 'app/services/application.service';\r\nimport { PopupService } from '../../../services/shared/popup.service';\r\nimport { Router, ActivatedRoute, Params } from '@angular/router';\r\nimport { PermitService } from 'app/services/permit.service';\r\nimport { VehicleService } from 'app/services/vehicle.service';\r\nimport { PlaceService } from 'app/services/place.service';\r\nimport { DocumenttypeService } from 'app/services/documenttype.service';\r\nimport { NgbTypeahead } from '@ng-bootstrap/ng-bootstrap';\r\nimport { Subject, Observable } from 'rxjs';\r\nimport { AuthWebService } from 'app/services/authweb.service';\r\nimport { RouteService } from 'app/services/route.service';\r\nimport { CountryService } from 'app/services/country.service';\r\nimport { TransportAssocService } from 'app/services/transport-assoc.service';\r\nimport { CarrierService } from 'app/services/carrier.service';\r\n\r\n@Component({\r\n selector: 'route-viewer',\r\n templateUrl: './route-viewer.component.html',\r\n styleUrls: ['./route-viewer.component.css'],\r\n providers:[PlaceService,RouteService]\r\n})\r\nexport class RouteViewerComponent implements OnInit {\r\n\r\n @Input() dataCntrl: any;\r\n\r\n form: FormGroup;\r\n model : any = [];\r\n tabload:boolean=false;\r\n public pageload = false;\r\n disableBtn : boolean = false;\r\n selectedStartCoutry:any;\r\n\r\n @ViewChild('instance') instance: NgbTypeahead;\r\n focus$ = new Subject();\r\n click$ = new Subject();\r\n\r\n places: any = [];\r\n routes: any = [];\r\n ownRoutes: any = [];\r\n countries: any = [];\r\n selectedRadio:boolean = false;\r\n route_detail:any;\r\n start:any;\r\n end:any;\r\ndefaultValue:string = '';\r\nselectedRoute:any;\r\nplaceSelected: any = [];\r\nbtnRadio:any;\r\nselectedEndCoutry: any;\r\nplaceEndSelected: any = [];\r\ndefaultStartCoutry:any;\r\ndefaultEndCoutry:any;\r\n\r\nselectedEndPlace:any;\r\nselectedStartPlace:any;\r\ndefaultStartPlace:any;\r\ndefaultEndPlace:any;\r\n\r\ndefault:any;\r\n\r\nisCheck: boolean = true;\r\ncheckDelete: boolean = true;\r\nisDupApplication: boolean = false;\r\ntranportAssociation : any;\r\nfrghtPass = '';\r\n\r\n constructor(private formBuilder: FormBuilder,private toastr: ToastrService,\r\n private showModal:PopupService,public applicationService: ApplicationService,\r\n private router:Router,private permitService:PermitService,\r\n private vehicleService:VehicleService,private authWebService: AuthWebService,\r\n private activeRoute: ActivatedRoute,private placeService: PlaceService,\r\n private documenttypeService:DocumenttypeService,\r\n private routeService:RouteService,\r\n private countryService:CountryService,\r\n private transportAssocService: TransportAssocService,\r\n private carrierService:CarrierService) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.frghtPass = this.dataCntrl.permittype.freight_passenger_ind == 1 ? 'A' : 'B';\r\n\r\n if(this.router.url.indexOf('edit') > 0){\r\n this.activeRoute.params.subscribe((params: Params) => {\r\n this.dataCntrl.application.id= params['id'];\r\n if(environment.authWebApi.userData.Roles.find(p=>p.Code=='ADMIN')){\r\n this.disableBtn = true;\r\n //console.log('This is Admin')\r\n }\r\n });\r\n } \r\n this.initForm();\r\n //this.getPlaces();\r\n \r\n this.getCustomRoute();\r\n this.model = this.dataCntrl;\r\n // this.model.application.route_summary = 'My Route';\r\n // this.route_detail = 'My Route';\r\n //console.log(this.dataCntrl)\r\n //console.log(this.dataCntrl.application.route_id);\r\n //console.log(this.dataCntrl);\r\n this.isDupApplication = this.dataCntrl.permittype.code == this.authWebService.userData.Configurations.find(x => x.Code == \"DupPermitAppCode1\").Value;\r\n //console.log(this.isDupApplication);\r\n this.getTransportAssociation();\r\n }\r\n\r\n getTransportAssociation()\r\n {\r\n this.carrierService.getById(this.dataCntrl.application.carrier_id).subscribe((carrier:any)=>{ \r\n if(carrier.transport_assoc_id != null && carrier.transport_assoc_id != undefined && carrier.transport_assoc_id != 0)\r\n {\r\n this.transportAssocService.getById(carrier.transport_assoc_id).subscribe(assoc=>{\r\n this.tranportAssociation = assoc;\r\n });\r\n }\r\n \r\n });\r\n }\r\n \r\n\r\n initForm() {\r\n this.form = this.formBuilder.group({\r\n id: [0, []],\r\n // startRoute: ['', [Validators.required]],\r\n // endRoute: ['', [Validators.required]],\r\n // startPlace: ['', [Validators.required]],\r\n // endPlace: ['', [Validators.required]],\r\n btnRadio: ['', [Validators.required]],\r\n route_name: [null, [Validators.required]],\r\n code: ['', [Validators.required]],\r\n route_detail: ['', [Validators.required]],\r\n route_summary: ['', [Validators.required]],\r\n description: ['', [Validators.required]],\r\n transport_assoc: [''],\r\n // num_countries: ['', [Validators.required]],\r\n // num_border_crossings: ['', [Validators.required]],\r\n // desc: ['', [Validators.required]],\r\n });\r\n }\r\n formatter = (x: {name: string}) => x.name;\r\n\r\n // search = (text$: Observable) =>\r\n // text$.pipe(\r\n // debounceTime(200),\r\n // distinctUntilChanged(),\r\n // merge(this.focus$),\r\n // merge(this.click$.pipe(filter(() => !this.instance.isPopupOpen()))),\r\n // map(term => (term === '' ? this.places\r\n // : this.places.filter(v => v.name.toLowerCase().indexOf(term.toLowerCase()) > -1)).slice(0, 10))\r\n // );\r\n getSelectedEnd(event)\r\n{\r\n let country = this.countries.find(x => x.desc == event.item)\r\n let obj = this.places.find(x => x.country_id == country.id);\r\n let id = obj.id;\r\n //console.log(id);\r\n this.end = id;\r\n\r\n}\r\ngetSelectedStart(event)\r\n{\r\n \r\n let country = this.countries.find(x => x.desc == event.item)\r\n let obj = this.places.find(x => x.country_id == country.id);\r\n let id = obj.id;\r\n this.start = id;\r\n //console.log(id);\r\n\r\n} \r\n search = (text$: Observable) =>\r\n text$.pipe(\r\n debounceTime(200),\r\n distinctUntilChanged(),\r\n map(term => term === '' ? this.countries.map(v => v.desc)\r\n : this.countries.map(v => v.desc).filter(v => v.toLowerCase().indexOf(term.toLowerCase()) > -1).slice(0, 10)),);\r\n //desc\r\nsearch2 = (text$: Observable) =>\r\n text$.pipe(\r\n debounceTime(200),\r\n distinctUntilChanged(),\r\n map(term => term === '' ? this.routes.map(v => v.route_detail)\r\n : this.routes.map(v => v.route_detail).filter(v => v.toLowerCase().indexOf(term.toLowerCase()) > -1).slice(0, 10)),);\r\n\r\n\r\n getSelectedR(event){\r\n //console.log(event.item);\r\n let obj = this.routes.find(x => x.route_detail === event.item);\r\n //console.log(obj);\r\n this.loadDataFromDatabase(obj);\r\n }\r\n checked(){\r\n //console.log(this.selectedRoute);\r\n this.default = '';\r\n this.routeService.getMyRoute(this.selectedRoute.id).subscribe((data:any) =>{\r\n //console.log(data)\r\n //this.seele = data.description;\r\n // this.getOption1Leg(this.selectedRoute.id);\r\n \r\n this.loadDataWhenSelected(data);\r\n\r\n })\r\n \r\n }\r\n checkedStartRoute(){\r\n //console.log(this.selectedStartCoutry)\r\n this.placeSelected = null;\r\n //console.log(this.places.filter(x=>x.country_id == this.selectedStartCoutry.id))\r\n this.placeSelected = this.places.filter(x=>x.country_id == this.selectedStartCoutry.id);\r\n }\r\n checkedEndRoute(){\r\n //console.log(this.selectedEndCoutry)\r\n this.placeEndSelected = null;\r\n //console.log(this.places.filter(x=>x.country_id == this.selectedEndCoutry.id))\r\n this.placeEndSelected = this.places.filter(x=>x.country_id == this.selectedEndCoutry.id);\r\n }\r\n getPlaces(){\r\n this.routeService.getAllRoute().subscribe(data =>{\r\n //console.log(data);\r\n this.routes = data;\r\n // //console.log(this.routes.map(v => v.route_detail));\r\n });\r\n // this.placeService.getPlaces().subscribe(x =>{\r\n // // //console.log(x);\r\n // this.places= x\r\n // //console.log(this.places)\r\n \r\n // // this.countryService.listCountries().subscribe(data =>{\r\n // // this.countries = data;\r\n // // //console.log(this.countries);\r\n // // });\r\n \r\n // });\r\n \r\n \r\n }\r\n getCustomRoute(){\r\n this.pageload = true;\r\n \r\n this.routeService.getDoNotBelong().subscribe((data:any) =>{\r\n // alert(this.frghtPass);\r\n this.ownRoutes = [];\r\n let tmpRoutes = data.filter(route => route.is_active && route.group_code == this.frghtPass);\r\n \r\n tmpRoutes.forEach(element => {\r\n if(this.ownRoutes.find(r=>r.description == element.description) == null)\r\n {\r\n this.ownRoutes.push(element);\r\n }\r\n });\r\n\r\n this.selectedRoute = this.ownRoutes.find(x=>x.id == this.dataCntrl.application.route_id);\r\n \r\n // this.isCheck = true;\r\n // this.checkDelete = true;\r\n \r\n this.route_detail = this.dataCntrl.application.route_detail;\r\n this.form.patchValue({\r\n // id:this.selectedRoute.id, \r\n // route_name: this.dataCntrl.application.route_summary,\r\n //code:route.code,\r\n route_detail:this.dataCntrl.application.route_detail,\r\n route_summary: this.dataCntrl.application.route_summary,\r\n description: this.dataCntrl.application.route_summary, \r\n // num_countries: route.num_countries,\r\n // num_border_crossings: route.num_border_crossings,\r\n \r\n \r\n });\r\n\r\n this.pageload = false;\r\n //alert(this.pageload);\r\n });\r\n \r\n \r\n if(this.dataCntrl.application.route_id == null){\r\n \r\n this.routeService.getDoNotBelong().subscribe((data:any) =>{\r\n //console.log(data);\r\n this.ownRoutes = data.filter(route => route.group_code == this.frghtPass);\r\n this.pageload = false;\r\n });\r\n this.selectedRoute = 'Select route';\r\n // this.checkDelete = false;\r\n }\r\n \r\n \r\n \r\n }\r\n checkOption(event){\r\n //console.log(event.target.value)\r\n if(event.target.value === '2'){\r\n this.isCheck = true;\r\n // this.routes = null;\r\n // this.defaultValue = '';\r\n \r\n this.form.patchValue({\r\n id:'',\r\n // route_name:'',\r\n route_detail:'',\r\n route_summary:'',\r\n code:'',\r\n description:'',\r\n // num_countries:'',\r\n // num_border_crossings: '',\r\n \r\n \r\n });\r\n this.getCustomRoute();\r\n \r\n }\r\n if(event.target.value === '1'){\r\n // this.form.reset();\r\n this.isCheck = false;\r\n this.checkDelete = false;\r\n\r\n this.getPlaces();\r\n this.defaultValue = '';\r\n this.form.patchValue({\r\n id:'',\r\n //route_name:'Select route',\r\n route_detail:'',\r\n route_summary:'',\r\n code:'',\r\n description:'',\r\n // num_countries:'',\r\n // num_border_crossings: '',\r\n \r\n \r\n });\r\n this.selectedRoute = 'Select route';\r\n\r\n // this.form.patchValue({\r\n // endRoute: '',\r\n // startRoute:'',\r\n \r\n // });\r\n // this.form.patchValue({\r\n // startPlace: '',\r\n // endPlace:''\r\n \r\n // });\r\n // this.getPlaces();\r\n // this.defaultStartCoutry = 'Select country';\r\n // this.defaultEndCoutry = 'Select country';\r\n // this.selectedStartCoutry = 'Select country';\r\n // this.selectedEndCoutry = 'Select country';\r\n\r\n // this.selectedEndPlace = 'Select place';\r\n // this.selectedStartPlace = 'Select place';\r\n // this.defaultStartPlace = 'Select place';\r\n // this.defaultEndPlace = 'Select place';\r\n\r\n }\r\n if(event.target.value === '3'){\r\n // this.form.reset();\r\n this.isCheck = false;\r\n this.checkDelete = false;\r\n this.getPlaces();\r\n this.defaultValue = '';\r\n\r\n this.form.patchValue({\r\n id:'',\r\n // route_name:'',\r\n route_detail:'',\r\n route_summary:'',\r\n code:'',\r\n description:'',\r\n transport_assoc: ''\r\n // num_countries:'',\r\n // num_border_crossings: '',\r\n \r\n \r\n });\r\n // this.getPlaces();\r\n // this.defaultStartCoutry = 'Select country';\r\n // this.defaultEndCoutry = 'Select country';\r\n // this.selectedStartCoutry = 'Select country';\r\n // this.selectedEndCoutry = 'Select country';\r\n\r\n // this.selectedEndPlace = 'Select place';\r\n // this.selectedStartPlace = 'Select place';\r\n // this.defaultStartPlace = 'Select place';\r\n // this.defaultEndPlace = 'Select place';\r\n }\r\n // this.defaultValue = 'Select route';\r\n }\r\n loadDataWhenSelected(route: any) {\r\n this.form.patchValue({\r\n id:route.id,\r\n //route_name : route.description,\r\n route_detail:route.route_detail, \r\n route_summary: route.route_summary,\r\n code:route.code,\r\n description: route.description,\r\n transport_assoc: this.tranportAssociation\r\n // num_countries: route.num_countries,\r\n // num_border_crossings: route.num_border_crossings,\r\n \r\n \r\n });\r\n }\r\n loadDataFromDatabase(route: any) {\r\n this.form.patchValue({\r\n // id:route.id,\r\n // route_name:this.dataCntrl.application.route_summary,\r\n code:route.code,\r\n route_detail:route.route_detail,\r\n route_summary: route.route_summary,\r\n description: route.description,\r\n transport_assoc: this.tranportAssociation\r\n // num_countries: route.num_countries,\r\n // num_border_crossings: route.num_border_crossings,\r\n \r\n \r\n });\r\n }\r\n formChanges(){\r\n this.form.statusChanges.subscribe(\r\n result => \r\n this.dataCntrl.formValid = result == 'VALID'? true : false \r\n );\r\n }\r\n\r\n updateRouteForApproval()\r\n {\r\n this.dataCntrl.application.route_id = this.selectedRoute.id;\r\n this.dataCntrl.application.route_summary = this.form.value.description;\r\n this.dataCntrl.application.route_detail = this.form.value.route_detail;\r\n\r\n this.applicationService.putApplication(this.dataCntrl.application)\r\n .subscribe(result => {\r\n this.pageload = false;\r\n this.dataCntrl.application = result;\r\n this.tabload = false;\r\n // this.saveDepatureDestination();\r\n this.toastr.success('Update Route Details','Route details updated successfully');\r\n \r\n },\r\n error => {\r\n this.pageload = false;\r\n this.tabload = false;\r\n this.toastr.error('Failed to update route details. If the problem persist, please contact system administrator.','Save Application')\r\n\r\n // this.showModal.showError('Save Application','Failed to save application. If the problem persist, please contact system administrator.',error);\r\n return;\r\n });\r\n }\r\n\r\n saveRoute(){\r\n //console.log(this.form.value.description);\r\n if(!this.form.value.description){\r\n return this.toastr.warning('Please Enter a name for the route that is easy to remember (e.g. Harare to Joburg)\"');\r\n }\r\n if(!this.form.value.route_summary){\r\n return this.toastr.warning('Please Enter a short description of the route (e.g. Harare to Joburg via Bulawayo)\"');\r\n }\r\n if(!this.form.value.code){\r\n return this.toastr.warning('Please Enter a unique identifier for this route (e.g. HREJHB01)');\r\n }\r\n \r\n if(!this.form.value.route_detail){\r\n return this.toastr.warning('Enter a detailed description of the whole route, indicating all the stopping points and border posts');\r\n }\r\n // if(this.form.value.endPlace === 'Select place'){\r\n // return this.toastr.warning('Please choose your end place route');\r\n // }\r\n \r\n // if(this.form.value.btnRadio === '3'){\r\n // this.saveDepatureDestination();\r\n // return \r\n // }\r\n \r\n \r\n let route = {\r\n id:0,\r\n code:this.form.value.code+'-'+this.dataCntrl.application.id,\r\n route_detail: this.form.value.route_detail,\r\n description: this.form.value.description,\r\n route_summary: this.form.value.route_summary,\r\n // num_countries:this.form.value.num_countries,\r\n // num_border_crossings:this.form.value.num_border_crossings,\r\n user_created: environment.authWebApi.userData.User.FirstName,\r\n user_modified: environment.authWebApi.userData.User.FirstName,\r\n date_created: new Date(),\r\n date_modified:new Date(),\r\n }\r\n if(this.form.value.btnRadio === '2'){\r\n \r\n route = {\r\n id:this.form.value.id,\r\n code:this.form.value.code,\r\n route_detail: this.form.value.route_detail,\r\n description: this.form.value.description,\r\n route_summary: this.form.value.route_summary,\r\n // num_countries:this.form.value.num_countries,\r\n // num_border_crossings:this.form.value.num_border_crossings,\r\n user_created: environment.authWebApi.userData.User.FirstName,\r\n user_modified:environment.authWebApi.userData.User.FirstName,\r\n date_created: new Date(),\r\n date_modified:new Date(),\r\n }\r\n }\r\n //console.log(route)\r\n if(route.code.length > 12){\r\n route.code = route.code.substr(0,12)\r\n }\r\n this.tabload = true;\r\n this.pageload = true;\r\n this.routeService.saveMyRoutes(route).subscribe((x:any) =>{\r\n //console.log(x);\r\n this.updatePermit(x.id)\r\n this.dataCntrl.application.route_id = x.id;\r\n this.dataCntrl.application.route_summary = this.form.value.description;\r\n this.dataCntrl.application.route_detail = this.form.value.route_detail;\r\n\r\n this.applicationService.putApplication(this.dataCntrl.application)\r\n .subscribe(result => {\r\n this.pageload = false;\r\n this.dataCntrl.application = result;\r\n this.tabload = false;\r\n // this.saveDepatureDestination();\r\n this.toastr.success('Save Application','Route saved successfully');\r\n this.applicationService.setTab(4);\r\n },\r\n error => {\r\n this.pageload = false;\r\n this.tabload = false;\r\n this.toastr.error('Failed to save application. If the problem persist, please contact system administrator.','Save Application')\r\n\r\n // this.showModal.showError('Save Application','Failed to save application. If the problem persist, please contact system administrator.',error);\r\n return;\r\n });\r\n \r\n },\r\n error => {\r\n //console.log(error.error.Message)\r\n if(error.error.Message === 'Code already exists'){\r\n this.pageload = false;\r\n this.tabload = false;\r\n this.toastr.error('Code already exists! Choose a different code.','Save Application')\r\n return;\r\n }\r\n this.pageload = false;\r\n this.tabload = false;\r\n this.toastr.error('Failed to save application. If the problem persist, please contact system administrator.','Save Application')\r\n\r\n // this.showModal.showError('Save Application','Failed to save application. If the problem persist, please contact system administrator.',error);\r\n return;\r\n });\r\n \r\n }\r\n\r\nsaveDepatureDestination(){\r\n // if(this.form.value.btnRadio === '3'){\r\n // return this.saveBtn3();\r\n // }\r\n \r\n let obj = {\r\n id:0,\r\n place_to_id: this.form.value.endPlace.id,\r\n place_from_id: this.form.value.startPlace.id,\r\n route_description:this.form.value.description,\r\n application_id: +this.dataCntrl.application.id,\r\n permit_id:this.dataCntrl.permit.id,\r\n route_id:this.form.value.id,\r\n place_to: this.form.value.endRoute.desc,\r\n place_from:this.form.value.startRoute.desc,\r\n date_created: new Date(),\r\n date_modified:new Date(),\r\n }\r\n \r\n\r\n if(this.form.value.btnRadio === '2' || this.form.value.btnRadio === '1'){\r\n if(obj.place_to_id == undefined){\r\n obj.place_to_id = this.end;\r\n // obj.place_from_id = this.start;\r\n }\r\n if(obj.place_from_id == undefined){\r\n // obj.place_to_id = this.end;\r\n obj.place_from_id = this.start;\r\n }\r\n if(this.form.value.endRoute.desc){\r\n this.form.value.endRoute = this.form.value.endRoute.desc\r\n }\r\n if(this.form.value.startRoute.desc){\r\n this.form.value.startRoute = this.form.value.startRoute.desc;\r\n }\r\n obj.place_to = this.form.value.endRoute;\r\n obj.place_from = this.form.value.startRoute\r\n}\r\n //console.log(obj);\r\n //console.log(this.form.value);\r\n this.pageload = true;\r\n this.tabload = true;\r\n\r\n this.routeService.saveRouteLeg(obj).subscribe(x =>{\r\n this.pageload = false;\r\n this.tabload = false;\r\n this.toastr.success('Save Application','Route saved successfully');\r\n\r\n this.applicationService.setTab(4);\r\n\r\n },error =>{\r\n this.pageload = false;\r\n this.tabload = false;\r\n this.toastr.error('Failed to save application. If the problem persist, please contact system administrator.','Save Application')\r\n\r\n })\r\n}\r\nsaveBtn3(){\r\n let obj = {\r\n id:0,\r\n place_to_id: this.form.value.endPlace.id,\r\n place_from_id: this.form.value.startPlace.id,\r\n route_description:this.form.value.description,\r\n application_id: +this.dataCntrl.application.id,\r\n permit_id:this.dataCntrl.permit.id,\r\n place_to: this.form.value.endRoute.desc,\r\n place_from:this.form.value.startRoute.desc,\r\n date_created: new Date(),\r\n date_modified:new Date(),\r\n }\r\n this.pageload = true;\r\n this.tabload = true;\r\n this.routeService.saveRouteLeg(obj).subscribe(x =>{\r\n this.pageload = false;\r\n this.tabload = false;\r\n this.toastr.success('Save Application','Route saved successfully');\r\n\r\n this.applicationService.setTab(4);\r\n\r\n },error =>{\r\n this.pageload = false;\r\n this.tabload = false;\r\n this.toastr.error('Failed to save application. If the problem persist, please contact system administrator.','Save Application')\r\n\r\n })\r\n}\r\nsavePermit(){\r\n \r\n this.dataCntrl.permit.date_modified = this.dataCntrl.permit.date_created = new Date();\r\n this.dataCntrl.permit.user_modified = this.dataCntrl.permit.user_created = environment.authWebApi.userData.User.FirstName;\r\n this.dataCntrl.permit.permit_fee = this.dataCntrl.permittype.current_fee == null ? 0 : this.dataCntrl.permittype.current_fee ;\r\n this.dataCntrl.permit.application_fee = this.dataCntrl.permittype.current_application_fee == null ? 0 : this.dataCntrl.permittype.current_application_fee ;\r\n this.permitService.postPermit(this.dataCntrl.permit)\r\n .subscribe(result => {\r\n this.dataCntrl.permit = result;\r\n this.tabload = false;\r\n this.toastr.success('Saved Permit Type Successfully','Permit Type');\r\n // this.applicationService.setTab(2);\r\n },\r\n error => {\r\n this.tabload = false\r\n this.toastr.error('Failed to save application. If the problem persist, please contact system administrator.', error)\r\n\r\n return;\r\n });\r\n}\r\nupdatePermit(id){\r\n this.dataCntrl.permit.route_id = id;\r\n this.dataCntrl.permit.date_modified = this.dataCntrl.permit.date_created = new Date();\r\n this.dataCntrl.permit.user_modified = this.dataCntrl.permit.user_created = environment.authWebApi.userData.User.FirstName;\r\n this.dataCntrl.permit.permit_fee = this.dataCntrl.permittype.current_fee == null ? 0 : this.dataCntrl.permittype.current_fee ;\r\n this.dataCntrl.permit.application_fee = this.dataCntrl.permittype.current_application_fee == null ? 0 : this.dataCntrl.permittype.current_application_fee ;\r\n this.permitService.upadatePermit(this.dataCntrl.permit).subscribe(result => {\r\n this.dataCntrl.permit = result;\r\n // this.toastr.success('Updated Permit Type Successfully','Permit Type');\r\n // this.applicationService.setTab(2);\r\n\r\n })\r\n\r\n}\r\n\r\n backtoVehicle(){\r\n this.applicationService.setTab(2);\r\n }\r\n deleteRoute(){\r\n this.showModal.showConfirm('Delete Route', 'Are you sure you want to delete?', `You're about to delete this route`, 'Yes', 'No')\r\n .subscribe((isConfirmed) => {\r\n if (isConfirmed) {\r\n this.delete(this.dataCntrl.application.route_id);\r\n } else {\r\n return;\r\n }\r\n });\r\n }\r\n delete(id){\r\n this.routeService.deleteExternalRoute(id).subscribe((x:any) =>{\r\n this.routeService.getDoNotBelong();\r\n this.dataCntrl.application.route_id = null;\r\n //console.log(x);\r\n this.checkDelete = false;\r\n this.isCheck = false;\r\n this.toastr.success('Delete Route','Route deleted successfully');\r\n },\r\n error => {\r\n //console.log(error.error.Message)\r\n this.toastr.error('Failed to save application. If the problem persist, please contact system administrator.','Save Application')\r\n // this.showModal.showError('Save Application','Failed to save application. If the problem persist, please contact system administrator.',error);\r\n return;\r\n });\r\n }\r\n onSubmit(value){\r\n//console.log(value)\r\n }\r\n cancelApplication(){\r\n if(this.dataCntrl.application.id==undefined && this.dataCntrl.application.id==null){\r\n this.router.navigate(['/carrier/permit/application/'+this.dataCntrl.carrierID]);\r\n }else{\r\n this.showModal.showConfirm('Delete Application', 'Are you sure you want to delete?', `You're about to delete application`, 'Yes', 'No')\r\n .subscribe((isConfirmed) => {\r\n if (isConfirmed) {\r\n this.deleteApplication()\r\n } else {\r\n return;\r\n }\r\n });\r\n }\r\n }\r\n deleteApplication(){\r\n //console.log(\"delete application\");\r\n this.pageload = true;\r\n\r\n this.permitService.deletePermit(this.dataCntrl.permit.id).subscribe(x =>{\r\n //console.log(x);\r\n this.deleteApp(this.dataCntrl.application.id);\r\n this.pageload = false;\r\n\r\n this.router.navigate(['/carrier/permit/application/'+this.dataCntrl.carrierID]);\r\n\r\n })\r\n//this.dataCntrl.application.id\r\n//this.dataCntrl.permit.id\r\n }\r\n deletePermit(id){\r\n this.permitService.deletePermit(id).subscribe(x =>{\r\n //console.log(x);\r\n })\r\n\r\n }\r\n deleteApp(id){\r\n this.applicationService.deleteApplication(id).subscribe(x =>{\r\n //console.log(x);\r\n })\r\n }\r\n getOption1Leg(id){\r\n this.placeService.getPlaces().subscribe((q:any) =>{\r\n this.routeService.getAllRouteLegs().subscribe((x:any) =>{\r\n //console.log(x.filter(x =>x.route_id === id));\r\n let obj = x.filter(x =>x.route_id === id);\r\n //console.log(Math.max.apply(Math, obj.map(function(o) { return o.id; })))\r\n let foundRouteLeg = obj.find(x => x.id == Math.max.apply(Math, obj.map(function(o) { return o.id; })));\r\n let routeLegFromPlace = q.find(x => x.id == foundRouteLeg.place_from_id);\r\n let routeLeToPlace = q.find(x => x.id == foundRouteLeg.place_to_id);\r\n \r\n //console.log(foundRouteLeg.place_from)\r\n //console.log(foundRouteLeg.place_to)\r\n this.loadRouteLeg(foundRouteLeg)\r\n this.end = routeLeToPlace.id;\r\n this.start = routeLegFromPlace.id;\r\n\r\n //console.log(routeLegFromPlace.name);\r\n //console.log(routeLeToPlace.name);\r\n this.loadRouteLegPlaces(routeLegFromPlace.name,routeLeToPlace.name);\r\n \r\n })\r\n\r\n });\r\n }\r\n getAllRouteLegs(){\r\n let accumulateCoutries:any = [];\r\n this.placeService.getPlaces().subscribe((q:any) =>{\r\n this.routeService.getAllRouteLegs().subscribe((x:any) =>{\r\n //console.log(x.filter(x =>x.application_id === +this.dataCntrl.application.id));\r\n let obj = x.filter(x =>x.application_id === +this.dataCntrl.application.id);\r\n //console.log(Math.max.apply(Math, obj.map(function(o) { return o.id; })))\r\n let foundRouteLeg = obj.find(x => x.id == Math.max.apply(Math, obj.map(function(o) { return o.id; })));\r\n let routeLegFromPlace = q.find(x => x.id == foundRouteLeg.place_from_id);\r\n let routeLeToPlace = q.find(x => x.id == foundRouteLeg.place_to_id);\r\n \r\n //console.log(foundRouteLeg.place_from)\r\n //console.log(foundRouteLeg.place_to)\r\n this.loadRouteLeg(foundRouteLeg)\r\n this.end = routeLeToPlace.id;\r\n this.start = routeLegFromPlace.id;\r\n\r\n //console.log(routeLegFromPlace.name);\r\n //console.log(routeLeToPlace.name);\r\n this.loadRouteLegPlaces(routeLegFromPlace.name,routeLeToPlace.name);\r\n // for(var i = 0;i x.id == q[j].country_id));\r\n // //console.log(this.countries.filter(x => x.id == q[j].country_id))\r\n // accumulateCoutries.push(this.countries.find(x => x.id == q[j].country_id))\r\n // }\r\n // }\r\n \r\n\r\n // }\r\n // //console.log(accumulateCoutries)\r\n // this.countries = accumulateCoutries;\r\n // //console.log(this.countries);\r\n // //console.log(obj.map(x =>x.country_id))\r\n // //console.log(this.countries.filter(x => x.id == obj.map(x =>x.country_id)[0]))\r\n // this.countries.filter(x => x.id == obj.map(x =>x.country_id)[0])\r\n // if(obj.length >0 ){\r\n // for(let i=0;i\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n\r\n","import { Component, OnInit, Input, ChangeDetectorRef, ViewChild } from '@angular/core';\r\nimport { FormControl, Validators, FormGroup, FormBuilder, FormArray } from '@angular/forms';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { ApplicationService } from 'app/services/application.service';\r\nimport { PopupService } from '../../../services/shared/popup.service';\r\nimport {DocumenttypeService} from 'app/services/documenttype.service';\r\nimport { Router, ActivatedRoute, Params } from '@angular/router';\r\nimport { PermitService } from 'app/services/permit.service';\r\nimport { VehicleService } from 'app/services/vehicle.service';\r\nimport { AuthWebService } from 'app/services/authweb.service';\r\nimport { DocumentsServiceService } from 'app/services/documents-service.service';\r\nimport { UtilityServiceService } from 'app/services/utility-service.service';\r\nimport { Account } from 'app/constants/account.enum';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { PermitTypeDocumentService } from 'app/services/permit-type-document.service';\r\nimport { CompliancereturnsService } from 'app/services/compliancereturns.service';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n\r\n@Component({\r\n selector: 'uploads-viewer',\r\n templateUrl: './uploads-viewer.component.html',\r\n styleUrls: ['./uploads-viewer.component.css'],\r\n providers:[PermitTypeDocumentService]\r\n})\r\nexport class UploadsViewerComponent implements OnInit {\r\n\r\n @Input() dataCntrl: any;\r\n @Input() isPermitApproval : boolean = false;\r\n @Input() isComplianceDocuments : boolean = false;\r\n @Input() complianceDetailId : any;\r\n @ViewChild('pdfViewerOnDemand') pdfViewerOnDemand;\r\n \r\n\r\n form: FormGroup;\r\n model : any = [];\r\n tabload:boolean=false;\r\n listUploadRows:any=[];\r\n isLoading:boolean=false;\r\n UserDocuments:any=[];\r\n docTypesList:any=[];\r\n doctypesCodes:any=[];\r\n haserror:boolean=false;\r\n disableAdd:boolean=false;\r\n//Uploaded file data\r\nfilebytes: string;\r\nfilename: string;\r\nfiletype: string;\r\nfilesize: string;\r\nfiledescription: string;\r\nimg:any;\r\nuser = { LastName: '' };\r\nPermitDocTypesList:any =[];\r\nuploadInfo:any[] = [];\r\n\r\ndocTypeId: any;\r\ndoctypesDesc: any;\r\npage = 1;\r\n\r\nuploadedDocs:any =[];\r\ndocTypeData:any = null;\r\nisLoadingImg: boolean = false;\r\npdfSrc:any;\r\nisTrue : boolean = false;\r\ndisableBtn : boolean = false;\r\nlinkedDocs:any =[];\r\n\r\npermitCompliance : any;\r\n\r\n\r\n\r\ncategories = [\r\n {id: \"\", name: \"Select Document Type\",value: \"\"},\r\n\r\n];\r\ncarrier_type_id:any;\r\n\r\n constructor(private formBuilder: FormBuilder,private toastr: ToastrService,\r\n private showModal:PopupService,public applicationService: ApplicationService,\r\n private documenttypeService:DocumenttypeService,\r\n private router:Router,private permitService:PermitService,\r\n private vehicleService:VehicleService,\r\n private authWebService: AuthWebService,\r\n private documentService:DocumentsServiceService,\r\n private ref: ChangeDetectorRef,\r\n private utility: UtilityServiceService,\r\n private sanitizer: DomSanitizer,private activeRoute: ActivatedRoute,private service: PermitTypeDocumentService,\r\n private complianceService:CompliancereturnsService,\r\n private http: HttpClient,\r\n private modalService: NgbModal) { }\r\n\r\n ngOnInit() {\r\n \r\n if(this.router.url.indexOf('edit') > 0){\r\n this.activeRoute.params.subscribe((params: Params) => {\r\n this.dataCntrl.application.id= params['id'];\r\n if(environment.authWebApi.userData.Roles.find(p=>p.Code=='ADMIN')){\r\n this.disableBtn = true;\r\n //console.log('This is Admin')\r\n }\r\n });\r\n }\r\n this.docTypeData = this.categories[0].id\r\n\r\n this.user.LastName = (this.authWebService.userData) ? this.authWebService.userData.User.LastName : '';\r\n\r\n this.getDoctypesCodes();\r\n //this.populateDocTypeList();\r\n\r\n let docs = JSON.parse(localStorage.getItem(\"uploads\") || \"[]\");\r\n //console.log(this.authWebService.userData)\r\n\r\n if(this.docTypesList.length === 0 && docs.length > 0){\r\n //console.log(docs)\r\n this.docTypesList = docs;\r\n }\r\n //console.log(this.dataCntrl.permittype.id)\r\n\r\n \r\n this.isLoading = true;\r\n this.documentService.getPermitById(this.dataCntrl.application.id).subscribe((x:any) => { \r\n this.uploadedDocs = [];\r\n if(this.isPermitApproval && this.isComplianceDocuments)\r\n {\r\n \r\n \r\n for(var i = 0; i < x.length;i++){ \r\n if(x[i].is_permit) \r\n {\r\n if(x[i].compliance_detail_id != null && x[i].compliance_detail_id != undefined && x[i].compliance_detail_id == this.complianceDetailId)\r\n {\r\n let fNum = x[i].document_link.indexOf('#'); \r\n x[i].shareId = x[i].document_link.substring(fNum+1); \r\n x[i].document_link = x[i].document_link.substring(0,fNum); \r\n\r\n this.uploadedDocs.push(x[i]);\r\n }\r\n this.isLoading = false;\r\n } \r\n }\r\n \r\n }\r\n else if(this.isPermitApproval) \r\n { \r\n for(var i = 0; i < x.length;i++){ \r\n \r\n if(x[i].is_permit && (x[i].compliance_detail_id == null || x[i].compliance_detail_id== undefined || x[i].compliance_detail_id== 0))\r\n {\r\n let firstNum = x[i].document_link.indexOf('#'); \r\n x[i].shareId = x[i].document_link.substring(firstNum+1); \r\n x[i].document_link = x[i].document_link.substring(0,firstNum);\r\n \r\n this.uploadedDocs.push(x[i]); \r\n }\r\n }\r\n\r\n\r\n }\r\n if (this.uploadedDocs.length > 0 )\r\n {\r\n this.removeUploadedDocTypes();\r\n }\r\n this.isLoading = false;\r\n\r\n\r\n },error =>{\r\n this.isLoading = false;\r\n\r\n })\r\n \r\n\r\n\r\n }\r\n getPermitData(){\r\n \r\n this.isLoading = true;\r\n this.permitService.getById(this.dataCntrl.permit.id).subscribe((result:any) => {\r\n this.carrier_type_id = result.carrier_type_id;\r\n // this.name = result.name;\r\n //Only call these guys once you have the type id you are looking for.\r\n //console.log(result)\r\n this.isLoading = false;\r\n\r\n // this.getCarrierExistingDocuments();\r\n \r\n \r\n }, error => {\r\n \r\n this.isLoading = false;\r\n // this.dialogService.addDialog(ErrorComponent, { title: 'Document Uploads', message: `Unable to retrieve carrier details.`, statuscode: error.Status, url: error.Uri, servermessage: error.Message });\r\n this.toastr.error(`Unable to retrieve carrier details.`,'Document Uploads')\r\n });\r\n }\r\n\r\n private downloadFile(url: string): any {\r\n return this.http.get(url, { responseType: 'blob' })\r\n .pipe(\r\n map((result: any) => {\r\n return result;\r\n })\r\n );\r\n}\r\n\r\nopen(content) {\r\n this.modalService.open(content).result.then((result) => {\r\n // this.closeResult = `Closed with: ${result}`;\r\n }, (reason) => {\r\n // this.closeResult = `Dismissed ${this.getDismissReason(reason)}`;\r\n });\r\n}\r\n\r\n\r\n// toggleModal() {\r\n// this.modal.classList.toggle(\"show-modal\");\r\n// }\r\n viewDoc(id,fileName){ \r\n \r\n this.isLoadingImg = true;\r\n \r\n this.pdfSrc = null;\r\n //let ext = fileName.substring(fileName.length-3,fileName.length);\r\n \r\n if(fileName.includes('.pdf')){\r\n \r\n this.documentService.downloadpdf(id).subscribe(x => {\r\n \r\n let objectURL = URL.createObjectURL(x);\r\n this.pdfSrc = objectURL;\r\n this.img = null;\r\n // this.pdfViewerOnDemand.pdfSrc = objectURL; // pdfSrc can be Blob or Uint8Array\r\n // this.pdfViewerOnDemand.refresh(); // Ask pdf viewer to load/reresh pdf\r\n this.isLoadingImg = false;\r\n });\r\n return;\r\n }\r\n\r\n this.documentService.download(id).subscribe(x => {\r\n let objectURL = URL.createObjectURL(x);\r\n this.pdfSrc =null\r\n this.img = this.sanitizer.bypassSecurityTrustUrl(objectURL);\r\n //console.log(this.img)\r\n this.isLoadingImg = false;\r\n // this.img = x;\r\n\r\n\r\n })\r\n\r\n }\r\n\r\n viewDocCompliance(id, fileName){ \r\n \r\n this.isLoadingImg = true;\r\n this.pdfSrc = null;\r\n \r\n if(fileName.includes('.pdf')){ \r\n this.documentService.downloadpdf(id).subscribe(x => {\r\n var objectURL = URL.createObjectURL(x);\r\n this.pdfSrc = objectURL;\r\n this.pdfViewerOnDemand.pdfSrc = objectURL; // pdfSrc can be Blob or Uint8Array\r\n \r\n this.pdfViewerOnDemand.refresh(); // Ask pdf viewer to load/reresh pdf\r\n \r\n \r\n document.getElementById(\"openModalButton\"+id.toString()).click();\r\n \r\n\r\n this.isLoadingImg = false; \r\n \r\n \r\n });\r\n return;\r\n }\r\n\r\n this.documentService.download(id).subscribe(x => {\r\n let objectURL = URL.createObjectURL(x);\r\n this.pdfSrc =null\r\n this.img = this.sanitizer.bypassSecurityTrustUrl(objectURL);\r\n //console.log(this.img)\r\n this.isLoadingImg = false;\r\n // this.img = x;\r\n\r\n\r\n })\r\n\r\n }\r\n populateDocTypeList()\r\n {\r\n // for this carrier get the related doc types\r\n \r\n this.service.getLinkedAndUnlinkedDoctypes(this.dataCntrl.permittype.id).subscribe(\r\n (result:any) => {\r\n //console.log(result);\r\n this.linkedDocs = result.PermitLinked;\r\n },\r\n error => {\r\n //console.log(error);\r\n }\r\n );\r\n \r\n \r\n }\r\n removeUploadedDocTypes()\r\n {\r\n this.isLoading = true;\r\n//console.log('Phakathe inside')\r\n if (this.uploadedDocs.length > 0)\r\n {\r\n let count = this.uploadedDocs.length;\r\n for(let knt = 0; knt < count; knt++){\r\n\r\n let index = this.isDocTypeInList(this.uploadedDocs[knt].document_type_id);\r\n if (index != -1)\r\n {\r\n this.linkedDocs.splice(index,1);\r\n }\r\n }\r\n }\r\n this.isLoading = false;\r\n\r\n }\r\n isDocTypeInList(id: number) {\r\n let count = this.linkedDocs.length;\r\n for (let iter = 0; iter < count; iter++) {\r\n if (this.linkedDocs[iter].document_type_id == id) return iter;\r\n }\r\n return -1;\r\n }\r\n getDocSaved(id){\r\n this.documenttypeService.getById(id).subscribe(x =>{\r\n //console.log(x);\r\n this.doctypesDesc = x;\r\n });\r\n }\r\n getDoctypesCodes(){\r\n this.documenttypeService.getAll().subscribe(x =>{\r\n //console.log(x);\r\n this.doctypesCodes = x;\r\n });\r\n // this.doctypesCodes=[\r\n // {\r\n // \"id\": 1,\r\n // \"code\": \"CR\",\r\n // \"description\": \"Insurance\",\r\n // \"document_link\": null,\r\n // \"is_template\": false,\r\n // \"is_download\": false,\r\n // \"group_code\": \"A\",\r\n // \"sort_order\": 1,\r\n // \"is_active\": true,\r\n // \"display_ind\": 3,\r\n // \"date_created\": \"2019-10-25T04:30:50.807\",\r\n // \"date_modified\": \"2019-11-07T10:21:33.973\",\r\n // \"user_created\": \"DEVUSER\",\r\n // \"user_modified\": \"DEVUSER\"\r\n // },\r\n // {\r\n // \"id\": 2,\r\n // \"code\": \"SARS\",\r\n // \"description\": \"Vehicle Licence\",\r\n // \"document_link\": null,\r\n // \"is_template\": false,\r\n // \"is_download\": false,\r\n // \"group_code\": \"A\",\r\n // \"sort_order\": 1,\r\n // \"is_active\": true,\r\n // \"display_ind\": 3,\r\n // \"date_created\": \"2019-10-25T05:57:57.493\",\r\n // \"date_modified\": \"2019-11-07T10:18:49.367\",\r\n // \"user_created\": \"DEVUSER\",\r\n // \"user_modified\": \"DEVUSER\"\r\n // }\r\n // ]\r\n }\r\n\r\n changes(){\r\n this.form.statusChanges.subscribe(\r\n result => {\r\n this.dataCntrl.formValid = result == 'VALID'? true : false \r\n } \r\n );\r\n }\r\n backtoMotivation(){\r\n this.applicationService.setTab(4)\r\n }\r\n addNew(){\r\n let object:any={id:-1,permit_type_id:\"\",document_type_id:\"\",is_active:false,code:\"\",is_mandatory:false,description:\"\",editMode:true};\r\n this.docTypesList.push(object);\r\n\r\n\r\n }\r\n saveUploads(){\r\n for(let list of this.docTypesList){\r\n if(list.code!=\"\"){\r\n list.id=0;\r\n list.permit_id = this.dataCntrl.permit.id;\r\n list.date_modified = list.date_created = new Date();\r\n list.user_modified = list.user_created = environment.authWebApi.userData.User.Username;\r\n }\r\n }\r\n this.haserror = false;\r\n this.disableAdd = false;\r\n this.dataCntrl.formValid = true;\r\n this.dataCntrl.permitTypesDocLinks=this.docTypesList;\r\n //console.log(this.dataCntrl.permitTypesDocLinks);\r\n this.toastr.success('Saved Step 5 Successfully','Step 5');\r\n this.applicationService.setTab(6);\r\n }\r\n uploadDocument(item,index){\r\n //console.log(item)\r\n document.getElementById(\"upload-\"+index).click();\r\n }\r\n handleFileInput(event,id){\r\n \r\n const reader = new FileReader();\r\n\r\n \r\n \r\n\r\n\r\n if (event.target.files && event.target.files.length > 0) {\r\n let file: any = null\r\n const count = event.target.files.length\r\n file = event.target.files[count - 1];\r\n let result = this.checkFileType(file.name);\r\n // item.document_type_id = this.docTypeData.id;\r\n // item.code = this.doctypesDesc.code\r\n // item.description=file.name;\r\n this.docTypeId = id;\r\n // this.uploadInfo.push(this.docTypeData);\r\n // localStorage.setItem('uploads',JSON.stringify(this.uploadInfo));\r\n const reader = new FileReader();\r\n\r\n if (event.target.files && event.target.files.length > 0) {\r\n let file: any = null\r\n const count = event.target.files.length\r\n \r\n file = event.target.files[count - 1];\r\n let result = this.checkFileType(file.name);\r\n \r\n \r\n\r\n //if File type is in not found\r\n if (result != -1) {\r\n\r\n let sizeresult = this.checkFileSize(file.size);\r\n\r\n if (sizeresult != -1) {\r\n this.ref.detectChanges();\r\n\r\n reader.removeEventListener\r\n reader.readAsDataURL(file);\r\n reader.onload = () => {\r\n\r\n this.filebytes = reader.result.toString().split(',')[1]\r\n this.filename = file.name,\r\n this.filetype = file.type\r\n this.filedescription = \"upload\"\r\n this.filesize = file.size\r\n this.validateData(this.docTypeId);\r\n\r\n };\r\n }\r\n else {\r\n // this.uploader.nativeElement.value = ''\r\n let allowedFileSize = environment.authWebApi.systemData.Configurations.find( p => p.Code=='MaxUploadMB1');\r\n // this.dialogService.addDialog(ErrorComponent, { title: 'File Upload Failed, Please try again.', message: `Maximum file size allowed ${allowedFileSize.Value.toString()}MB`, statuscode: '404',url: null, servermessage: \"File size exceeded maximum size\"});\r\n this.toastr.error(`Maximum file size allowed ${allowedFileSize.Value.toString()}MB`,'File Upload Failed, Please try again.');\r\n\r\n\r\n }\r\n \r\n }\r\n else\r\n {\r\n //send message allowed types\r\n // this.uploader.nativeElement.value = ''\r\n let allowedFileTypes = environment.authWebApi.systemData.Configurations.find( p => p.Code=='UploadDocTypes1');\r\n \r\n // this.dialogService.addDialog(ErrorComponent, { title: 'File Upload Failed, Please try again.', message: `Only these file types are allowed ${allowedFileTypes.Value.toString()}`, statuscode: '404',url: null, servermessage: \"Extension not allowed\"});\r\n this.toastr.error(`Only these file types are allowed: PDF`,'File Upload Failed, Please try again.')\r\n }\r\n\r\n }\r\n\r\n // this.uploader.nativeElement.value = ''\r\n // this.showOtherUploadsOption = false;\r\n\r\n }\r\n }\r\n fileUpload(event,item){\r\n //console.log('calling----->');\r\n // if(item.code.code = 'undefined')\r\n // {\r\n // return this.toastr.warning('Please select the document type first!','Upload File')\r\n // }\r\n //console.log(item)\r\n \r\n\r\n \r\n const reader = new FileReader();\r\n\r\n \r\n \r\n\r\n\r\n if (event.target.files && event.target.files.length > 0) {\r\n let file: any = null\r\n const count = event.target.files.length\r\n file = event.target.files[count - 1];\r\n let result = this.checkFileType(file.name);\r\n item.document_type_id = this.doctypesDesc.id;\r\n item.code = this.doctypesDesc.code\r\n item.description=file.name;\r\n this.docTypeId = item.document_type_id;\r\n this.uploadInfo.push(item);\r\n localStorage.setItem('uploads',JSON.stringify(this.uploadInfo));\r\n const reader = new FileReader();\r\n\r\n if (event.target.files && event.target.files.length > 0) {\r\n let file: any = null\r\n const count = event.target.files.length\r\n \r\n file = event.target.files[count - 1];\r\n let result = this.checkFileType(file.name);\r\n \r\n \r\n\r\n //if File type is in not found\r\n if (result != -1) {\r\n\r\n let sizeresult = this.checkFileSize(file.size);\r\n\r\n if (sizeresult != -1) {\r\n this.ref.detectChanges();\r\n\r\n reader.removeEventListener\r\n reader.readAsDataURL(file);\r\n reader.onload = () => {\r\n\r\n this.filebytes = reader.result.toString().split(',')[1]\r\n this.filename = file.name,\r\n this.filetype = file.type\r\n this.filedescription = \"upload\"\r\n this.filesize = file.size\r\n this.validateData(this.docTypeId);\r\n\r\n };\r\n }\r\n else {\r\n // this.uploader.nativeElement.value = ''\r\n let allowedFileSize = environment.authWebApi.systemData.Configurations.find( p => p.Code=='MaxUploadMB1');\r\n // this.dialogService.addDialog(ErrorComponent, { title: 'File Upload Failed, Please try again.', message: `Maximum file size allowed ${allowedFileSize.Value.toString()}MB`, statuscode: '404',url: null, servermessage: \"File size exceeded maximum size\"});\r\n this.toastr.error(`Maximum file size allowed ${allowedFileSize.Value.toString()}MB`,'File Upload Failed, Please try again.');\r\n\r\n\r\n }\r\n \r\n }\r\n else\r\n {\r\n //send message allowed types\r\n // this.uploader.nativeElement.value = ''\r\n let allowedFileTypes = environment.authWebApi.systemData.Configurations.find( p => p.Code=='UploadDocTypes1');\r\n \r\n // this.dialogService.addDialog(ErrorComponent, { title: 'File Upload Failed, Please try again.', message: `Only these file types are allowed ${allowedFileTypes.Value.toString()}`, statuscode: '404',url: null, servermessage: \"Extension not allowed\"});\r\n this.toastr.error(`Only these file types are allowed: PDF`,'File Upload Failed, Please try again.')\r\n }\r\n\r\n }\r\n\r\n // this.uploader.nativeElement.value = ''\r\n // this.showOtherUploadsOption = false;\r\n\r\n }\r\n \r\n }\r\n postFile( documenttypeid: any) {\r\n \r\n const formdata = new FormData()\r\n formdata.append('File', this.filebytes)\r\n formdata.append('FileName', this.filename)\r\n formdata.append('TypeOfFile', this.filetype)\r\n formdata.append('Notes', this.filedescription)\r\n formdata.append('FileSize', this.filesize)\r\n formdata.append('PermitId', this.dataCntrl.permit.id)\r\n formdata.append('PermitName','PermitName - '+this.filename)\r\n formdata.append('UserLastName', this.user.LastName)\r\n formdata.append('documenttypeid', documenttypeid)\r\n \r\n \r\n this.isLoadingImg = true;\r\n this.isLoading = true;\r\n // this.message = 'Uploading... please wait'\r\n \r\n this.documentService.postPermitDocument(formdata, documenttypeid, this.dataCntrl.application.id)\r\n .subscribe(\r\n response => {\r\n this.documentService.getPermitById(this.dataCntrl.application.id).subscribe((x:any) => {\r\n for(var i = 0; i < x.length;i++){\r\n let firstNum = x[i].document_link.indexOf('#')\r\n //console.log(x[i].document_link.substring(firstNum+1))\r\n x[i].shareId = x[i].document_link.substring(firstNum+1);\r\n //console.log(x[i].document_link.substring(0,firstNum))\r\n this.uploadedDocs.id = x[i].document_link.substring(firstNum+1);\r\n x[i].document_link = x[i].document_link.substring(0,firstNum);\r\n //console.log(x)\r\n this.uploadedDocs = x;\r\n //console.log(this.uploadedDocs)\r\n \r\n \r\n \r\n }\r\n if (this.uploadedDocs.length > 0 )\r\n {\r\n this.removeUploadedDocTypes();\r\n }\r\n \r\n \r\n },error =>{\r\n this.isLoading = false;\r\n \r\n })\r\n this.isLoadingImg = false;\r\n this.isLoading = false;\r\n // this.reload()//,\r\n //this.dialogService.addDialog(AlertComponent, {\r\n // title: 'File Uploaded',\r\n // message: 'File: ' + this.filename + ' was successfully uploaded.',\r\n // bold: this.filename\r\n //})\r\n //console.log(response.document_type_id)\r\n this.toastr.success('File: ' + this.filename + ' was successfully uploaded.','File Upload')\r\n\r\n \r\n \r\n },\r\n error => {\r\n this.isLoadingImg =false; \r\n this.isLoading = false;\r\n\r\n \r\n // this.dialogService.addDialog(ErrorComponent, {\r\n // title: 'File Upload Failed, Please try again.',\r\n // message: error._body , statuscode: error.Status, url: error.Uri, servermessage: error.Message\r\n // }),\r\n this.toastr.error('File Upload Failed, Please try again.')\r\n // this.reload()\r\n })\r\n \r\n }\r\n \r\n checkFileType(fileName:string)\r\n {\r\n // from the file name derive the extension\r\n let allowedFileTypes = environment.authWebApi.systemData.Configurations.find( p => p.Code=='UploadDocTypes1');\r\n let fileTypesArray = allowedFileTypes.Value.toString().split(',');\r\n //check if file type is \r\n let ext = fileName.split('.')[1].toUpperCase();\r\n let count = fileTypesArray.length;\r\n for (let iter = 0; iter < count; iter++) {\r\n if (fileTypesArray[iter] == ext) return iter;\r\n }\r\n return -1;\r\n }\r\n \r\n checkFileSize(fileSize:number)\r\n {\r\n // get the maximum file size \r\n let allowedFileSize = environment.authWebApi.systemData.Configurations.find( p => p.Code=='MaxUploadMB1');\r\n let maxAllowedSize = allowedFileSize.Value; //it is in MB\r\n let document_sizeMB = (fileSize/1000000);\r\n if (document_sizeMB <= maxAllowedSize)\r\n return 1;\r\n else return -1;\r\n //\r\n \r\n \r\n \r\n \r\n }\r\n validateData(documenttypeid:any) {\r\n \r\n \r\n \r\n \r\n if (this.dataCntrl.permit.id == null) {\r\n \r\n // this.dialogService.addDialog(AlertComponent, { title: 'Error', message: 'Unable to upload documents ' })\r\n this.toastr.error('Unable to upload documents! Please select permit type','Error')\r\n \r\n \r\n } else {\r\n \r\n this.postFile(documenttypeid)\r\n }\r\n \r\n \r\n }\r\n\r\n\r\n deleteDocument(item){\r\n let docs = JSON.parse(localStorage.getItem(\"uploads\") || \"[]\");\r\n\r\n //console.log(item);\r\n this.isLoading = true;\r\n\r\n this.documentService.DeletePermitDoc(item.id).subscribe(data =>{\r\n //console.log(data);\r\n this.populateDocTypeList();\r\n this.documentService.getPermitById(this.dataCntrl.application.id).subscribe((x:any) => {\r\n for(var i = 0; i < x.length;i++){\r\n let firstNum = x[i].document_link.indexOf('#')\r\n //console.log(x[i].document_link.substring(firstNum+1))\r\n x[i].shareId = x[i].document_link.substring(firstNum+1);\r\n //console.log(x[i].document_link.substring(0,firstNum))\r\n this.uploadedDocs.id = x[i].document_link.substring(firstNum+1);\r\n x[i].document_link = x[i].document_link.substring(0,firstNum);\r\n //console.log(x)\r\n this.uploadedDocs = x;\r\n //console.log(this.uploadedDocs)\r\n this.isLoading = false;\r\n\r\n \r\n \r\n }\r\n if (this.uploadedDocs.length > 0 )\r\n {\r\n this.removeUploadedDocTypes();\r\n }\r\n // this.populateDocTypeList();\r\n this.toastr.success('Document deleted successfully!')\r\n \r\n },error =>{\r\n if(error[\"_body\"] !== undefined && error[\"_body\"] !== null){\r\n this.uploadedDocs = [];\r\n\r\n }\r\n this.uploadedDocs = [];\r\n //console.log(error);\r\n \r\n })\r\n this.isLoading = false;\r\n\r\n \r\n\r\n })\r\n\r\n\r\n }\r\n deleteDoc(doc){\r\n \r\n this.showModal.showConfirm('Delete Document', 'Are you sure you want to delete?', `You're about to delete this document`, 'Yes', 'No')\r\n .subscribe((isConfirmed) => {\r\n if (isConfirmed) {\r\n this.deleteDocument(doc)\r\n } else {\r\n return;\r\n }\r\n });\r\n \r\n }\r\n cancelApplication(){\r\n if(this.dataCntrl.application.id==undefined && this.dataCntrl.application.id==null){\r\n this.router.navigate(['/carrier/permit/application/'+this.dataCntrl.carrierID]);\r\n }else{\r\n this.showModal.showConfirm('Delete Application', 'Are you sure you want to delete?', `You're about to delete application`, 'Yes', 'No')\r\n .subscribe((isConfirmed) => {\r\n if (isConfirmed) {\r\n this.deleteApplication()\r\n } else {\r\n return;\r\n }\r\n });\r\n }\r\n }\r\n deleteApplication(){\r\n //console.log(\"delete application\");\r\n\r\n this.permitService.deletePermit(this.dataCntrl.permit.id).subscribe(x =>{\r\n //console.log(x);\r\n this.deleteApp(this.dataCntrl.application.id);\r\n\r\n this.router.navigate(['/carrier/permit/application/'+this.dataCntrl.carrierID]);\r\n\r\n })\r\n//this.dataCntrl.application.id\r\n//this.dataCntrl.permit.id\r\n }\r\n deletePermit(id){\r\n this.permitService.deletePermit(id).subscribe(x =>{\r\n //console.log(x);\r\n })\r\n\r\n }\r\n deleteApp(id){\r\n this.applicationService.deleteApplication(id).subscribe(x =>{\r\n //console.log(x);\r\n })\r\n }\r\n onChange(event){\r\n //console.log(parseInt(event));\r\n this.getDocSaved(parseInt(event));\r\n }\r\n selectedDocType(event){\r\n //console.log(this.docTypeData)\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
Document Uploaded
\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
Document Uploaded
\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n Oops, no file.\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 4\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Document Type\r\n \r\n File Name\r\n View File
{{UserDocument.description}}{{UserDocument.file_name}}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n No Documents found.\r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
Upload Document
\r\n \r\n
\r\n
\r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n Document Type\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { PopupService } from '../../../services/shared/popup.service';\r\nimport { VehicleMakeService } from '../../../services/vehicle-make.service';\r\nimport { VehicleTypeService } from '../../../services/vehicle-type.service';\r\nimport { VehicleService } from '../../../services/vehicle.service';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { ApplicationService } from 'app/services/application.service';\r\nimport { UtilityServiceService } from 'app/services/utility-service.service';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { Router, ActivatedRoute, Params } from '@angular/router';\r\nimport { PermitService } from 'app/services/permit.service';\r\n\r\n@Component({\r\n selector: 'vehicle-viewer',\r\n templateUrl: './vehicle-viewer.component.html',\r\n styleUrls: ['./vehicle-viewer.component.css']\r\n})\r\nexport class VehicleViewerComponent implements OnInit {\r\n @Input('ctrlData') ctrlData: any;\r\n\r\n vehicle: any = {};\r\n listvehicles: any = [];\r\n list_vehicle_type: any = [];\r\n list_vehicle_make: any = [];\r\n editMode: boolean = false;\r\n disableAdd: boolean = false;\r\n max_pass:number = 10000;\r\n min_pass:number = 0;\r\n haserror:boolean=false;\r\n gridload:boolean=false;\r\n tabload:boolean =false;\r\n public pageload = false;\r\n\r\n constructor(private showModal:PopupService, private vehicleTypeService: VehicleTypeService, private vehicleMakeService: VehicleMakeService,\r\n private vehicleService:VehicleService, private toastr:ToastrService, \r\n private applicationService:ApplicationService,\r\n public utility: UtilityServiceService,\r\n private router:Router,private permitService:PermitService,private activeRoute: ActivatedRoute) { }\r\n\r\n \r\n ngOnInit() {\r\n //get the vehicles with this application\r\n /* if(this.listvehicles.length > 0){\r\n this.ctrlData.formValid = true; \r\n }\r\n if(this.ctrlData.vehicles.length > 0)\r\n {\r\n this.listvehicles.push(this.listvehicles);\r\n } */\r\n //console.log(\"Current data\");\r\n //console.log(this.ctrlData);\r\n //console.log(\"end Current data\");\r\n // \r\n this.getVehicleType();\r\n this.getVehicleMake();\r\n this.setVehicles();\r\n this.getApplication();\r\n // if(this.ctrlData.isViewEditControl == true){\r\n // this.editMode = this.dataCntrl.editMode;\r\n // this.setVehicles();\r\n // }\r\n // //console.log(this.ctrlData.vehicles);\r\n\r\n //this.getApplication();\r\n /* if(this.router.url.indexOf('edit') > 0){\r\n this.activeRoute.params.subscribe((params: Params) => {\r\n this.ctrlData.application.id= params['id'];\r\n });\r\n \r\n } */\r\n \r\n }\r\n getApplication(){\r\n this.pageload = true;\r\n \r\n if(this.ctrlData.data.id !== null && this.ctrlData.data.id !== undefined){\r\n this.applicationService.getById(this.ctrlData.data.id).subscribe((data:any) =>{\r\n //console.log(\"vehicles\");\r\n //console.log(data.vehicle);\r\n //console.log(\"end vehicles\");\r\n this.pageload = false;\r\n \r\n for(let i =0; i {\r\n this.list_vehicle_type = result;\r\n }, error => {\r\n //console.log(error);\r\n });\r\n }\r\n \r\n getVehicleMake() {\r\n if(this.list_vehicle_make.length <= 0)\r\n this.vehicleMakeService.getAll().subscribe(result => {\r\n this.list_vehicle_make = result;\r\n }, error => {\r\n //console.log(error);\r\n });\r\n }\r\n \r\n setVehicles(){\r\n\r\n //this.listvehicles = this.ctrlData.vehicle;\r\n /* for(let list of this.listvehicles){\r\n {\r\n list.editMode=false;\r\n }\r\n } */\r\n }\r\n onVehicleTypeSelected(index){\r\n if(this.haserror){\r\n this.haserror = false;\r\n }\r\n let id = this.listvehicles[index].vehicle_type_id;\r\n var obj = this.list_vehicle_type.find(p=>p.id == id);\r\n this.listvehicles[index].vehicle_type = obj.description;\r\n this.max_pass = obj.passengers_max ? obj.passengers_max : 10000 ;\r\n this.min_pass = obj.passengers_min ? obj.passengers_min : 0;\r\n }\r\n\r\n onVehicleMakeSelected(index){\r\n if(this.haserror===true){\r\n this.haserror = false;\r\n }\r\n let id = this.listvehicles[index].vehicle_make_id;\r\n var obj = this.list_vehicle_make.find(p=>p.id == id);\r\n this.listvehicles[index].vehicle_make = obj.description;\r\n }\r\n addNew(){\r\n this.vehicle = {id:-1, vehicle_type_id:-1, vehicle_type: '', vehicle_make_id:-1, vehicle_make: '', is_current: false, registration_number:'', seating_capacity:'', number_passengers:'', gvn:'', vin:'',permit_id : this.ctrlData.permit.id, editMode:true};\r\n this.editMode = true;\r\n if(this.editMode){\r\n this.listvehicles.push(this.vehicle);\r\n }else{\r\n this.disableAdd = true;\r\n }\r\n }\r\n\r\n confirmVehicleDelete(item){\r\n this.showModal.showConfirm('Delete Vehicle', 'Are you sure you want to delete?', `You're about to delete a vehicle with registration: ${item.registration_number}`, 'Yes', 'No')\r\n .subscribe((isConfirmed) => {\r\n if (isConfirmed) {\r\n this.deleteVehicle(item);\r\n if(item.id > 0){\r\n this.vehicleService.removeVehicle(item.id).subscribe(x =>{\r\n //console.log(x);\r\n })\r\n }\r\n \r\n } else {\r\n return;\r\n }\r\n });\r\n }\r\n\r\n deleteVehicle(item){\r\n const index: number = this.listvehicles.indexOf(item);\r\n if (index !== -1) {\r\n this.listvehicles.splice(index, 1);\r\n }\r\n \r\n if(this.listvehicles.length <= 0){\r\n this.ctrlData.formValid = false;\r\n }\r\n }\r\n\r\n editVehicle(item){\r\n const index: number = this.listvehicles.indexOf(item);\r\n if (index !== -1) {\r\n this.listvehicles[index].editMode = true;\r\n }\r\n }\r\n saveVehicle(item){\r\n //console.log(item);\r\n //console.log(this.ctrlData.vehicles)\r\n \r\n let object = {\r\n id: item.id,\r\n vehicle_type_id: item.vehicle_type_id,\r\n vehicle_type: item.vehicle_type,\r\n vehicle_make_id: item.vehicle_make_id,\r\n vehicle_make: item.vehicle_make,\r\n is_current: false,\r\n registration_number: item.registration_number,\r\n seating_capacity: item.seating_capacity,\r\n // number_passengers: item.number_passengers,\r\n gvn: item.gvn,\r\n vin: item.vin,\r\n permit_id : this.ctrlData.permit.id,\r\n date_modified : new Date(),\r\n date_created : new Date(),\r\n user_modified : item.user_created = environment.authWebApi.userData.User.FirstName,\r\n editMode:true\r\n }\r\n \r\n if(item.vehicle_type_id ==-1 || item.vehicle_make_id == -1){\r\n this.haserror = true;\r\n this.showModal.showAlert('Save Vehicle','

Please make sure you captured the below fields:

NB: If you do not yet have a vehicle, you must select the Type you plan to use. Then choose ‘Undecided’ as the Make if you do not have a specific vehicle in mind.

');\r\n }else{\r\n this.ctrlData.vehicles = [];\r\n if(item.id == -1){\r\n this.haserror = false;\r\n item.editMode = false;\r\n this.disableAdd = false;\r\n this.ctrlData.formValid = true;\r\n const index: number = this.listvehicles.indexOf(item);\r\n this.listvehicles[index] = item;\r\n \r\n //save vehicle\r\n this.pageload = true;\r\n this.vehicleService.updateVehicle(object).subscribe(result => {\r\n this.pageload = false;\r\n // this.dataCntrl.vehicles = result;\r\n this.tabload = false;\r\n this.toastr.success('Saved Vehicle Successfully','Vehicle');\r\n // this.updateVehiclelist(result);\r\n },\r\n error => {\r\n this.pageload = false;\r\n this.tabload = false;\r\n // this.showModal.showError('Save Application','Failed to save application. If the problem persist, please contact system administrator.',error);\r\n this.toastr.error('Failed to save application. If the problem persist, please contact system administrator.','Vehicle');\r\n \r\n return;\r\n });\r\n \r\n }else{\r\n //console.log('HERE')\r\n \r\n //console.log(object);\r\n \r\n this.haserror = false;\r\n item.editMode = false;\r\n this.disableAdd = false;\r\n this.ctrlData.formValid = true;\r\n this.listvehicles.push(object)\r\n const index: number = this.listvehicles.indexOf(item);\r\n if (index !== -1) {\r\n this.listvehicles.splice(index, 1);\r\n }\r\n //save vehicle\r\n this.pageload = true;\r\n this.vehicleService.updateVehicle(object).subscribe(result => {\r\n this.pageload = false;\r\n // this.dataCntrl.vehicles = result;\r\n this.tabload = false;\r\n this.toastr.success('Saved Vehicle Successfully','Vehicle');\r\n // this.updateVehiclelist(result);\r\n },\r\n error => {\r\n this.pageload = false;\r\n this.tabload = false;\r\n // this.showModal.showError('Save Application','Failed to save application. If the problem persist, please contact system administrator.',error);\r\n this.toastr.error('Failed to save application. If the problem persist, please contact system administrator.','Vehicle');\r\n \r\n return;\r\n });\r\n \r\n \r\n }\r\n this.ctrlData.vehicles = this.listvehicles;\r\n }\r\n }\r\n\r\n cancelVehicle(item){\r\n if(item.id==-1){\r\n const index: number = this.listvehicles.indexOf(item);\r\n if (index !== -1) {\r\n this.listvehicles.splice(index, 1);\r\n }\r\n this.disableAdd = false;\r\n }else{\r\n item.editMode = false;\r\n this.disableAdd = false;\r\n }\r\n }\r\n\r\n saveVehicles(){\r\n this.tabload = true;\r\n this.pageload = true;\r\n //console.log(this.ctrlData.vehicles);\r\n if(this.ctrlData.application.id !== null && this.ctrlData.application.id !== undefined){\r\n return this.applicationService.setTab(3);\r\n }\r\n this.ctrlData.vehicles.forEach(element => {\r\n element.permit_id = this.ctrlData.permit.id;\r\n element.date_modified = element.date_created = new Date();\r\n element.user_modified = element.user_created = environment.authWebApi.userData.User.Username;\r\n });\r\n if(this.ctrlData.application.id == undefined){\r\n //this.saveApplication();\r\n this.pageload = false;\r\n this.toastr.warning('Please select permit type first','Vehicle');\r\n \r\n }else{\r\n this.pageload = false;\r\n \r\n this.applicationService.setTab(3);\r\n \r\n }\r\n }\r\n\r\n UpdateVehicle(){\r\n this.ctrlData.vehicles.forEach(element => {\r\n element.permit_id = this.ctrlData.permit.id;\r\n element.date_modified = element.date_created = new Date();\r\n element.user_modified = element.user_created = environment.authWebApi.userData.User.Username;\r\n });\r\n this.vehicleService.updateVehicle(this.ctrlData.vehicles).subscribe(result => {\r\n this.pageload = false;\r\n this.ctrlData.vehicles = result;\r\n this.tabload = false;\r\n this.toastr.success('Saved Vehicle Successfully','Vehicle');\r\n // this.updateVehiclelist(result);\r\n //this.getApplication();\r\n \r\n },\r\n error => {\r\n this.pageload = false;\r\n this.tabload = false;\r\n // this.showModal.showError('Save Application','Failed to save application. If the problem persist, please contact system administrator.',error);\r\n this.toastr.error('Failed to save application. If the problem persist, please contact system administrator.','Vehicle');\r\n \r\n return;\r\n })\r\n }\r\n\r\n updateVehiclelist(data){\r\n this.setVehicles();\r\n this.applicationService.setTab(3);\r\n this.utility.confirmCtrl = true;\r\n }\r\n backtoPermit(){\r\n this.applicationService.setTab(1);\r\n }\r\n cancelApplication(){\r\n if(this.ctrlData.application.id==undefined && this.ctrlData.application.id==null){\r\n this.router.navigate(['/carrier/permit/application/'+this.ctrlData.carrierID]);\r\n }else{\r\n this.showModal.showConfirm('Delete Application', 'Are you sure you want to delete?', `You're about to delete application`, 'Yes', 'No')\r\n .subscribe((isConfirmed) => {\r\n if (isConfirmed) {\r\n this.deleteApplication()\r\n } else {\r\n return;\r\n }\r\n });\r\n }\r\n }\r\n deleteApplication(){\r\n //console.log(\"delete application\");\r\n this.pageload = true;\r\n \r\n this.permitService.deletePermit(this.ctrlData.permit.id).subscribe(x =>{\r\n //console.log(x);\r\n this.deleteApp(this.ctrlData.application.id);\r\n this.pageload = false;\r\n \r\n this.router.navigate(['/carrier/permit/application/'+this.ctrlData.carrierID]);\r\n \r\n })\r\n \r\n }\r\n deletePermit(id){\r\n this.permitService.deletePermit(id).subscribe(x =>{\r\n //console.log(x);\r\n })\r\n \r\n }\r\n deleteApp(id){\r\n this.applicationService.deleteApplication(id).subscribe(x =>{\r\n //console.log(x);\r\n })\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n \r\n \r\n Vehicle * Please add all vehicles linked to this application\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
#Start DateTypeRegistration No.No. of SeatsGVMVINLicense or Roadworthy or C.O.F Expiry DateDate From
{{i+1}}\r\n {{ctrlData.permit.date_11 | date:'yyyy/MM/dd'}}\r\n \r\n {{item.vehicle_type}}\r\n \r\n \r\n {{item.registration_number}}\r\n \r\n \r\n {{item.seating_capacity}}\r\n \r\n \r\n {{item.gvn}}\r\n \r\n \r\n {{item.vin}}\r\n \r\n \r\n {{item.date_license_expiry}}\r\n \r\n \r\n {{ctrlData.permit.date_valid_from | date:'yyyy/MM/dd'}}\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n \r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ApplicationService } from 'app/services/application.service';\r\n\r\n@Component({\r\n selector: 'approval-manager',\r\n templateUrl: './approval-manager.component.html',\r\n styleUrls: ['./approval-manager.component.css']\r\n})\r\nexport class ApprovalManagerComponent implements OnInit {\r\n\r\n ctrlData: any = { carrierId: 0, permitId: 0, currentActive: 1, action: 0, ctrlAction: 0, data:{ }}; \r\n constructor() { }\r\n\r\n ngOnInit() {\r\n \r\n } \r\n \r\n}\r\n","
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n\r\n","import { Component, OnInit, Input, AfterViewInit } from '@angular/core';\r\nimport { ApplicationService } from 'app/services/application.service';\r\nimport { StatusService } from 'app/services/status.service';\r\nimport { AuthWebService } from 'app/services/authweb.service';\r\nimport { UtilityServiceService } from 'app/services/utility-service.service';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { ActivatedRoute, Params,Router } from '@angular/router';\r\nimport { environment } from '../../../environments/environment';\r\nimport { accounting } from 'accounting';\r\n\r\n\r\n@Component({\r\n selector: 'list-permit',\r\n templateUrl: './permit-approval-list.component.html',\r\n styleUrls: ['./permit-approval-list.component.css']\r\n})\r\nexport class PermitApprovalListComponent implements OnInit {\r\n\r\n @Input('ctrlData') ctrlData: any;\r\n permits: any = [];\r\n statuses: any = [];\r\n flags = { flagAN: 1, flagNM: 1, flagLU: 1, flagCT: 1, flagAP: 1, flagPN: 1,flagPT: 1, flagST: 1, flagDS: 1 };\r\n ranks = { flagAN: 1, flagNM: 2, flagLU: 3, flagCT: 4,flagAP: 5,flagPN: 6, flagPT: 7, flagST: 8, flagDS: 9 };\r\n sortLabels = { flagAN: \"AccountNumber\", flagNM: \"Name\", flagLU: \"LeadUser\", flagCT: \"CarrierType\", flagAP: \"ApplicationNumber\",flagPN: \"PermitNumber\" ,flagPT: \"PermitType\", flagST: \"Status\", flagDS: \"DateSubmitted\" };\r\n direction: boolean = false;\r\n criteria = \"DateSubmitted\";\r\n rankCtrl: number = 9;\r\n isLoading: Boolean = false;\r\n message: string = 'Loading permit applications, please wait...';\r\n statuses1: any = [];\r\n keyword: any = {};\r\n currentPage = 1;\r\n isEmpty: boolean = false;\r\n pageSize: number = 10;\r\n PermitStatus2: number;\r\n PermitStatus4: number;\r\n PermitStatus6: number;\r\n PermitStatus8: number;\r\n count: number = 0;\r\n disabled = false;\r\n ShowFilter = false;\r\n limitSelection = false;\r\n selectedItems: any = [];\r\n dropdownSettings: any = {};\r\n carrierNumber: string;\r\n carrierName: string;\r\n permitNumber: String;\r\n isDef: boolean = true;\r\n currentUserName : string = '';\r\n filterStatus : any;\r\n\r\n constructor(private msg: ToastrService, private activeRoute: ActivatedRoute, private applicationService: ApplicationService, private statusService: StatusService, private authWebService: AuthWebService, public utility: UtilityServiceService, private router: Router) {}\r\n\r\n ngOnInit() {\r\n if(this.router.url.indexOf('approved') > 0){ \r\n this.filterStatus = 51; \r\n }\r\n else if(this.router.url.indexOf('printed') > 0){ \r\n this.filterStatus = 75; \r\n }\r\n\r\n this.currentUserName = this.authWebService.userData.User.UserName;\r\n this.loadConfigStatuses();\r\n this.initKeyword();\r\n this.loadStatuses();\r\n this.InitMultiselect();\r\n }\r\n\r\n unLockApplication(data)\r\n {\r\n \r\n if(environment.authWebApi.userData.Roles.find(p=>p.Code=='ADMIN') ){ \r\n this.setApplicationLock(data,false);\r\n }\r\n else\r\n {\r\n this.msg.warning('Please contact Manager/Team Lead to unlock this application.','Not Authorized!');\r\n }\r\n }\r\n\r\n setApplicationLock(application,lockStatus)\r\n {\r\n application.isLocked = lockStatus; \r\n application.isLockedBy = lockStatus? this.authWebService.userData.User.UserName : \"\";\r\n \r\n this.applicationService.putApplication(application).subscribe((r)=>\r\n {\r\n if(lockStatus)\r\n {\r\n this.msg.info(\"Application Locked By '\" + application.isLockedBy + \"'\", \"Lock Application\", { timeOut: 1000 });\r\n }\r\n else\r\n {\r\n this.msg.info(\"Application Unlocked\", \"UnLock Application\", { timeOut: 1000 });\r\n }\r\n }, error=>{\r\n \r\n });\r\n }\r\n\r\n onProcessClick = (ctrlAction, data) => {\r\n\r\n this.ctrlData.ctrlAction = ctrlAction;\r\n //this.ctrlData.currentActive = 2;\r\n this.ctrlData.data = data\r\n this.utility.carrierId = data.carrier_id;\r\n this.utility.permitAppId = data.id; \r\n\r\n this.router.navigate(['/carrier/process/permit/application', data.id]);\r\n\r\n }\r\n\r\n loadStatuses = () => {\r\n this.statusService.statusesDDL(2).subscribe((result:any) => {\r\n let activeStatuses : any = result.filter(x => x.is_active == true); \r\n this.statuses = activeStatuses.map(row => {\r\n return { id: row.id, desc: row.desc };\r\n });\r\n // this.statuses.sort((a,b) => a.sort_order > b.sort_order ? 1 : -1 && a.group_code > b.group_code ? 1 : -1 && a.id > b.id ? 1 : -1)\r\n this.statuses.sort((a,b) => a.sort_order > b.sort_order ? 1 : -1 && a.desc > b.desc ? 1 : -1)\r\n this.loadAccounts(this.currentPage, this.pageSize);\r\n });\r\n\r\n }\r\n\r\n InitMultiselect() {\r\n this.dropdownSettings = {\r\n singleSelection: false,\r\n idField: 'id',\r\n textField: 'desc',\r\n selectAllText: 'Select All',\r\n unSelectAllText: 'UnSelect All',\r\n itemsShowLimit: 10,\r\n allowSearchFilter: this.ShowFilter,\r\n maxHeight: 210,\r\n closeDropDownOnSelection: false\r\n };\r\n }\r\n\r\n onItemSelect(item: any) {\r\n }\r\n onSelectAll(items: any) {\r\n }\r\n toogleShowFilter() {\r\n this.ShowFilter = !this.ShowFilter;\r\n this.dropdownSettings = Object.assign({}, this.dropdownSettings, { allowSearchFilter: this.ShowFilter });\r\n }\r\n\r\n handleLimitSelection() {\r\n if (this.limitSelection) {\r\n this.dropdownSettings = Object.assign({}, this.dropdownSettings, { limitSelection: 2 });\r\n } else {\r\n this.dropdownSettings = Object.assign({}, this.dropdownSettings, { limitSelection: null });\r\n }\r\n }\r\n\r\n onDeSelect(item: any) {\r\n }\r\n\r\n onReset = () => {\r\n this.selectedItems = [];\r\n this.carrierNumber = null;\r\n this.carrierName = null;\r\n this.initKeyword();\r\n this.utility.page = 1;\r\n this.message = 'Loading permit applications, please wait...';\r\n this.loadAccounts(this.utility.page, this.pageSize, this.isDef=true);\r\n }\r\n setSearchKeywords = () => {\r\n this.keyword.AccountNumber = (this.carrierNumber) ? this.carrierNumber : \"All\";\r\n this.keyword.Suffix = (this.carrierName) ? this.carrierName : \"All\";\r\n this.keyword.permitNumber=(this.permitNumber) ? this.permitNumber : \"All\";\r\n this.keyword.Statuses = (this.selectedItems) ? this.selectedItems.map(status => { return status.id; }) : [];\r\n }\r\n initKeyword = () => {\r\n this.keyword = { Suffix: \"All\", AccountNumber: \"All\", PermitNumber: \"All\", Statuses: [] };\r\n if(this.filterStatus != null && this.filterStatus != undefined)\r\n {\r\n this.keyword.Statuses = [this.filterStatus];\r\n }\r\n else{\r\n this.retrieveDefaultStatuses();\r\n }\r\n }\r\n\r\n loadConfigStatuses()\r\n {\r\n if (this.authWebService.userData) {\r\n this.PermitStatus2 = + this.authWebService.userData.Configurations.find(config => config.Code == \"PermitStatus2\").Value; // submitted\r\n this.PermitStatus4 = + this.authWebService.userData.Configurations.find(config => config.Code == \"PermitStatus4\").Value; // approved\r\n this.PermitStatus6 = + this.authWebService.userData.Configurations.find(config => config.Code == \"PermitStatus6\").Value; // application and permit fee quote has been accepted\r\n this.PermitStatus8 = + this.authWebService.userData.Configurations.find(config => config.Code == \"PermitStatus8\").Value; // permit has been printed\r\n }\r\n }\r\n\r\n isSearchable = () => {\r\n return (this.carrierNumber != null || this.permitNumber != null ||this.carrierName != null || this.selectedItems.length > 0);\r\n }\r\n\r\n retrieveDefaultStatuses = () => {\r\n \r\n this.keyword.Statuses = [this.PermitStatus2, 74]; // Submitted, STATUS CODE 74 = Submitted - Compliance\r\n \r\n }\r\n\r\n checkKey(event){\r\n const charCode = (event.which) ? event.which : event.keyCode;\r\n if (charCode == 13) {\r\n this.onSearch();\r\n return;\r\n }\r\n }\r\n\r\n onSearch = () => {\r\n if (!this.isSearchable()) {\r\n this.msg.info(\"Please provide at least one filter value.\", \"Permit Approval Search\", { timeOut: 5000 });\r\n return;\r\n }\r\n this.setSearchKeywords();\r\n this.utility.page = 1;\r\n this.message = \"Searching for carrier accounts, please wait...\";\r\n this.loadAccounts(this.utility.page, this.pageSize, this.isDef = false);\r\n }\r\n\r\n onChange = () => {\r\n this.loadAccounts(this.utility.page = 1, this.pageSize, this.isDef);\r\n }\r\n\r\n loadAccounts = (page: number = 1, pageSize: number = 10, isDef: boolean = true) => {\r\n this.isLoading = true; //console.log('keyword: ', this.keyword) \r\n this.applicationService.searchApplications(this.keyword, page, pageSize,isDef,this.rankCtrl,this.direction).subscribe((result:any) => {\r\n this.permits = result.Items;\r\n \r\n let permitsArray: any;\r\n this.permits.forEach(permt => {\r\n if (permt.number_of_permits > 1) {\r\n permitsArray = permt.Permits.filter(x => x.RegNumber != null)\r\n permt.number_of_permits = permitsArray.length;\r\n \r\n }\r\n });\r\n\r\n // this.permits = result.Items; \r\n \r\n this.count = result.Count;\r\n this.onExcuteSort(this.rankCtrl);\r\n\r\n this.isLoading = false;\r\n this.isEmpty = false;\r\n\r\n }, error => {\r\n this.permits = [];\r\n this.count = 0;\r\n this.isEmpty = true;\r\n //console.log('Error occured: ' + error);\r\n this.isLoading = false;\r\n });\r\n this.utility.page = page;\r\n\r\n }\r\n\r\n formatCurrency(value) {\r\n return accounting.formatMoney(value, 'R', 2, ' ', '.');\r\n}\r\n\r\n cleanUpNumberOfPermits(cleanPermits) {\r\n let noPermits: any;\r\n cleanPermits.forEach(element => {\r\n // if (element.number_of_permits > 1) {\r\n // numPermits = element.vehicle.filter(x => x != null);\r\n // if (numPermits.length > 0) {\r\n // element.number_of_permits = numPermits.length;\r\n // } else {\r\n // element.number_of_permits = 1;\r\n // }\r\n // }\r\n });\r\n this.permits = cleanPermits\r\n //console.log(this.permits);\r\n }\r\n\r\n onSort(rank: number) {\r\n this.direction = !this.direction;\r\n this.rankCtrl = rank;\r\n this.onExcuteSort(rank);\r\n }\r\n\r\n onResetFlags() {\r\n this.flags = { flagAN: 1, flagNM: 1, flagLU: 1, flagCT: 1, flagAP:1,flagPN: 1, flagPT: 1, flagST: 1, flagDS: 1 }; }\r\n\r\n onExcuteSort(rank: number) {\r\n this.onResetFlags();\r\n let sort = (this.direction) ? 3 : 2;\r\n this.criteria = null;\r\n switch (rank) {\r\n case this.ranks.flagAN: {\r\n this.criteria = this.sortLabels.flagAN;\r\n this.flags.flagAN = sort;\r\n break;\r\n }\r\n case this.ranks.flagNM: {\r\n this.criteria = this.sortLabels.flagNM;\r\n this.flags.flagNM = sort;\r\n break;\r\n }\r\n case this.ranks.flagLU: {\r\n this.criteria = this.sortLabels.flagLU;\r\n this.flags.flagLU = sort;\r\n break;\r\n }\r\n case this.ranks.flagCT: {\r\n this.criteria = this.sortLabels.flagCT;\r\n this.flags.flagCT = sort;\r\n break;\r\n }\r\n case this.ranks.flagAP: {\r\n this.criteria = this.sortLabels.flagAP;\r\n this.flags.flagAP = sort;\r\n break;\r\n }\r\n case this.ranks.flagPN: {\r\n this.criteria = this.sortLabels.flagAP;\r\n this.flags.flagAP = sort;\r\n break;\r\n }\r\n case this.ranks.flagPT: {\r\n this.criteria = this.sortLabels.flagPT;\r\n this.flags.flagPT = sort;\r\n break;\r\n }\r\n case this.ranks.flagST: {\r\n this.criteria = this.sortLabels.flagST;\r\n this.flags.flagST = sort;\r\n break;\r\n }\r\n default: {\r\n this.criteria = this.sortLabels.flagDS;\r\n this.flags.flagDS = sort;\r\n break;\r\n }\r\n }\r\n\r\n }\r\n\r\n\r\n onNextOrPrevious(page: number = 1) {\r\n this.message = 'Loading permit applications, please wait...';\r\n this.loadAccounts(page, this.pageSize, this.isDef);\r\n this.currentPage = page;\r\n return page;\r\n }\r\n\r\n onProcessPrint=(data)=>{ \r\n this.ctrlData.currentActive = 4;\r\n this.ctrlData.data = data;\r\n }\r\n\r\n isPrintable = (statusId: number) => {\r\n var canPrint : boolean;\r\n canPrint = (this.PermitStatus4 === statusId) || (statusId === this.PermitStatus8);\r\n \r\n return (canPrint);\r\n }\r\n}\r\n\r\n","
\r\n \r\n
\r\n
\r\n
\r\n
Manage Permit Application Approvals
\r\n
\r\n
\r\n
\r\n
\r\n Filters\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n Permit Applications\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 10\" style=\"padding-left:0px;margin-left:0px;\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Lock\r\n \r\n Acc No\r\n \r\n \r\n Name\r\n \r\n \r\n Balance\r\n \r\n \r\n App\r\n \r\n \r\n Type\r\n \r\n \r\n Num Permits\r\n \r\n Submitted On\r\n \r\n \r\n Status\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{item.AccountNumber}}{{item.Name}}{{formatCurrency(item.AccountBalance)}}{{item.ApplicationNumber}}{{item.PermitType}}{{item.number_of_permits}}{{item.DateSubmitted?.toLocaleString() | date:'yyyy/MM/dd HH:mm'}}{{item.status_desc}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n No permit applications found.\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { StatusService } from 'app/services/status.service';\r\nimport { AuthWebService } from 'app/services/authweb.service';\r\nimport { CarrierService } from 'app/services/carrier.service';\r\nimport { PermitService } from 'app/services/permit.service';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { ApplicationService } from 'app/services/application.service';\r\nimport { CurrencyFormat } from 'app/pipes/currencyFormat.pipe';\r\nimport { Router, ActivatedRoute, Params } from '@angular/router';\r\nimport { UtilityServiceService } from 'app/services/utility-service.service';\r\nimport { environment } from 'environments/environment';\r\n\r\ndeclare var $;\r\n\r\n@Component({\r\n selector: 'correspondence',\r\n templateUrl: './permit-correspondence.component.html',\r\n styleUrls: ['./permit-correspondence.component.css']\r\n})\r\nexport class PermitCorrespondenceComponent implements OnInit {\r\n\r\n @Input('ctrlData') ctrlData: any;\r\n description: any;\r\n gridload:boolean=true;\r\n approvalRes:any;\r\n statuses: any = [];\r\n emailContacts:any = {};\r\n crspdType:any=\"\";\r\n @Input() dataCntrl: any;\r\n message = \"Processing. Please wait...\";\r\n isLoading : boolean = false;\r\n status:any;\r\n statusId:any=\"\";\r\n addInfo: boolean = false;\r\n addInfoStatus: any = [];\r\n headingMsg: string = \"\";\r\n aUser: any = {};\r\n constructor(private statusService: StatusService, private authWebService: AuthWebService,\r\n private carrierService: CarrierService,private permitService:PermitService,private toastr:ToastrService,\r\n private applicationService:ApplicationService,private utility:UtilityServiceService\r\n ,private router: Router, private activeRoute: ActivatedRoute,) {\r\n this.activeRoute.params.subscribe((params: Params) => {\r\n this.getApplication(params['id']);\r\n this.aUser = environment.authWebApi.userData.User;\r\n });\r\n \r\n \r\n }\r\n\r\n ngOnInit() {\r\n this.statusId=this.utility.approveStatusId\r\n this.gridload=false;\r\n this.retrieveAddInfoStatus();\r\n this.retrieveSubmitStatus();\r\n\r\n if (this.utility.btnAction == 1) {\r\n this.headingMsg = \"- Additional Information\";\r\n this.addInfo = true;\r\n \r\n } else if (this.utility.btnAction == 5) {\r\n this.headingMsg = \"- Change Status\";\r\n }\r\n }\r\n changes(){\r\n\r\n \r\n\r\n }\r\n\r\n statusUpdate(){\r\n console.log(this.approvalRes.status_id);\r\n\r\n\r\n if(this.approvalRes.status_id==93 || this.approvalRes.status_id== 11){\r\n this.description = this.authWebService.userData.Configurations.find(config => config.Code == \"CarrierStatus93\").Value.replace(\"helpdesk@cbrta.co.za\", this.aUser.EmailAddress);\r\n }else\r\n {\r\n this.description = \"\";\r\n }\r\n\r\n }\r\n\r\n getStatus(){\r\n this.statusService.getAll().subscribe((x:any) => { \r\n \r\n this.statuses = x.filter(s=>s.id != 51);\r\n this.statuses.sort((a,b) => a.sort_order > b.sort_order ? 1 : -1 && a.group_code > b.group_code ? 1 : -1 && a.id > b.id ? 1 : -1); \r\n\r\n this.status = this.statuses.find(x => x.id == this.approvalRes.status_id);\r\n console.log(\"STATUS\",this.status);\r\n\r\n var tmpStatuses: any = [];\r\n this.statuses.forEach(y => {\r\n if (y.group_code >= this.status.group_code ) { \r\n tmpStatuses.push(y); \r\n } \r\n });\r\n this.statuses = tmpStatuses;\r\n //console.log(this.statuses);\r\n\r\n \r\n\r\n })\r\n }\r\n\r\n onSAveAndSend = () => {\r\n this.isLoading = true;\r\n\r\n if(this.approvalRes.status_id == 11 && this.status.id==13 )\r\n {\r\n this.toastr.warning(\"The current application status cannot be changed to 'Submitted'\");\r\n this.isLoading = false;\r\n return;\r\n }\r\n \r\n if (this.utility.btnAction == 1) {\r\n \r\n this.approvalRes.status_id = this.addInfoStatus.id;\r\n this.approvalRes.status = this.addInfoStatus.code; \r\n }\r\n let body = {email : this.crspdType, body: this.description}\r\n let desc = \"\";\r\n this.applicationService.putApplication(this.approvalRes).subscribe(res=>{\r\n //console.log(res);\r\n this.sendEmail(body);\r\n });\r\n }\r\n\r\n sendEmail(body){\r\n this.permitService.sendApproveEmail(body).subscribe(result => {\r\n this.isLoading = false;\r\n this.router.navigateByUrl('permit/approval')\r\n this.toastr.success('Mail Sent Successfully');\r\n });\r\n }\r\n\r\n selectUser(email){\r\n this.crspdType=email;\r\n }\r\n\r\n retrieveSubmitStatus = () => {\r\n //console.log(this.utility.btnAction);\r\n // this.description = this.authWebService.userData.Configurations.find(config => config.Code == \"ConfirmEmail2\").Value;\r\n if (this.authWebService.userData) {\r\n switch (this.utility.btnAction) {\r\n case 1:\r\n this.description = this.authWebService.userData.Configurations.find(config => config.Code == \"AdditionalEmail2\").Value.Value.replace(\"helpdesk@cbrta.co.za\", this.aUser.EmailAddress);;\r\n break;\r\n case 2:\r\n this.description = this.authWebService.userData.Configurations.find(config => config.Code == \"ConfirmEmail2\").Value;\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n\r\n }\r\n //console.log(this.authWebService.userData.Configurations.find(config => config.Code == \"AdditionalEmail2\").Value)\r\n //console.log(this.authWebService.userData.Configurations.find(config => config.Code == \"ConfirmEmail3\").Value)\r\n\r\n }\r\n\r\n getCorrespondenceTo(id) {\r\n this.carrierService.correspondenceToByCarrierId(id).subscribe(x => {\r\n this.emailContacts = x;\r\n //console.log(this.emailContacts);\r\n })\r\n }\r\n \r\n getApplication(id){\r\n this.isLoading =true;\r\n\r\n this.applicationService.getById(id).subscribe(data =>{\r\n //console.log(data);\r\n this.isLoading =false;\r\n\r\n this.approvalRes = data;\r\n this.getCorrespondenceTo(this.approvalRes.carrier_id);\r\n this.getStatus();\r\n if(this.utility.btnAction==1){\r\n if(this.utility.actionStatus!=0){\r\n // this.approvalRes.status_id=this.utility.actionStatus;\r\n this.description = this.authWebService.userData.Configurations.find(config => config.Code == \"CarrierStatus93\").Value.replace(\"helpdesk@cbrta.co.za\", this.aUser.EmailAddress);\r\n }\r\n }else if(this.approvalRes.status_id!=21 && this.approvalRes.status_id!=31 && this.utility.btnAction==2){\r\n if(this.utility.actionStatus!=0){\r\n // this.approvalRes.statusId=this.utility.actionStatus;\r\n // this.approvalRes.status_id=this.utility.actionStatus;\r\n }\r\n }\r\n },err =>{\r\n this.isLoading =false;\r\n })\r\n \r\n }\r\n redirectList(){\r\n let prevUrl = localStorage.getItem('previousUrl');\r\n this.router.navigate([prevUrl])\r\n // this.router.navigate(['/permit/approval'])\r\n }\r\n\r\n retrieveAddInfoStatus() {\r\n this.statusService.getAll().subscribe((all_statuses:any) => {\r\n let allStatuses = all_statuses;\r\n let additionalInformation = allStatuses.find(status => status.id == 2)\r\n if (additionalInformation != undefined && additionalInformation != null) {\r\n this.addInfoStatus.code = additionalInformation.code;\r\n this.addInfoStatus.id = additionalInformation.id;\r\n }\r\n });\r\n }\r\n\r\n}\r\n","\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

\r\n \r\n \r\n Permit Approval {{headingMsg}}\r\n

\r\n
\r\n
\r\n \r\n
\r\n Carrier Code : {{approvalRes.carrier.carrier_code}}\r\n Carrier Name : {{approvalRes.carrier.name}}\r\n Registration No : {{approvalRes.carrier.registration_number}}\r\n
\r\n \r\n Permit Type : {{approvalRes.permit_type.description}}\r\n Date Submitted : {{approvalRes.submission_date | date:'dd/MM/yyyy'}}\r\n Permit Status : {{status.description}}\r\n
\r\n \r\n \r\n \r\n Change Permit application Status to
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Email to be sent to {{approvalRes.carrier.email}}
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
Send correspondence to
\r\n
\r\n Lead User
\r\n Main Contact
\r\n Owner
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { UtilityServiceService } from 'app/services/utility-service.service';\r\nimport { error } from 'protractor';\r\nimport { PermitService } from 'app/services/permit.service';\r\nimport { AuthWebService } from 'app/services/authweb.service';\r\nimport { ToastContainerDirective, ToastrService } from 'ngx-toastr';\r\nimport { TransportAssocService } from 'app/services/transport-assoc.service';\r\nimport { DatePipe } from '@angular/common';\r\nimport { PermitTypeService } from 'app/services/permit-type.service';\r\nimport { PopupService } from 'app/services/shared/popup.service';\r\nimport { CompliancereturnsService } from 'app/services/compliancereturns.service';\r\nimport { ApplicationService } from 'app/services/application.service';\r\nimport { FormControl, Validators, FormGroup, FormBuilder } from '@angular/forms';\r\n\r\nimport { Router, ActivatedRoute, Params } from '@angular/router';\r\nimport { isDate } from 'angular';\r\nimport { from } from 'rxjs';\r\nimport { ConfirmDialogService } from 'app/services/shared/confirm-dialog/confirm-dialog.service';\r\n\r\ndeclare var printJS: any;\r\n\r\n\r\ndeclare var $;\r\n\r\n@Component({\r\n selector: 'printing',\r\n templateUrl: './printing.component.html',\r\n styleUrls: ['./printing.component.css']\r\n})\r\n\r\nexport class PrintingComponent implements OnInit {\r\n\r\n @Input('ctrlData') ctrlData: any;\r\n count: number = 0;\r\n isLoading: Boolean = false;\r\n message: string = 'Loading permits, please wait...';\r\n currentPage = 1;\r\n isEmpty: boolean = false;\r\n permits: any = [];\r\n page = 1;\r\n pageSize: number = 10;\r\n FaceValueNumber: string = \"\";\r\n criteria = \"DateValidFrom\";\r\n numberofdays = 0;\r\n user = '';\r\n dateValidFrom = null;\r\n isPrinted = false;\r\n FaceExists = false;\r\n description: any = \"\";\r\n maxnumberofdays: number;\r\n pritIndex: any = \"\";\r\n PermitStatus8: number;\r\n PermitStatus2: number;\r\n PermitStatus4: number;\r\n PermitStatus6: number;\r\n NumberOfPassengers: number;\r\n userRoles: any;\r\n pdfSrc:any;\r\n enabledNumber:boolean=false;\r\n isReprint:boolean = false;\r\n permTypeCode:any;\r\n currentDate:Date= new Date();\r\n //contractNumberOfDays: number;\r\n enableChangeNumberOfPassengers: boolean = false;\r\n complianceCertficateList : any = [];\r\n applicationId : any;\r\n form: FormGroup;\r\n isJustApproved : Boolean = false;\r\n oldStartDate : Date;\r\n oldEndDate :Date;\r\n isPermitPrintInProgress: boolean = false;\r\n\r\n constructor(private formBuilder: FormBuilder, public utility: UtilityServiceService,\r\n private complianceService:CompliancereturnsService,private transService: TransportAssocService,\r\n private printService: PermitService, private permitType: PermitTypeService, private authWebService: AuthWebService,\r\n private notify: ToastrService, private datepipe: DatePipe, private msgService: PopupService,\r\n public applicationService: ApplicationService, private router : Router, private activeRoute: ActivatedRoute,\r\n private confirmDialogService: ConfirmDialogService) { }\r\n\r\n\r\n\r\n ngOnInit() {\r\n this.isLoading = true;\r\n if(this.ctrlData == null || this.ctrlData == undefined)\r\n {\r\n this.ctrlData = null;\r\n\r\n this.activeRoute.params.subscribe((params: Params) => {\r\n let appId = params['pId'];\r\n let isapproved = JSON.parse(params['isapproved']);\r\n this.isJustApproved = isapproved;\r\n if(isapproved)\r\n {\r\n this.applicationService.getApplicationByAppId(appId).subscribe(x=>\r\n {\r\n this.ctrlData = {data:x};\r\n this.initPage();\r\n this.isLoading = false;\r\n });\r\n }\r\n });\r\n }\r\n else\r\n {\r\n this.initPage();\r\n this.isLoading = false;\r\n }\r\n }\r\n\r\n setApplicationLock(application,lockStatus)\r\n {\r\n application.isLocked = lockStatus;\r\n application.isLockedBy = lockStatus? this.authWebService.userData.User.UserName : \"\";\r\n\r\n this.applicationService.putApplication(application).subscribe((r)=>\r\n {\r\n if(lockStatus)\r\n {\r\n this.notify.info(\"Application Locked By '\" + application.isLockedBy + \"'\", \"Lock Application\", { timeOut: 1000 });\r\n }\r\n else\r\n {\r\n this.notify.info(\"Application Unlocked\", \"UnLock Application\", { timeOut: 1000 });\r\n }\r\n }, error=>{\r\n\r\n });\r\n }\r\n\r\n initPage()\r\n {\r\n if(this.ctrlData.data != null && this.ctrlData.data != undefined)\r\n {\r\n this.ctrlData.application = this.ctrlData.data;\r\n }\r\n if(this.ctrlData.data.isLocked == false)\r\n {\r\n this.setApplicationLock(this.ctrlData.data, true);\r\n }\r\n\r\n this.applicationId = this.ctrlData.data.id;\r\n this.initForm();\r\n this.utility.page=1;\r\n this.currentDate= new Date();\r\n\r\n this.count = this.ctrlData.data.Permits.length;\r\n\r\n this.initializeValidFromDate();\r\n this.isEmpty = (this.count == 0) ? true : false;\r\n this.user = this.authWebService.userInfo().username;\r\n this.userRoles = this.authWebService.userData.Roles;\r\n\r\n this.PermitStatus2 = + this.authWebService.userData.Configurations.find(config => config.Code == \"PermitStatus2\").Value; // submitted\r\n this.PermitStatus4 = + this.authWebService.userData.Configurations.find(config => config.Code == \"PermitStatus4\").Value; // approved\r\n this.PermitStatus6 = + this.authWebService.userData.Configurations.find(config => config.Code == \"PermitStatus6\").Value; // application and permit fee quote has been accepted\r\n this.PermitStatus8 = + this.authWebService.userData.Configurations.find(config => config.Code == \"PermitStatus8\").Value; // permit has been printed\r\n\r\n this.permTypeCode = this.ctrlData.data.permit_type.code;\r\n this.initPermitTypeDays();\r\n this.initPermitMaxDate();\r\n\r\n if(this.ctrlData.data.permit_type.permit_years == 5){\r\n this.getComplianceCertificates();\r\n }\r\n }\r\n\r\n initForm() {\r\n this.form = this.formBuilder.group({\r\n route_detail: ['', [Validators.required]],\r\n route_summary: ['', [Validators.required]]\r\n });\r\n }\r\n\r\n formChanges(){\r\n this.form.statusChanges.subscribe(\r\n result => {\r\n //this.ctrlData.formValid = result == 'VALID'? true : false\r\n });\r\n }\r\n\r\n initPermitMaxDate()\r\n {\r\n let isValidPermitType: boolean = (\r\n this.permTypeCode.includes(\"TOG-F-14\") ||\r\n this.permTypeCode.includes(\"TOG-FTD-14\") ||\r\n this.permTypeCode.includes(\"TOG-C-14\") ||\r\n this.permTypeCode.includes(\"TOG-SE-14\") ||\r\n this.permTypeCode.includes(\"TOG-TOE-14\") ||\r\n this.permTypeCode.includes(\"TOG-O-14D\") ||\r\n this.permTypeCode.includes(\"syxqyp\") ||\r\n this.permTypeCode.includes(\"nlg3ty\")\r\n );\r\n\r\n for (let i = 0; i < this.count; i++) {\r\n\r\n let tempToDate : Date = new Date(this.ctrlData.data.Permits[i].DateValidFrom);\r\n //console.log(\"this.ctrlData.data.Permits[i].MaxDate : \" + JSON.stringify(this.ctrlData.data.Permits[i].MaxDate));\r\n if(isValidPermitType)\r\n {\r\n this.ctrlData.data.Permits[i].MaxDate = this.addDays (tempToDate, 14);\r\n // console.log(\"this.ctrlData.data.Permits[i].MaxDate : \" + JSON.stringify(this.ctrlData.data.Permits[i].MaxDate));\r\n }\r\n }\r\n }\r\n\r\n initPermitTypeDays()\r\n {\r\n let isValidPermitType: boolean = (\r\n this.permTypeCode.includes(\"TOG-F-14\") ||\r\n this.permTypeCode.includes(\"TOG-FTD-14\") ||\r\n this.permTypeCode.includes(\"TOG-C-14\") ||\r\n this.permTypeCode.includes(\"TOG-SE-14\") ||\r\n this.permTypeCode.includes(\"TOG-TOE-14\") ||\r\n this.permTypeCode.includes(\"TOG-O-14D\") ||\r\n this.permTypeCode.includes(\"7mspyr\") ||\r\n this.permTypeCode.includes(\"f9kudq\") ||\r\n this.permTypeCode.includes(\"syxqyp\") ||\r\n this.permTypeCode.includes(\"nlg3ty\") ||\r\n this.permTypeCode.includes(\"1n9udp\")\r\n );\r\n if(isValidPermitType)\r\n {\r\n // this.contractNumberOfDays = 14;\r\n this.enableChangeNumberOfPassengers = false;\r\n }\r\n else{\r\n // this.contractNumberOfDays = 365 * 5;\r\n this.enableChangeNumberOfPassengers = true;\r\n }\r\n }\r\n\r\n\r\n isPrintable = (fv: any) => {\r\n if (fv == null) return false;\r\n return fv.length > 0;\r\n }\r\n\r\n\r\n\r\n changeView = (activeC: number) => {\r\n if(this.isJustApproved)\r\n {\r\n this.router.navigateByUrl('/permit/approval');\r\n }\r\n else{\r\n this.ctrlData.currentActive = activeC;\r\n }\r\n }\r\n\r\n updateRouteForApproval()\r\n {\r\n this.isLoading = true;\r\n this.applicationService.getById(this.applicationId).subscribe((application:any)=>{\r\n application.route_detail = this.form.value.route_detail;\r\n\r\n this.applicationService.putApplication(application)\r\n .subscribe(result => {\r\n this.isLoading = false;\r\n // this.saveDepatureDestination();\r\n this.notify.success('Update Route Details','Route details updated successfully');\r\n\r\n },\r\n error => {\r\n this.isLoading = false;\r\n\r\n this.notify.error('Failed to update route details. If the problem persist, please contact system administrator.','Save Application')\r\n\r\n // this.showModal.showError('Save Application','Failed to save application. If the problem persist, please contact system administrator.',error);\r\n return;\r\n });\r\n });\r\n }\r\n\r\n\r\n onNextOrPrevious = (page) => {\r\n return page;\r\n }\r\n\r\n getComplianceCertificates(){\r\n this.complianceCertficateList = [];\r\n this.ctrlData.data.Permits.forEach(permit => {\r\n this.complianceService.GetComplianceCertificatesById(permit.ID).subscribe((certs:any) =>{\r\n certs.forEach(cert => {\r\n this.complianceCertficateList.push(cert);\r\n });\r\n });\r\n });\r\n\r\n }\r\n\r\n permitPrintCompliance(obj)\r\n {\r\n this.isLoading = true;\r\n this.tryPrintingPermitCompliance(obj);\r\n }\r\n\r\n permitPrint(obj){\r\n if(this.validateNumberOfDays(obj))\r\n {\r\n if((this.PermitStatus4 != obj.status_id) && (obj.status_id != this.PermitStatus8))\r\n {\r\n this.notify.warning(`Cannot print Non-Approved Permit`, 'Permit Printing');\r\n }\r\n else\r\n if(this.PermitStatus8==obj.status_id && !obj.enabledNumber){\r\n // this.msgService.showYesNo('Permit print', `This Permit is already Printed,do you want to reprint permit?`, '').subscribe(isConfirmed => {\r\n // if(isConfirmed){\r\n\r\n // this.enabledNumber=true;\r\n // obj.enabledNumber=true;\r\n // this.isReprint = true;\r\n // //this.reprintPermit(obj.ID);\r\n // }else{\r\n // obj.enabledNumber=false;\r\n // return;\r\n // }\r\n // });\r\n this.confirmDialogService.confirmThis(\"This Permit is already Printed,do you want to reprint permit?\", () => {\r\n\r\n this.enabledNumber=true;\r\n obj.enabledNumber=true;\r\n this.isReprint = true;\r\n //this.reprintPermit(obj.ID);\r\n\r\n }, () => {\r\n obj.enabledNumber=false;\r\n return;\r\n })\r\n }else{\r\n this.updateCarrier(obj);\r\n }\r\n\r\n }\r\n }\r\n\r\n\r\n updateCarrier(obj) {\r\n if (!this.isPrintable(obj.FaceValueNumber)) {\r\n this.notify.warning(`A face value number for permit number ${obj.PermitNumber} is missing.`, 'Permit Printing');\r\n return;\r\n }\r\n\r\n if(!this.isReprint)\r\n {\r\n this.UpdateDate(obj);\r\n }\r\n\r\n this.isLoading = true;\r\n let carrierObj: any = Object();\r\n carrierObj['id'] = obj.ID;\r\n carrierObj['carrier_code'] = this.ctrlData.data.carrier.carrier_code;\r\n carrierObj['registration_number'] = this.ctrlData.data.carrier.registration_number;\r\n carrierObj['tax_number'] = this.ctrlData.data.carrier.tax_number;\r\n carrierObj['carrier_name'] = this.ctrlData.data.Name;\r\n carrierObj['trading_name'] = this.ctrlData.data.carrier.trading_name;\r\n carrierObj['physical_address_1'] = this.ctrlData.data.carrier.physical_address_1;\r\n carrierObj['physical_address_2'] = this.ctrlData.data.carrier.physical_address_2;\r\n carrierObj['physical_address_3'] = this.ctrlData.data.carrier.physical_address_3;\r\n carrierObj['physical_address_town'] = this.ctrlData.data.carrier.physical_address_town;\r\n carrierObj['physical_post_code'] = this.ctrlData.data.carrier.physical_post_code;\r\n // this.tryPrinting(obj);\r\n\r\n // this.printService.UpdatePreviousPermitsIssued(obj.PermitNumber).subscribe(res => {\r\n\r\n\r\n // });\r\n\r\n this.getAsscoName(this.ctrlData.data.carrier.transport_assoc_id, carrierObj, obj);\r\n\r\n }\r\n getAsscoName(transportAssocId, carrierObj, obj) {\r\n\r\n if (transportAssocId == null) {\r\n this.printService.updateCarrier(carrierObj).subscribe(res => {\r\n\r\n this.tryPrinting(obj);\r\n });\r\n }\r\n else {\r\n this.transService.getTransporAssocById(transportAssocId).subscribe((res:any) => {\r\n //console.log(res);\r\n if (res != null) {\r\n carrierObj['assoc_name'] = res.description;\r\n } else {\r\n carrierObj['assoc_name'] = \"\";\r\n }\r\n this.printService.updateCarrier(carrierObj).subscribe(res => {\r\n this.tryPrinting(obj);\r\n });\r\n }, error => {\r\n this.printService.updateCarrier(carrierObj).subscribe(res => {\r\n this.tryPrinting(obj);\r\n });\r\n }\r\n )\r\n }\r\n }\r\n tryPrintingPermitCompliance(obj: any)\r\n {\r\n this.isLoading = true;\r\n let permitTemplate : string = \"Compliance\";\r\n this.message = 'Processing your request, please wait...';\r\n\r\n var printobj = {\r\n Reportname : permitTemplate,\r\n validFrom :obj.ComplianceEndDate,\r\n pId :obj.ComplianceDetailId,\r\n face_value :obj.FaceValueNumber,\r\n username :this.user,\r\n NumDays:0,\r\n isCompliancePrint:true\r\n };\r\n\r\n\r\n this.printService.PrintingPermit(printobj).subscribe(x =>{\r\n\r\n const url= window.URL.createObjectURL(x);\r\n this.isPermitPrintInProgress = true;\r\n printJS({ printable: url, type: 'pdf', showModal: true, modalMessage: 'Processing your request, please wait...' });\r\n this.isLoading = false;\r\n this.isPermitPrintInProgress = false;\r\n this.ngOnInit();\r\n },error => {\r\n console.log(error);\r\n });\r\n }\r\n tryPrinting = (obj: any) => {\r\n let permitTemplate : string = this.ctrlData.data.permit_type.PermitTemplate;\r\n this.isLoading = true;\r\n this.message = 'Processing your request, please wait...';\r\n var printobj = {\r\n Reportname : permitTemplate,\r\n validFrom :obj.DateValidFrom,\r\n pId :obj.ID,\r\n face_value :obj.FaceValueNumber,\r\n username :this.user,\r\n NumDays:obj.NumberOfDays,\r\n RegNumber:obj.RegNumber,\r\n isReprint : this.isReprint\r\n\r\n };\r\n var printAnnexureobj = {\r\n Reportname : 'Annexure',\r\n validFrom :obj.DateValidFrom,\r\n pId :obj.ID,\r\n face_value :obj.FaceValueNumber,\r\n username :this.user,\r\n NumDays:obj.NumberOfDays\r\n\r\n };\r\n //console.log(printobj);\r\n this.printService.isPrinted(obj.ID).subscribe((rsc:any) => {\r\n this.isPrinted = false;\r\n this.isPrinted = rsc.IsPrinted;\r\n if (!this.isPrinted || (this.isPrinted && this.isReprint)) {\r\n\r\n this.printService.getFaceValueNumber(obj.FaceValueNumber).subscribe((result:any) => {\r\n // this.isLoading = false;\r\n this.FaceValueNumber = result.HasValue;\r\n\r\n\r\n //console.log(JSON.stringify(obj) + \" :test\");\r\n\r\n if (!this.FaceValueNumber) {\r\n\r\n this.enabledNumber=false;\r\n obj.enabledNumber=false;\r\n\r\n // console.log('obj.TemLongID : ' + obj.TemLongID);\r\n //console.log('!obj.Saved : ' + !obj.Saved);\r\n //console.log('obj.NumberOfDays : ' + obj.NumberOfDays);\r\n // console.log('this.ctrlData.data.permit_type.permit_days : ' + this.ctrlData.data.permit_type.permit_days);\r\n // console.log('(obj.TemLongID == 1 && !obj.Saved && (obj.NumberOfDays != this.ctrlData.data.permit_type.permit_days)) : ' +\r\n /// (obj.TemLongID == 1 && !obj.Saved && (obj.NumberOfDays != this.ctrlData.data.permit_type.permit_days)));\r\n\r\n if (obj.TemLongID == 1 && !obj.Saved && (obj.NumberOfDays != this.ctrlData.data.permit_type.permit_days)) {\r\n\r\n //this.isLoading = false;\r\n // this.notify.warning(\"The permit days have changed, please save the permit\",\"Permit Printing\");\r\n // this.msgService.showYesNo('Permit Print', `You have changed the permit days but haven't saved them yet`, 'Do you want to print the permit with the old Valid To dates')\r\n // .subscribe(isConfirmed => {\r\n // if (isConfirmed) {\r\n\r\n\r\n // this.printService.PrintingPermit(printobj).subscribe(x =>{\r\n // const url= window.URL.createObjectURL(x);\r\n // //console.log(x);\r\n // printJS({ printable:url, type: 'pdf', showModal: true, modalMessage: 'Processing your request, please wait...' });\r\n\r\n // obj.status_id = 75;\r\n // // this.printService.PrintingAnneuxre(printAnnexureobj).subscribe(x=>{\r\n // // //console.log(x);\r\n // // const url= window.URL.createObjectURL(x);\r\n // // //console.log(url);\r\n\r\n // // this.msgService.showYesNo('Permit Print', `You are about to open Permit Annexure`, 'Do you want to open the Annexure?').subscribe(isConfirmed =>\r\n // // {\r\n // // if (isConfirmed) {\r\n\r\n // // window.open(url, '_blank'); // <- This is what makes it open in a new window.\r\n // // // this.printService.DownloadPDF(\"Annexure\", obj.ID, obj.FaceValueNumber, this.user, obj.DateValidFrom);\r\n // // }\r\n // // })\r\n\r\n // // })\r\n // },error => {\r\n // //console.log(error);\r\n // })\r\n\r\n // // this.printService.DownloadPDF(\"Annexure\", obj.ID, obj.FaceValueNumber, this.user, obj.DateValidFrom);\r\n\r\n // }\r\n\r\n // })\r\n this.confirmDialogService.confirmThis(\"You have changed the permit days but haven't saved them yet. Do you want to print the permit with the old Valid To dates\", () => {\r\n this.isPermitPrintInProgress = true;\r\n this.printService.PrintingPermit(printobj).subscribe(x =>{\r\n const url= window.URL.createObjectURL(x);\r\n console.log(\"Print Url\", url);\r\n window.open(url, '_blank');\r\n printJS({ printable: url, type: 'pdf', showModal: true, modalMessage: 'Processing your request, please wait...' });\r\n this.isPermitPrintInProgress = false;\r\n obj.status_id = 75;\r\n // this.printService.PrintingAnneuxre(printAnnexureobj).subscribe(x=>{\r\n // //console.log(x);\r\n // const url= window.URL.createObjectURL(x);\r\n // //console.log(url);\r\n\r\n // this.msgService.showYesNo('Permit Print', `You are about to open Permit Annexure`, 'Do you want to open the Annexure?').subscribe(isConfirmed =>\r\n // {\r\n // if (isConfirmed) {\r\n\r\n // window.open(url, '_blank'); // <- This is what makes it open in a new window.\r\n // // this.printService.DownloadPDF(\"Annexure\", obj.ID, obj.FaceValueNumber, this.user, obj.DateValidFrom);\r\n // }\r\n // })\r\n\r\n // })\r\n },error => {\r\n //console.log(error);\r\n })\r\n\r\n }, () => {\r\n //No here\r\n })\r\n\r\n\r\n }\r\n\r\n else if (obj.TemLongID == 1 && obj.Saved && (obj.NumberOfDays != this.ctrlData.data.permit_type.permit_days)) {\r\n this.isPermitPrintInProgress = true;\r\n this.printService.PrintingPermit(printobj).subscribe((x: Blob) => {\r\n const url = window.URL.createObjectURL(x);\r\n printJS({ printable: url, type: 'pdf', showModal: true, modalMessage: 'Processing your request, please wait...' });\r\n this.isPermitPrintInProgress = false;\r\n obj.status_id = 75;\r\n }, error => {\r\n console.log(error);\r\n })\r\n\r\n\r\n // this.printService.DownloadPDF(\"Annexure\", obj.ID, obj.FaceValueNumber, this.user, obj.DateValidFrom);\r\n this.ngOnInit();\r\n } else {\r\n\r\n try {\r\n this.isPermitPrintInProgress = true;\r\n this.printService.PrintingPermit(printobj).subscribe(x =>{\r\n\r\n //console.log(x);\r\n const url= window.URL.createObjectURL(x);\r\n console.log(\"Print Url\", url);\r\n printJS({ printable: url, type: 'pdf', showModal: true, modalMessage: 'Processing your request, please wait...' });\r\n this.isPermitPrintInProgress = false;\r\n obj.status_id = 75;\r\n this.ngOnInit();\r\n //this.CreateComplianceRecord();\r\n // this.printService.PrintingAnneuxre(printAnnexureobj).subscribe(x=>{\r\n // const url= window.URL.createObjectURL(x);\r\n // this.msgService.showYesNo('Permit Print', `You are about to open Permit Annexure`, 'Do you want to open the Annexure?').subscribe(isConfirmed =>\r\n // {\r\n // if (isConfirmed) {\r\n\r\n // window.open(url, '_blank'); // <- This is what makes it open in a new window.\r\n\r\n\r\n\r\n // // this.printService.DownloadPDF(\"Annexure\", obj.ID, obj.FaceValueNumber, this.user, obj.DateValidFrom);\r\n\r\n\r\n\r\n // }\r\n\r\n // })\r\n\r\n // })\r\n },error => {\r\n //console.log(error);\r\n })\r\n\r\n\r\n\r\n // this.printService.DownloadPDF(\"Annexure\", obj.ID, obj.FaceValueNumber, this.user, obj.DateValidFrom);\r\n\r\n } catch (e) {\r\n\r\n }\r\n\r\n }\r\n\r\n\r\n }\r\n else {\r\n this.isLoading = false;\r\n this.notify.warning(\"The face value number already exists, please choose another one.\", \"Permit Printing\");\r\n this.enabledNumber=true;\r\n obj.enabledNumber=true;\r\n }\r\n\r\n\r\n });\r\n\r\n } else {\r\n this.isLoading = false;\r\n this.notify.warning(\"This permit has already been printed.\", \"Permit Printing\");\r\n }\r\n\r\n\r\n this.isLoading = false;\r\n }, error => {\r\n this.isLoading = false;\r\n })\r\n\r\n }\r\n\r\n initializeValidFromDate() {\r\n let g = new Date();\r\n let mm = (g.getMonth() + 1).toString();\r\n if (mm.length == 1) {\r\n mm = \"0\" + mm;\r\n }\r\n let dd = (g.getDate()).toString();\r\n if (dd.length == 1)\r\n dd = \"0\" + dd;\r\n this.dateValidFrom = g.getFullYear() + \"-\" + mm + \"-\" + dd;\r\n\r\n for (let i = 0; i < this.count; i++) {\r\n\r\n let permitTypeToUse = this.getPermtypeToUse( this.ctrlData.data.Permits[i]);\r\n this.ctrlData.data.Permits[i].TemLongID = this.ctrlData.data.permit_type.temp_long_ind;\r\n //this.ctrlData.data.Permits[i].NumberOfDays = this.ctrlData.data.permit_type.permit_days;\r\n\r\n this.ctrlData.data.Permits[i].IsPermit = this.ctrlData.data.permit_type.is_permit\r\n // this.ctrlData.data.Permits[i].MinDays = this.ctrlData.data.permit_type.permit_days;\r\n this.ctrlData.data.Permits[i].maxnumberofdays = this.ctrlData.data.permit_type.permit_days;\r\n this.ctrlData.data.Permits[i].Saved = false;\r\n\r\n\r\n let tempFromDate : Date = this.oldStartDate = new Date(this.ctrlData.data.Permits[i].DateValidFrom);\r\n let tempToDate : Date = this.oldEndDate = new Date(this.ctrlData.data.Permits[i].DateValidTo);\r\n this.ctrlData.data.Permits[i].NumberOfDays = this.getDifferenceInDays(tempFromDate, tempToDate);\r\n this.ctrlData.data.Permits[i].ValidNumberOfDays = this.getValidNumberOfDays(permitTypeToUse, this.ctrlData.data.Permits[i]);\r\n // console.log(\"tempToDate= :\" + tempToDate );\r\n\r\n\r\n // this.ctrlData.data.Permits[i].DateValidTo = new Date(_dateValidTo);\r\n // this.ctrlData.data.Permits[i].DateValidFrom = new Date(_dteValidFrom);\r\n\r\n //this.ctrlData.data.Permits[i].FaceValueNumber = \"\";\r\n //let rd = this.ctrlData.data.Permits[i].DateValidFrom;\r\n\r\n // if (!this.isRenewal(this.ctrlData.data.Permits[i].Renewal_num))\r\n // {\r\n // this.ctrlData.data.Permits[i].DateValidFrom = this.datepipe.transform(rd,'dd/MM/y');\r\n // }\r\n // else\r\n // {\r\n // this.ctrlData.data.Permits[i].DateValidFrom =this.datepipe.transform(rd,'dd/MM/y');\r\n // }\r\n }\r\n }\r\n\r\n getValidNumberOfDays(permType, permit) : number\r\n {\r\n switch(this.ctrlData.data.permit_type.id)\r\n {\r\n case 15: //Amendment of Permit\r\n case 16: //Replacement of Vehicle\r\n case 17: //Correction of Permit\r\n case 32: //Duplicate Permits\r\n return this.getDifferenceInDays(new Date(this.oldStartDate), new Date(this.oldEndDate));\r\n break;\r\n default:\r\n if(permType.permit_days != 0)\r\n {\r\n return permType.permit_days;\r\n }\r\n else if(permType.permit_months != 0)\r\n {\r\n return Math.round(permType.permit_months * 30.4375);\r\n }\r\n else if(permType.permit_years != 0)\r\n {\r\n return Math.round(permType.permit_years * 365.25);\r\n\r\n }\r\n\r\n break\r\n }\r\n\r\n\r\n }\r\n valuechange(item) {\r\n //console.log(\"Item: \" + item);\r\n let d = new Date(item['DateValidFrom']);\r\n let to = item['DateValidTo'];\r\n\r\n item['DateValidTo'] = new Date(d.getTime() + (1000 * 60 * 60 * 24 * item['NumberOfDays']));\r\n // console.log(\" valuechange(item) ==== Valid Date :\" + item['DateValidTo']);\r\n\r\n }\r\n\r\n getDateFrom(date) {\r\n var d = new Date(date),\r\n month = '' + (d.getMonth() + 1),\r\n day = '' + d.getDate(),\r\n year = d.getFullYear();\r\n\r\n\r\n\r\n if (month.length < 2)\r\n month = '0' + month;\r\n if (day.length < 2)\r\n day = '0' + day;\r\n\r\n\r\n\r\n return [year, month, day].join('-');\r\n }\r\n\r\n //================================================================== UpdateDate\r\n\r\n UpdateDate(obj) {\r\n\r\n //console.log(\"passed Obj : \" + JSON.stringify(obj) );\r\n\r\n // gDateTo\r\n\r\n\r\n this.isLoading = true;\r\n let dateto = this.datepipe.transform(obj.DateValidTo, 'yyyy-MM-dd')\r\n let datefrom = this.datepipe.transform(obj.DateValidFrom, 'yyyy-MM-dd')\r\n let passenger_number: number = 0;\r\n if(obj.NumberOfPassengers == null || obj.NumberOfPassengers == \"\")\r\n {\r\n passenger_number = 0;\r\n }\r\n else{\r\n passenger_number = obj.NumberOfPassengers;\r\n }\r\n\r\n let dateDiff = this.getDifferenceInDays( new Date(obj.DateValidFrom), new Date(obj.DateValidTo) );\r\n //console.clear();\r\n obj.NumberOfDays = dateDiff;\r\n\r\n if(this.validateNumberOfDays(obj))\r\n {\r\n this.printService.SaveValidDate(obj.ID, dateto ,datefrom, passenger_number).subscribe(res => {\r\n this.isLoading = false;\r\n //console.log(\"Valid Date : \" +datefrom + \" \" + datefrom);\r\n obj.Saved = true;\r\n this.notify.success(`Permit dates updated successfully.`);\r\n }, error => {\r\n this.isLoading = false;\r\n this.notify.error(`An error occured`);\r\n });\r\n }\r\n\r\n\r\n/*\r\n gDateTo: Date;\r\n gDateFrom: Date;\r\n\r\n let temptDateFrom: Date = new Date(datefrom);\r\n temptDateFrom.setHours(0, 0, 0, 0);\r\n let currentDate = new Date();\r\n currentDate.setHours(0, 0, 0, 0);\r\n\r\n console.log(\"currentDate : \" + JSON.stringify(currentDate) + \" datefrom : \" + JSON.stringify(temptDateFrom) );\r\n\r\n if(temptDateFrom < currentDate)\r\n {\r\n this.isLoading = false;\r\n this.notify.error(\"Starting date cannot have date in the past\", \"Date Error\", { timeOut: 3000 });\r\n return;\r\n }\r\n\r\n let temptDateTo: Date = new Date(dateto);\r\n temptDateTo.setHours(0, 0, 0, 0);\r\n\r\n console.log(\"currentDate : \" + JSON.stringify(currentDate) + \" temptDateTo : \" + JSON.stringify(temptDateTo) );\r\n if(temptDateTo < currentDate)\r\n {\r\n this.isLoading = false;\r\n this.notify.error(\"End date cannot have date in the past\", \"Date Error\", { timeOut: 3000 });\r\n return;\r\n }\r\n */\r\n }\r\n //==================================================================\r\n\r\n isRenewal = (indicator) => {\r\n return (indicator > 0);\r\n }\r\n openModal(item, index) {\r\n this.description = item.condition_print;\r\n this.pritIndex = index;\r\n document.getElementById('specialCondition').click()\r\n // $(\"#Manager\").modal('show');\r\n }\r\n onClose() {\r\n document.getElementById('closeSpecialCondition').click()\r\n\r\n // $(\"#Manager\").modal('hide');\r\n }\r\n savePrintCondition() {\r\n this.ctrlData.data.Permits[this.pritIndex].condition_print = this.description;\r\n let payload: any = this.ctrlData.data.Permits[this.pritIndex];\r\n this.printService.updatePrintCondtions(payload).subscribe(res => {\r\n //console.log(res);\r\n this.notify.success(\"Special conditions added\", \"Permit Printing\");\r\n this.onClose();\r\n }, error => {\r\n //console.log(error);\r\n })\r\n }\r\n changes() {\r\n this.ctrlData.data.Permits[this.pritIndex].condition_print = this.description;\r\n\r\n }\r\n\r\n isPrintingDone = (item) => {\r\n // do compliance save\r\n\r\n if(!item.enabledNumber){\r\n return (this.PermitStatus8 == item.status_id);\r\n }\r\n else{\r\n return false;\r\n }\r\n }\r\n\r\n isCertificatePrintingDone = (item) => {\r\n return item.ComplianceStatusId == 4; //printed\r\n }\r\n\r\n reprintPermit(id){\r\n let permitTemplate : string = this.ctrlData.data.permit_type.PermitTemplate;\r\n let obj ={\r\n pId: id,\r\n ReportName: permitTemplate\r\n\r\n }\r\n //console.log(obj);\r\n\r\n this.isLoading = true;\r\n this.isPermitPrintInProgress = false;\r\n this.printService.PrintingPermitView(obj).subscribe(data => {\r\n let objectURL = URL.createObjectURL(data);\r\n printJS({ printable: objectURL, type: 'pdf', showModal: true, modalMessage: 'Processing your request, please wait...' });\r\n this.isLoading = false;\r\n this.isPermitPrintInProgress = false;\r\n this.isLoading = false;\r\n\r\n })\r\n }\r\n\r\n viewPrintedPermit(id){\r\n let permitTemplate : string = this.ctrlData.data.permit_type.PermitTemplate;\r\n let obj ={\r\n pId: id,\r\n ReportName: permitTemplate\r\n\r\n }\r\n //console.log(obj);\r\n\r\n this.isLoading = true;\r\n this.printService.PrintingPermitView(obj).subscribe(data => {\r\n let objectURL = URL.createObjectURL(data);\r\n this.pdfSrc = objectURL;\r\n document.getElementById('btnShowPrintView').click()\r\n this.isLoading = false;\r\n\r\n })\r\n }\r\n\r\n isReprintUser(permitItem){\r\n\r\n let statusId = permitItem.status_id;\r\n let reprintUserRole = this.userRoles.find(x => x.Code == 'MNGMT');\r\n\r\n if (permitItem.VehicleType == null || permitItem.RegNumber == null)\r\n {\r\n return true\r\n }\r\n else\r\n {\r\n if (statusId == this.PermitStatus8 && reprintUserRole == undefined)\r\n {\r\n return true\r\n }\r\n else\r\n {\r\n return false\r\n }\r\n }\r\n }\r\n //==================================================================\r\n\r\n onDateSelect(event, item, itemSelectId)\r\n {\r\n let dateto = this.datepipe.transform(event, 'dd/MM/y')\r\n let finalDateResult: Date = this.getDateWithoutTime(new Date(event));\r\n\r\n // console.clear();\r\n\r\n if(itemSelectId == \"DateValidTo\")\r\n {\r\n let tempStartDate: Date = new Date(item.DateValidFrom);\r\n tempStartDate = this.getDateWithoutTime(tempStartDate);\r\n item.DateValidTo = finalDateResult;\r\n\r\n console.log(\"1. dateto : \" + finalDateResult);\r\n console.log(\"1. datefrom : \" + tempStartDate);\r\n\r\n item.NumberOfDays = this.getDifferenceInDays(tempStartDate, finalDateResult);\r\n }\r\n else\r\n {\r\n item.DateValidFrom = finalDateResult;\r\n item.MaxDate = this.addDays(new Date(event), 14);\r\n let tempEndDate: Date = new Date(item.DateValidTo);\r\n tempEndDate = this.getDateWithoutTime(tempEndDate);\r\n\r\n console.log(\"2. dateto : \" + tempEndDate);\r\n console.log(\"2. datefrom : \" + finalDateResult);\r\n\r\n\r\n item.NumberOfDays = this.getDifferenceInDays(finalDateResult, tempEndDate);\r\n }\r\n\r\n this.validateNumberOfDays(item);\r\n }\r\n\r\n getPermtypeToUse(permit) : any\r\n {\r\n switch(this.ctrlData.data.permit_type.id)\r\n {\r\n case 15: //Amendment of Permit\r\n case 16: //Replacement of Vehicle\r\n case 17: //Correction of Permit\r\n case 32: //Duplicate Permits\r\n return permit.permit_type;\r\n break;\r\n default:\r\n return this.ctrlData.data.permit_type;\r\n break\r\n }\r\n }\r\n\r\n validateNumberOfDays(permit) : Boolean\r\n {\r\n let isDatesInvalid = true;\r\n let permitType = this.getPermtypeToUse(permit);\r\n let validNumberOfDays = this.getValidNumberOfDays(permitType, permit);\r\n\r\n if(permit.NumberOfDays < 0)\r\n {\r\n this.notify.error(\"Valid To Date cannot be in the past.\", 'Date Range Validation', { timeOut: 1000 });\r\n }\r\n else if(permit.NumberOfDays == 0)\r\n {\r\n this.notify.error(\"Number of days cannot be 0.\", 'Date Range Validation', { timeOut: 1000 });\r\n }\r\n else\r\n if(permit.NumberOfDays > validNumberOfDays)\r\n {\r\n this.notify.error('Number of days cannot exceed '+ validNumberOfDays + ' days!', 'Date Range Validation', { timeOut: 1000 });\r\n }\r\n else{\r\n isDatesInvalid = false; //Validation Passed\r\n }\r\n this.isLoading = false;\r\n\r\n return !isDatesInvalid;\r\n }\r\n\r\n getDifferenceInDays(dateStart:Date, dateEnd:Date)\r\n {\r\n let timeInMilisec: number = dateEnd.getTime() - dateStart.getTime();\r\n let daysBetweenDates: number = Math.ceil(timeInMilisec / (1000 * 60 * 60 * 24));\r\n\r\n return daysBetweenDates;\r\n }\r\n\r\n formatDate(dateTime: Date)\r\n {\r\n let year = dateTime.getFullYear();\r\n let month = dateTime.getMonth();\r\n let day = dateTime.getDay();\r\n let strFinalDate = day + \"/\" + month + \"/\" + year;\r\n\r\n return new Date(strFinalDate);\r\n }\r\n\r\n getDateWithoutTime(dateTime) {\r\n var date = new Date(dateTime.getTime());\r\n date.setHours(0, 0, 0, 0);\r\n return date;\r\n}\r\n\r\naddDays(date: Date, days: number): Date {\r\n date.setDate(date.getDate() +days);\r\n return date;\r\n}\r\n //==================================================================\r\n\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
Manage Permit Printing
\r\n
\r\n
\r\n
\r\n
\r\n
1. Application Details
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Account Number : {{ctrlData.data.AccountNumber}}\r\n \r\n Application Number : {{ctrlData.data.ApplicationNumber}}\r\n
\r\n Reference Number : {{ctrlData.data.PermitNumber}}\r\n \r\n Status : {{ctrlData.data.status_desc}} \r\n \r\n Approved By : {{ctrlData.data.approvedBy}} \r\n
\r\n Application Date : {{ctrlData.data.date_created?.toLocaleString() | date:'dd/MM/y'}}\r\n \r\n Submission Date : {{ctrlData.data.submission_date?.toLocaleString() | date:'dd/MM/y'}}\r\n
\r\n Route Summary : {{ctrlData.data.route_summary}}\r\n \r\n Permit Type : {{ctrlData.data.PermitType}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
2. Route Details
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n
2.1 Time Table Details
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
3. Approved Permits
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 10\" style=\"padding-left:0px;margin-left:0px;\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Permit Number\r\n \r\n Issue Number\r\n \r\n Status\r\n \r\n Printed By\r\n \r\n Vehicle Type\r\n \r\n Registration Number\r\n \r\n Number Of Passangers\r\n \r\n Date Valid From \r\n \r\n Date Valid To \r\n \r\n Number of Days\r\n \r\n Face Value Number\r\n
{{item.PermitNumber}}/{{item.permit_issue}}{{item.Status}}{{item.printedBy}}{{item.VehicleType}}\r\n \r\n \r\n \r\n \r\n \r\n {{item.DateValidFrom?.toLocaleString() | date:'dd/MM/y'}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n No permit applications found.\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
4. Compliance Certificates
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 10\" style=\"padding-left:0px;margin-left:0px;\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Permit Number\r\n \r\n Issue Year\r\n \r\n Status\r\n \r\n Printed By\r\n \r\n Registration Number\r\n \r\n Date Valid To \r\n \r\n Face Value Number\r\n
{{item.PermitNumber}}/{{item.Year}}{{item.ComplianceStatusDescription}}{{item.PrintedBy}} \r\n \r\n \r\n {{item.ComplianceEndDate?.toLocaleString() | date:'dd/MM/y'}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n No permit applications found.\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n

Add Special conditions to permit annexure

\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
3. Permit Details
\r\n \r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n \r\n \r\n\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n","import { Injectable } from '@angular/core';\r\nimport { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, Router } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { AuthenticationService } from './services/authentication.service';\r\nimport { IdleManagerService } from './services/idle-manager.service';\r\nimport { StorageService } from './services/storage.service';\r\n\r\n@Injectable()\r\nexport class AuthGuard implements CanActivate {\r\n\r\n hasRole = true;\r\n\r\n constructor(private router: Router,\r\n private authentication: AuthenticationService,\r\n private storageService:StorageService\r\n ) {\r\n }\r\n\r\n canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable | Promise | boolean {\r\n\r\n let previuosUrl:any=window.location.pathname;\r\n if(localStorage.getItem('isLogged')!=undefined && localStorage.getItem('isLogged')=='true'){\r\n this.storageService.isLogged=true;\r\n }\r\n if (this.storageService.isLogged == true) {\r\n\r\n //this.RoleGuard(next.data.Roles);\r\n\r\n if (this.hasRole === true) {\r\n return true;\r\n } else {\r\n //this.router.navigate(['/user/unauthorised']);\r\n this.router.navigate(['/home']);\r\n return false;\r\n }\r\n }else{\r\n localStorage.setItem(\"previousUrl\",previuosUrl);\r\n this.router.navigate(['/login']);\r\n }\r\n\r\n \r\n }\r\n\r\n RoleGuard(Roles: any) {\r\n\r\n const self = this;\r\n\r\n if (Roles) {\r\n this.authentication.userData.Roles.forEach(function(UserRole) {\r\n Roles.forEach(function(Role) {\r\n if (UserRole.Code === Role) {\r\n self.hasRole = true;\r\n }\r\n });\r\n });\r\n\r\n } else {\r\n self.hasRole = true;\r\n }\r\n\r\n }\r\n}\r\n","import { Component, OnInit, Input } from '@angular/core';\r\n\r\n\r\n@Component({\r\n selector: 'app-busy',\r\n templateUrl: './busy.component.html',\r\n styleUrls: ['./busy.component.css']\r\n})\r\nexport class BusyComponent implements OnInit {\r\n @Input() message: string = 'Please wait...';\r\n constructor() { }\r\n\r\n ngOnInit() { \r\n \r\n }\r\n\r\n}\r\n","
\r\n
\r\n
{{message}}
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { UtilityServiceService } from '../services/utility-service.service';\r\nimport {CarrierService} from '../services/carrier.service';\r\nimport { Account } from '../constants/account.enum';\r\nimport { Page } from '../classes/page';\r\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\r\nimport { AlertComponent } from '../popup/alert.component';\r\nimport { AuthWebService } from '../services/authweb.service';\r\nimport { CountryService } from '../services/country.service';\r\nimport { DialogService } from 'ng2-bootstrap-modal';\r\nimport { isNumeric } from 'rxjs/util/isNumeric';\r\nimport { ConfirmDialogService } from 'app/services/shared/confirm-dialog/confirm-dialog.service';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\n@Component({\r\n selector: 'ca-contact-page',\r\n templateUrl: './ca-contact-page.component.html',\r\n styleUrls: ['./ca-contact-page.component.css']\r\n\r\n})\r\nexport class CaContactPageComponent implements OnInit {\r\n\r\n contactDetails: any = {};\r\n sub: any;\r\n acc = Account;\r\n isDup = false;\r\n CarrierID: number;\r\n isEdit: boolean;\r\n user: any = {};\r\n dataCntrl: any = {activityData:{}};\r\n ddlCountries = [];\r\n lblHeading: string = \"Contact Details\";\r\n \r\n form: FormGroup;\r\n message: string;\r\n public isLoading = false;\r\n\r\n CurrentDate: Date;\r\n numberisvalid =false;\r\n\r\n constructor(public CarrierService: CarrierService, private router: Router, private msg: ToastrService,\r\n private route: ActivatedRoute, public utility: UtilityServiceService,\r\n private countryService: CountryService, private authWebService: AuthWebService,private confirmDialogService: ConfirmDialogService) { }\r\n\r\n ngOnInit() {\r\n\r\n this.CarrierID = this.utility.ctrlPages[Account.First].carrierId;\r\n this.isEdit = this.utility.ctrlPages[Account.First].isEdit;\r\n this.user = (this.authWebService.userData) ? this.authWebService.userData.User : {};\r\n this.listCountries();\r\n\r\n this.createForm();\r\n\r\n this.CurrentDate = new Date();\r\n this.CurrentDate.setMonth(this.CurrentDate.getMonth() + 1);\r\n\r\n this.lblHeading = (!this.isEdit) ? \"New Contact Details\" : \"Edit Contact Details\";\r\n\r\n if (this.utility.ctrlPages[Account.First].carrierId) {\r\n this.initFormData();\r\n }\r\n\r\n }\r\n createForm = ()=> {\r\n this.form = new FormGroup({\r\n CarrierID: new FormControl(this.CarrierID)\r\n , RejectReason: new FormControl(\"\")\r\n , is_active: new FormControl(this.contactDetails.is_active) \r\n , FirstName: new FormControl(this.contactDetails.FirstName, Validators.maxLength(20))\r\n , LastName: new FormControl(this.contactDetails.LastName, Validators.maxLength(20))\r\n , EmailAddress: new FormControl(this.contactDetails.EmailAddress)\r\n , MobileNumber: new FormControl(this.contactDetails.MobileNumber)\r\n , CommunicationPreference: new FormControl(this.contactDetails.CommunicationPreference, Validators.required)\r\n , PhysicalAddress1: new FormControl(this.contactDetails.PhysicalAddress1,Validators.required)\r\n , PhysicalAddress2: new FormControl(this.contactDetails.PhysicalAddress2, Validators.required)\r\n , PhysicalAddress3: new FormControl(this.contactDetails.PhysicalAddress3)\r\n , Town: new FormControl(this.contactDetails.Town)\r\n , PostalCode: new FormControl(this.contactDetails.PostalCode, Validators.required)\r\n , CountryID: new FormControl(this.contactDetails.CountryID)\r\n , FaxNumber: new FormControl(this.contactDetails.FaxNumber)\r\n , OfficePhone: new FormControl(this.contactDetails.OfficePhone, Validators.required)\r\n , CompanyEmail: new FormControl(this.contactDetails.CompanyEmail, Validators.compose([Validators.required, Validators.pattern(/^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/)]))\r\n , PostalAddress1: new FormControl(this.contactDetails.PostalAddress1, Validators.required)\r\n , PostalAddress2: new FormControl(this.contactDetails.PostalAddress2, Validators.required)\r\n , PostalAddress3: new FormControl(this.contactDetails.PostalAddress3) \r\n , pTown: new FormControl(this.contactDetails.Town, Validators.required)\r\n , pPostalCode: new FormControl(this.contactDetails.pPostalCode, Validators.required)\r\n , pCountry: new FormControl(this.contactDetails.pCountry)\r\n , pFaxNumber: new FormControl(this.contactDetails.pFaxNumber)\r\n , pOfficePhone: new FormControl(this.contactDetails.pOfficePhone, Validators.required)\r\n , pCompanyEmail: new FormControl(this.contactDetails.pCompanyEmail, Validators.compose([Validators.required, Validators.pattern(/^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/)]))\r\n , role_served_ind: new FormControl(21)\r\n , date_role_from: new FormControl(new Date())\r\n , date_role_to: new FormControl(new Date())\r\n , datecreated: new FormControl(new Date())\r\n , datemodified: new FormControl(new Date())\r\n , usercreated: new FormControl(this.user.FirstName + ', ' + this.user.LastName)\r\n , usermodified: new FormControl(this.user.FirstName + ', ' + this.user.LastName)\r\n , id_type_ind: new FormControl(1)\r\n }); \r\n }\r\n\r\n initFormData = () => {\r\n if (this.utility.ctrlPages[Account.First].carrierId > 0) {\r\n this.isLoading = true;\r\n this.CarrierService.getContactDetails(this.utility.ctrlPages[Account.First].carrierId).subscribe(result => {\r\n this.contactDetails = result;\r\n //console.log(this.contactDetails);\r\n this.isLoading = false;\r\n (this.form)\r\n .setValue({\r\n \r\n CarrierID: this.contactDetails.CarrierID\r\n , RejectReason: this.contactDetails.RejectReason\r\n , is_active: this.contactDetails.is_active \r\n , FirstName: this.contactDetails.FirstName\r\n , LastName: this.contactDetails.LastName\r\n , EmailAddress: this.contactDetails.EmailAddress\r\n , MobileNumber: this.contactDetails.MobileNumber\r\n , CommunicationPreference: this.contactDetails.CommunicationPreference\r\n , PhysicalAddress1: this.contactDetails.PhysicalAddress1\r\n , PhysicalAddress2: this.contactDetails.PhysicalAddress2\r\n , PhysicalAddress3: this.contactDetails.PhysicalAddress3\r\n , Town: this.contactDetails.Town\r\n , PostalCode: this.contactDetails.PostalCode\r\n , CountryID: this.contactDetails.CountryID\r\n , FaxNumber: this.contactDetails.FaxNumber\r\n , OfficePhone: this.contactDetails.OfficePhone\r\n , CompanyEmail: this.contactDetails.CompanyEmail\r\n , PostalAddress1: this.contactDetails.PostalAddress1\r\n , PostalAddress2: this.contactDetails.PostalAddress2\r\n , PostalAddress3: this.contactDetails.PostalAddress3 \r\n , pTown: this.contactDetails.pTown\r\n , pPostalCode: this.contactDetails.pPostalCode\r\n , pCountry: this.contactDetails.pCountry\r\n , pFaxNumber: this.contactDetails.pFaxNumber\r\n , pOfficePhone: this.contactDetails.pOfficePhone\r\n , pCompanyEmail: this.contactDetails.pCompanyEmail\r\n , role_served_ind: this.contactDetails.role_served_ind\r\n , date_role_from: this.contactDetails.date_role_from\r\n , date_role_to: this.contactDetails.date_role_to \r\n , id_type_ind: this.contactDetails.id_type_ind\r\n , datecreated: new Date()\r\n , datemodified: new Date()\r\n , usercreated: this.user.FirstName + ', ' + this.user.LastName\r\n , usermodified: this.user.FirstName + ', ' + this.user.LastName \r\n }, { onlySelf: true });\r\n \r\n }, error => {\r\n this.isLoading = false;\r\n //console.log(error);\r\n });\r\n }\r\n \r\n \r\n }\r\n listCountries = () => {\r\n this.isLoading = true; \r\n this.countryService.listCountries().subscribe((result:any) => {\r\n this.ddlCountries = result; \r\n this.isLoading = false; \r\n }, error => {\r\n this.isLoading = false; \r\n //console.log(error);\r\n });\r\n }\r\n checkMobileNumber(obj:any)\r\n {\r\n //check length\r\n \r\n if (obj.MobileNumber.trim().length >= 10) \r\n {\r\n // how many spaces are in a string?\r\n var knt = obj.MobileNumber.trim().split(\" \").length - 1;\r\n //console.log(\"what is the count\");\r\n //console.log(knt);\r\n var str = new String(obj.MobileNumber.trim()); \r\n for(let i =0;i = [\r\n { id: \"Email\", name: \"Email\" },\r\n { id: \"SMS\", name: \"SMS\" }\r\n ];\r\n selected(){\r\n //console.log(this.selectedLevel)\r\n }\r\n createContactDetails = (obj: any) => {\r\n\r\n //console.log(obj);\r\n\r\n this.message = \"Creating carrier account's company details,please wait...\";\r\n this.isLoading = true;\r\n this.CarrierService.processContactDetails(obj).subscribe(result => {\r\n this.contactDetails = result; \r\n this.utility.ctrlPages[Account.First].carrierId = this.contactDetails.CarrierID;\r\n //console.log(this.contactDetails);\r\n this.isLoading = false;\r\n this.msg.success(`Carrier contact details for ${obj.FirstName} saved successfully.`)\r\n // this.dialogService.addDialog(AlertComponent, { title: `Carrier Contact details`, message: `Carrier contact details for ${obj.FirstName} saved successfully.`, bold: `${obj.LastName}` });\r\n }, error => {\r\n this.isLoading = false;\r\n //console.log(error);\r\n this.msg.error(`Failed to save Carrier contact details for ${obj.FirstName}.`)\r\n // this.dialogService.addDialog(AlertComponent, { title: `Carrier Contact details`, message: `Failed to save Carrier contact details for ${obj.FirstName}.`, bold: `${obj.LastName}` });\r\n });\r\n\r\n }\r\n\r\n}\r\n","
\r\n \r\n
\r\n
\r\n
\r\n
\r\n Contact Details\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n Physical Address\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n Postal Address\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { CarrierService } from 'app/services/carrier.service';\r\nimport { AuthWebService } from 'app/services/authweb.service';\r\nimport { Router, Params, ActivatedRoute } from '@angular/router';\r\nimport { Overlay, OverlayContainer, ToastrService } from 'ngx-toastr';\r\nimport { PopupService } from 'app/services/shared/popup.service';\r\nimport { UtilityServiceService } from 'app/services/utility-service.service';\r\nimport { SelectorListContext } from '@angular/compiler';\r\nimport { PermitService } from 'app/services/permit.service';\r\nimport { ApplicationService } from 'app/services/application.service';\r\nimport { ConfirmDialogService } from 'app/services/shared/confirm-dialog/confirm-dialog.service';\r\nimport { environment } from 'environments/environment';\r\ndeclare var $: any;\r\n\r\n@Component({\r\n selector: 'app-ca-landing-page',\r\n templateUrl: './ca-landing-page.component.html',\r\n styleUrls: ['./ca-landing-page.component.css']\r\n})\r\nexport class CaLandingPageComponent implements OnInit {\r\n dataCntrl: any = { carrierID: -1, carrier: {}, applications: [], applicationtype: {}, vehicles: [], applicationId: -1 };\r\n aCarrier: any = {};\r\n isLoading: boolean = false;\r\n isEmpty: boolean = false;\r\n listAccounts: any = [];\r\n listCarriers: any = [];\r\n user: any = {};\r\n page = 1;\r\n message: any;\r\n AccountStatus2: number = 0;\r\n smCode:any=\"\";\r\n individualCarrierId: number;\r\n\r\n carrierId: any = \"\";\r\n carrierName: any = \"\";\r\n carrierTradingName: any = \"\";\r\n carrierType: any = \"\";\r\n carrierCountry: any = \"\";\r\n\r\n emptyCarrier: boolean = false;\r\n fetchedCarrier: boolean = false;\r\n\r\n errorMessage: any = \"\";\r\n importingCarrier: string = 'false';\r\n\r\n appId = 0;\r\n\r\n onboarding: number = 0;\r\n\r\n paygateEnabled = environment.paygateEnabled;\r\n\r\n \r\n constructor(private carrierService: CarrierService, private authWebService: AuthWebService, private router: Router,public utility: UtilityServiceService,\r\n private toaster: ToastrService, private showModal: PopupService,\r\n private activeRoute:ActivatedRoute, private msg: ToastrService,private confirmDialogService: ConfirmDialogService) {\r\n this.toaster.clear();\r\n this.user = (this.authWebService.userData) ? this.authWebService.userData.User : null;\r\n console.log(\"User Data\", this.user);\r\n console.log(\"Username\", this.user.UserName);\r\n console.log(\"EmailAddress\", this.user.EmailAddress);\r\n console.log(\"EmailAddress created \", \"Facebook_\"+this.user.UserName);\r\n if(this.user.MobileNumber === null || this.user.EmailAddress == null){//&& this.user.email == \"\"\r\n\r\n this.router.navigate(['/ammenduser']);\r\n\r\n }\r\n\r\n \r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.activeRoute.params.subscribe((params: Params) => {\r\n this.smCode=params['id'];\r\n });\r\n this.utility.setShowStatementFooter(false);\r\n this.loadAccounts();\r\n\r\n this.AccountStatus2 = parseInt(this.authWebService.userData.Configurations.find(c => c.Code == \"AccountStatus2\").Value);\r\n this.onboarding = parseInt(this.authWebService.userData.Configurations.find(c => c.Code == \"ONBOARD\").Value);\r\n this.activeRoute.params.subscribe((params: Params) => {\r\n this.dataCntrl.carrierID = params['id'];\r\n });\r\n if (this.router.url.indexOf('cancel') > 0) {\r\n this.activeRoute.params.subscribe((params: Params) => {\r\n this.dataCntrl.carrierID = params['id'];\r\n this.appId = params['appid'];\r\n }\r\n\r\n );\r\n }\r\n var input = document.getElementById(\"searchButton\");\r\n input.addEventListener(\"keyup\", function(event) {\r\n if (event.key === '13') {\r\n event.preventDefault();\r\n document.getElementById(\"searchButton\").click();\r\n }\r\n });\r\n }\r\n\r\n loadAccounts = () => {\r\n if (this.user) {\r\n this.isLoading = true;\r\n this.carrierService.listCarrierAccountsByUserId(this.user.Id).subscribe((result:any) => {\r\n if(this.smCode=='NEWAPP' && result.length==1){\r\n this.viewAcc(result[0], '/carrier/permit/application');\r\n this.isLoading = false;\r\n return false;\r\n }\r\n if (result.length > 1 || (this.smCode!='' && this.smCode!=undefined)) {\r\n this.listAccounts = result;\r\n for(let list of this.listAccounts){\r\n if(parseInt(list.account_balance)!=0){\r\n list.account_balance=-(parseInt(list.account_balance));\r\n }\r\n }\r\n\r\n this.isLoading = false;\r\n } else {\r\n if (result.length == 1) {\r\n this.viewAcc(result[0], '/carrier/permit/application/mypermits');\r\n this.isLoading = false;\r\n }\r\n }\r\n this.isLoading = false;\r\n }, error => {\r\n this.isLoading = false;\r\n this.isEmpty = true;\r\n\r\n if (this.onboarding == 0) {\r\n // this.showModal.showYesNo('New Accounts', 'Would you like to create an account in order to apply for permits?', '', 'Yes', 'No')\r\n // .subscribe((isConfirmed) => {\r\n // if (isConfirmed) {\r\n // this.router.navigate(['/carrier/account/add']);\r\n // this.isLoading = false;\r\n // } else { \r\n // return;\r\n // }\r\n // });\r\n this.confirmDialogService.confirmThis(\"Would you like to create an account in order to apply for permits?\", () => { \r\n \r\n this.router.navigate(['/carrier/account/add']);\r\n this.isLoading = false;\r\n \r\n }, () => { \r\n return;\r\n }) \r\n } else {\r\n // this.showModal.showConfirm('Carrier Accounts', 'Would you like to create a new account or import your existing Account ?', 'If you are a consultant, close this message and then click Cancel. You will receive an invitation to link to an operator.', 'Create New Account', 'Import Existing Account')\r\n // .subscribe((isConfirmed) => {\r\n // if (isConfirmed) {\r\n // this.router.navigate(['/carrier/account/add']);\r\n // this.isLoading = false;\r\n // } else { \r\n // // document.querySelector(\"#modal-dialog\").\r\n // $('#myModal').modal();\r\n // // return;\r\n // }\r\n // });\r\n this.confirmDialogService.confirmThis(\"Would you like to create a new account? If you are a consultant, close this message and then click Cancel. You will receive an invitation to link to an operator.\", () => { \r\n \r\n this.router.navigate(['/carrier/account/add']);\r\n this.isLoading = false;\r\n \r\n }, () => { \r\n $('#myModal').modal();\r\n })\r\n }\r\n })\r\n }\r\n }\r\n\r\n isReadOnly = (status: string): boolean => {\r\n return (status == \"Submitted\");\r\n }\r\n viewAcc(list, url) {\r\n if (list.status == 'AccountStatus3') {\r\n this.toaster.error('Your Carrier account has not been approved');\r\n return false;\r\n } else {\r\n this.router.navigate([url, list.id]);\r\n }\r\n }\r\n selectOptionList(optionVal, res) {\r\n switch (optionVal) {\r\n // Permits\r\n case \"0\":\r\n this.viewAcc(res, '/carrier/permit/application/mypermits');\r\n break;\r\n // Applications\r\n case \"1\":\r\n this.viewAcc(res, '/carrier/permit/application');\r\n break;\r\n // View Account\r\n case \"2\":\r\n this.router.navigate(['/carrier/account/edit/' + res.id + '/' + 1]);\r\n break;\r\n // Edit Account\r\n case \"3\":\r\n this.router.navigate(['/carrier/account/edit', res.id]);\r\n break;\r\n // Delete Account\r\n case \"4\":\r\n this.deleteAccount(res);\r\n break;\r\n // Un-Submit\r\n case \"5\":\r\n this.unsubmitAccount(res);\r\n break;\r\n // Account Statement\r\n case \"6\":\r\n this.router.navigate(['carrier/statement/' + res.carrier_account_id + '/' + res.id]);\r\n break;\r\n // Link Consultant\r\n case \"7\":\r\n this.router.navigate(['carrier/consultant/' + res.id]);\r\n break;\r\n // Annual Compliance\r\n case \"8\":\r\n this.router.navigate(['/carrier/compliance/return/list/'+ res.id +'/' + 0 ])\r\n break;\r\n // Fund Account\r\n case \"9\":\r\n this.router.navigate(['/carrier/fundaccount/'+ res.id])\r\n break;\r\n default:\r\n break;\r\n\r\n }\r\n }\r\n\r\n\r\n deleteAccount(acnt)\r\n {\r\n // this.showModal.showYesNo('Delete Account', 'Are you sure you want to delete account no.: ' + acnt.account_number + ' ?', `click the 'Yes' or 'No' button ->`, 'Yes', 'No').subscribe((userSelectedYes) => {\r\n // if (userSelectedYes)\r\n // {\r\n // this.carrierService.delete(acnt.id).subscribe((msg:any) =>\r\n // {\r\n // if (msg == \"There was a problem deleting the account.\")\r\n // {\r\n // this.toaster.error(msg);\r\n // }\r\n // else\r\n // {\r\n // this.toaster.info(\"Account number \" + acnt.account_number + \" was successfully deleted.\");\r\n // }\r\n // });\r\n // }\r\n // this.loadAccounts();\r\n // });\r\n this.confirmDialogService.confirmThis('Are you sure you want to delete account no.: ' + acnt.account_number + ' ?', () => { \r\n this.carrierService.delete(acnt.id).subscribe((msg:any) =>\r\n {\r\n if (msg == \"There was a problem deleting the account.\")\r\n {\r\n this.toaster.error(msg);\r\n }\r\n else\r\n {\r\n this.toaster.info(\"Account number \" + acnt.account_number + \" was successfully deleted.\");\r\n }\r\n this.loadAccounts();\r\n });\r\n\r\n \r\n }, () => { \r\n //No here\r\n })\r\n }\r\n\r\n unsubmitAccount(acnt, key = 2)\r\n {\r\n // let obj: any = {}\r\n\r\n // this.showModal.showYesNo('Un-Submit Account', 'Are you sure you want to unsubmit account ' + acnt.account_number + ' ?', `click the 'Yes' or 'No' button =>`, 'Yes', 'No').subscribe((userSelectedYes) => {\r\n // if (userSelectedYes)\r\n // {\r\n // this.carrierService.getCompanyDetailsById(acnt.id).subscribe((obj:any) => {\r\n // this.utility.isChanged = false;\r\n // obj.Carrier.status_id = parseInt(this.authWebService.userData.Configurations.find(c => c.Code == \"AccountStatus1\").Value);\r\n // this.isLoading = true;\r\n // this.updateCACDetails(obj, key);\r\n // this.utility.landingPage();\r\n // });\r\n // }\r\n // });\r\n this.confirmDialogService.confirmThis('Are you sure you want to unsubmit account ' + acnt.account_number + ' ?', () => { \r\n \r\n this.carrierService.getCompanyDetailsById(acnt.id).subscribe((obj:any) => {\r\n this.utility.isChanged = false;\r\n obj.Carrier.status_id = parseInt(this.authWebService.userData.Configurations.find(c => c.Code == \"AccountStatus1\").Value);\r\n this.isLoading = true;\r\n this.updateCACDetails(obj, key);\r\n this.utility.landingPage();\r\n });\r\n \r\n }, () => { \r\n //No here\r\n })\r\n }\r\n\r\n updateCACDetails = (obj: any, key = 2) => {\r\n this.message = \"Updating carrier account's company details,please wait...\";\r\n this.isLoading = true;\r\n this.carrierService.processUpdateCompanyDetails(obj).subscribe(result => {\r\n this.aCarrier = result;\r\n this.utility.docCtrl = (this.aCarrier.Carrier.carrier_id > 0) ? true : false;\r\n this.isLoading = false;\r\n this.utility.activeTab = key;\r\n this.msg.success(\"Carrier Account successfully un-submitted.\", \"Carrier Account\", { timeOut: 1000 });\r\n this.loadAccounts();\r\n }, error => {\r\n this.isLoading = false;\r\n this.msg.error(\"Could not un-submit the Carrier Accout. Please contact the system administrator if the problem persists.\", \"Carrier Account\")\r\n this.loadAccounts();\r\n });\r\n }\r\n\r\n showSuccess(msg) {\r\n this.msg.success(msg, 'Carrier Account Un-Submit');\r\n }\r\n\r\n showError = (msg) => {\r\n this.msg.error(msg, 'Carrier Account Un-Submit');\r\n }\r\n\r\n fetchCarrier(carrCode) {\r\n this.isLoading = true;\r\n if (carrCode == \"\" || carrCode == undefined){\r\n this.errorMessage = \"Please enter a valid carrier number\"\r\n this.emptyCarrier = true;\r\n this.fetchedCarrier = false;\r\n this.isLoading = false\r\n }\r\n else\r\n {\r\n this.emptyCarrier = false;\r\n\r\n let keyword: any = {};\r\n keyword.AccountNumber = (carrCode != \"\" && carrCode != null) ? carrCode : \"All\";\r\n keyword.Suffix = \"All\";\r\n keyword.Statuses = [];\r\n \r\n this.carrierService.searchCarrierAccounts(keyword, 1, 10, 6, true).subscribe((result:any) => {\r\n if (result.Count == 0) { \r\n this.errorMessage = \"Carrier number was not found\"\r\n this.emptyCarrier = true;\r\n this.fetchedCarrier = false;\r\n this.isLoading = false\r\n }\r\n else\r\n {\r\n\r\n this.carrierName = result.Accounts[0].Name;\r\n this.carrierTradingName = result.Accounts[0].TradingName;\r\n this.carrierType = result.Accounts[0].carrier_type;\r\n this.carrierCountry = result.Accounts[0].country;\r\n\r\n this.carrierId = result.Accounts[0].Id;\r\n\r\n this.carrierService.getCompanyDetailsById(result.Accounts[0].Id).subscribe((company:any) => {\r\n if (company.Carrier.user_id == null || company.Carrier.status_id == 93) {\r\n this.fetchedCarrier = true;\r\n }\r\n else\r\n {\r\n this.msg.warning(`The carrier has already been assigned. [${company.Contact.EmailAddress}]`, `Carrier Import`); // this.carrierName\r\n this.fetchedCarrier = false;\r\n }\r\n\r\n this.isLoading = false\r\n });\r\n }\r\n });\r\n }\r\n }\r\n\r\n importCarrier() {\r\n this.importingCarrier = 'true';\r\n localStorage.setItem('importCarrier',this.importingCarrier);\r\n this.router.navigate(['/carrier/account/edit', this.carrierId]);\r\n }\r\n\r\n cancelCarrier() {\r\n $('#carrierCode ').val(\"\");\r\n this.fetchedCarrier = false;\r\n return;\r\n }\r\n\r\n checkKey(event){\r\n var carrierCode = document.getElementById(\"carrierCode\");\r\n const charCode = (event.which) ? event.which : event.keyCode;\r\n if (charCode == 13) {\r\n this.fetchCarrier($('#carrierCode ').Value);\r\n return;\r\n }\r\n }\r\n\r\n setCarrierCodeFocus() {\r\n $('#myModal').on('shown.bs.modal', function () {\r\n $('#carrierCode').focus();\r\n }) \r\n }\r\n}\r\n","
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
My Accounts Information
\r\n
\r\n
\r\n {{user?.UserName}}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 4\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
Account NumberAccount NameAccount BalanceAccount Status\r\n \r\n \r\n \r\n \r\n \r\n \r\n
{{acc.account_number}}{{acc.account_name}}{{acc.account_balance ? (acc.account_balance | currencyFormat) : 'R 0.00' }}{{acc.status}}\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n No accounts have been created yet, please add or import an existing account.\r\n
\r\n

Click on the underlined link to view account information.

\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
IMPORT CARRIER FROM LEGACY SYSTEM

\r\n
\r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { StatusService } from 'app/services/status.service';\r\nimport { AuthWebService } from 'app/services/authweb.service';\r\nimport { CarrierService } from 'app/services/carrier.service';\r\nimport { PermitService } from 'app/services/permit.service';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { ApplicationService } from 'app/services/application.service';\r\nimport { UtilityServiceService } from 'app/services/utility-service.service';\r\nimport { Router } from '@angular/router';\r\nimport { environment } from 'environments/environment';\r\n\r\ndeclare var $;\r\n\r\n\r\n@Component({\r\n selector: 'app-carriercorrespondence',\r\n templateUrl: './carriercorrespondence.component.html',\r\n styleUrls: ['./carriercorrespondence.component.css']\r\n})\r\nexport class CarriercorrespondenceComponent implements OnInit {\r\n\r\n @Input('ctrlData') ctrlData: any;\r\n description: any;\r\n gridload:boolean=true;\r\n approvalRes:any;\r\n statuses: any = [];\r\n emailContacts:any = {};\r\n crspdType:any=\"\";\r\n crspdLead:any=\"\";\r\n crspdOwner:any=\"\";\r\n crspdContact:any=\"\";\r\n crStatus:any=null;\r\n changeStatus:any;\r\n statusId:any;\r\n aUser: any = {};\r\n\r\n constructor(private statusService: StatusService, private authWebService: AuthWebService,\r\n private carrierService: CarrierService,private permitService:PermitService,private toastr:ToastrService,\r\n private applicationService:ApplicationService,public utility: UtilityServiceService,private router:Router) { \r\n this.aUser = environment.authWebApi.userData.User;\r\n }\r\n\r\n ngOnInit() {\r\n this.statusId=this.utility.approveStatusId;\r\n this.gridload=false;\r\n ////console.log(this.ctrlData.data);\r\n if(this.ctrlData==undefined || this.ctrlData==null){\r\n this.ctrlData=this.utility.carrierObject;\r\n }\r\n this.approvalRes=this.ctrlData.data;\r\n this.changeStatus=this.approvalRes.Status;\r\n this.crStatus=parseInt(this.approvalRes.Status.split(\",\")[0]);\r\n this.approvalRes.statusId = this.crStatus;\r\n //console.log(this.utility.actionStatus);\r\n if(this.utility.btnAction==1){\r\n if(this.utility.actionStatus!=0){\r\n // this.approvalRes.statusId=this.utility.actionStatus;\r\n // this.approvalRes.status_id=this.utility.actionStatus;\r\n this.approvalRes.Status=\"Additional Information Required\"\r\n this.approvalRes.statusId=this.approvalRes.status_id=2; \r\n }\r\n }else if(this.crStatus!=21 && this.crStatus!=31 && this.utility.btnAction==2){\r\n if(this.utility.actionStatus!=0){\r\n // this.approvalRes.statusId=this.utility.actionStatus;\r\n // this.approvalRes.status_id=this.utility.actionStatus;\r\n }\r\n }else{\r\n this.approvalRes.statusId = this.crStatus;\r\n }\r\n\r\n this.getStatus(); // list of statuses\r\n this.retrieveSubmitStatus(); // eMail template\r\n this.getCorrespondenceTo(); // contacts\r\n }\r\n\r\n changes(){\r\n }\r\n\r\n statusUpdate(){\r\n console.log(this.approvalRes.statusId);\r\n this.approvalRes.status_id = this.approvalRes.statusId;\r\n let status = {description: ''}\r\n let desc:any=$(\"#statusCarrier option:selected\").text().trim();\r\n let sts:any=this.approvalRes.statusId+\", \"+desc;\r\n //this.changeStatus=sts;\r\n this.approvalRes.Status = desc;\r\n //console.log(this.approvalRes);\r\n this.crStatus=this.approvalRes.statusId;\r\n\r\n if(this.approvalRes.statusId==93){\r\n this.description = this.authWebService.userData.Configurations.find(config => config.Code == \"CarrierStatus93\").Value.replace(\"helpdesk@cbrta.co.za\", this.aUser.EmailAddress);\r\n }else\r\n {\r\n this.description = \"\";\r\n }\r\n\r\n }\r\n\r\n // list of statuses\r\n getStatus(){\r\n this.statusService.statusesDDL().subscribe(result => {\r\n this.statuses = result;\r\n })\r\n }\r\n\r\n onSaveAndSend = () => {\r\n //console.log(this.description);\r\n //console.log(this.approvalRes);\r\n if(this.crspdType==\"\" || this.crspdType==null){\r\n this.toastr.error(\"Email recipient is required.\");\r\n return\r\n }\r\n if(this.description==\"\" || this.description==null){\r\n this.toastr.error(\"Email message is required.\");\r\n return\r\n }\r\n let body = {\r\n email : this.crspdType,\r\n body: this.description\r\n }\r\n this.carrierService.putStatus(this.approvalRes).subscribe(res=>{\r\n this.sendEmail(body);\r\n this.ctrlData.data\r\n this.changeView(1);\r\n if(this.utility.btnAction==1){\r\n this.toastr.success('Request-for-additional-information email sent.');\r\n }\r\n else if(this.utility.btnAction==5) {\r\n this.toastr.success('Status updated successfully and email sent.');\r\n }\r\n });\r\n }\r\n\r\n redirectList(){\r\n this.changeView(1);\r\n }\r\n\r\n changeView = (activeC: number,action=0) => {\r\n this.utility.currentActive = this.ctrlData.currentActive = activeC;\r\n this.ctrlData.action = action;\r\n this.utility.isBtnVisible = true;\r\n this.router.navigate(['account/approval']);\r\n }\r\n\r\n sendEmail(body){\r\n this.carrierService.sendApprovalEmail(body).subscribe(result => {\r\n });\r\n }\r\n\r\n// eMail contacts\r\ngetCorrespondenceTo() {\r\n this.carrierService.correspondenceToByCarrierId(this.ctrlData.data.Id).subscribe(x => {\r\n this.emailContacts=x;\r\n this.crspdLead = this.emailContacts.LeadUser;\r\n this.crspdContact = this.emailContacts.MainContact;\r\n if(this.emailContacts.Owner!=\"\"){\r\n this.crspdOwner = this.emailContacts.Owner;\r\n }\r\n else if(this.approvalRes.Email!=\"\"){\r\n this.crspdOwner = this.approvalRes.Email;\r\n }\r\n // this.crspdType=this.emailContacts.LeadUser;\r\n this.crspdType = this.crspdLead;\r\n })\r\n}\r\n\r\n // eMail template\r\n retrieveSubmitStatus = () => {\r\n if (this.authWebService.userData) {\r\n switch (this.utility.btnAction) {\r\n case 1:\r\n this.description = this.authWebService.userData.Configurations.find(config => config.Code == \"AdditionalEmail1\").Value.replace(\"helpdesk@cbrta.co.za\", this.aUser.EmailAddress);\r\n break;\r\n case 2:\r\n this.description = this.authWebService.userData.Configurations.find(config => config.Code == \"ConfirmEmail2\").Value;\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n }\r\n\r\n selectUser(email){\r\n\r\n var recipients = \"\";\r\n\r\n var lead = \"\";\r\n var elementLead = document.getElementById(\"carrierLead\");\r\n if(elementLead.checked){\r\n lead = this.crspdLead;\r\n lead += \"; \";\r\n recipients += lead;\r\n }\r\n\r\n var main = \"\";\r\n var elementMain = document.getElementById(\"carrierMain\");\r\n if(elementMain.checked){\r\n main = this.crspdContact;\r\n main += \"; \";\r\n recipients += main;\r\n }\r\n\r\n var owner = \"\";\r\n var elementOwner = document.getElementById(\"carrierOwner\");\r\n if(elementOwner.checked){\r\n owner = this.crspdOwner;\r\n owner += \"; \";\r\n recipients += owner;\r\n }\r\n\r\n // this.crspdType=email;\r\n recipients = recipients.trim();\r\n recipients = recipients.replace(/;+$/, '');\r\n this.crspdType=recipients;\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

\r\n \r\n \r\n Carrier Account Correspondence\r\n

\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n
Account Number : {{approvalRes.AccountNumber}}
Account Name : {{approvalRes.Name}}
Trading Name : {{approvalRes.TradingName}}
Carrier Type : {{approvalRes.CarrierType}}
Status : {{changeStatus}}
Date Submitted :{{approvalRes.DateSubmitted | date: 'dd/MM/yyy'}}
\r\n Change Carrier Account Status to:\r\n \r\n \r\n \r\n
\r\n
\r\n
Send correspondence to:
\r\n
\r\n\r\n Lead User
\r\n Main Contact
\r\n Owner
\r\n\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n Recipients : {{this.crspdType}}
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { StatusService } from 'app/services/status.service';\r\nimport { CarrierService } from 'app/services/carrier.service';\r\nimport { UtilityServiceService } from 'app/services/utility-service.service';\r\nimport { AuthWebService } from 'app/services/authweb.service';\r\nimport { error } from 'protractor';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'list-accounts',\r\n templateUrl: './list-accounts.component.html',\r\n styleUrls: ['./list-accounts.component.css']\r\n})\r\nexport class ListAccountsComponent implements OnInit {\r\n\r\n @Input('ctrlData') ctrlData: any;\r\n flags = { flagAN: 1, flagNM: 1, flagLU: 1, flagCT: 1, flagST: 1, flagDS: 1 };\r\n ranks = { flagAN: 1, flagNM: 2, flagLU: 3, flagCT: 4, flagST: 5, flagDS: 6 };\r\n sortLabels = { flagAN: \"AccountNumber\", flagNM: \"Name\", flagLU: \"LeadUser\", flagCT: \"CarrierType\", flagST: \"Status\", flagDS: \"DateSubmitted\" };\r\n direction: boolean = false;\r\n criteria = \"DateSubmitted\";\r\n rankCtrl: number = 6;\r\n accounts: any = [];\r\n isLoading: Boolean = false;\r\n message: string = 'Loading carrier accounts, please wait...';\r\n statuses: any = [];\r\n keyword: any = {};\r\n currentPage = 1;\r\n isEmpty: boolean = false;\r\n pageSize: number = 10;\r\n accountStatus2: number;\r\n accountStatus3: number;\r\n count: number = 0;\r\n disabled = false;\r\n ShowFilter = false;\r\n limitSelection = false;\r\n selectedItems: any = [];\r\n dropdownSettings: any = {};\r\n carrierNumber: string;\r\n carrierName: string;\r\n processFlag:boolean=false;\r\n currentUserName : string = '';\r\n\r\n constructor(private msg: ToastrService, private authWebService: AuthWebService, private statusService: StatusService, private carrierService: CarrierService, public utility: UtilityServiceService,\r\n private router:Router, private activateRoute:ActivatedRoute) { }\r\n\r\n ngOnInit() {\r\n this.currentUserName = this.authWebService.userData.User.UserName;\r\n if(this.router.url.indexOf('carrier')>0){\r\n let id:any=this.activateRoute.params['_value'].id;\r\n this.utility.carrierId=id;\r\n this.processFlag=true;\r\n }\r\n this.initKeyword();\r\n this.retrieveDefaultStatuses();\r\n this.utility.page = 1;\r\n this.loadStatuses();\r\n this.InitMultiselect();\r\n //this.testEvo();\r\n }\r\n\r\n loadStatuses = () => {\r\n this.statusService.statusesDDL().subscribe((result:any) => {\r\n this.statuses = result.map(row => {\r\n return { id: row.id, desc: row.desc };\r\n });\r\n this.loadAccounts(this.currentPage, this.pageSize);\r\n });\r\n\r\n }\r\n\r\n loadAccounts = (page: number = 1, pageSize: number = 10) => {\r\n this.isLoading = true;\r\n this.carrierService.searchCarrierAccounts(this.keyword, page, pageSize, this.rankCtrl, this.direction).subscribe((result:any) => {\r\n this.accounts = result.Accounts;\r\n //console.log(this.accounts);\r\n this.count = result.Count;\r\n this.onExcuteSort(this.rankCtrl);\r\n this.isLoading = false;\r\n if(this.processFlag){\r\n let data:any=this.accounts.filter((map)=>{return map.Id==this.utility.carrierId});\r\n if(data!=null && data.length>0){\r\n this.onProcess(2,data[0]);\r\n }else{\r\n if(this.ctrlData.data!=null){\r\n if(this.ctrlData==undefined || Object.keys(this.ctrlData.data).length==0){\r\n if(this.utility.carrierObject!=null){\r\n this.ctrlData=this.utility.carrierObject;\r\n this.ctrlData.id=this.utility.carrierId;\r\n }\r\n }\r\n this.onProcess(2,this.ctrlData.data);\r\n }\r\n }\r\n }\r\n }, error => {\r\n //console.log('Error occured: ' + error);\r\n this.isLoading = false;\r\n });\r\n\r\n }\r\n\r\n isCompleted = (obj: any) => { }\r\n onAdministration = (obj: any) => { }\r\n\r\n\r\n retrieveDefaultStatuses = () => {\r\n if (this.authWebService.userData) {\r\n this.accountStatus2 = + this.authWebService.userData.Configurations.find(config => config.Code == \"AccountStatus2\").Value;\r\n // this.accountStatus3 = + this.authWebService.userData.Configurations.find(config => config.Code == \"AccountStatus3\").Value;\r\n // this.keyword.Statuses = [this.accountStatus2, this.accountStatus3];\r\n this.keyword.Statuses = [this.accountStatus2];\r\n }\r\n }\r\n\r\n\r\n onNextOrPrevious(page: number = 1) {\r\n this.loadAccounts(page, this.pageSize);\r\n this.currentPage = page;\r\n return page;\r\n }\r\n\r\n onChange = () => {\r\n this.loadAccounts(this.utility.page = 1, this.pageSize);\r\n }\r\n\r\n onSearch = () => {\r\n if (!this.isSearchable()) {\r\n this.msg.info(\"Please provide at least one filter value.\", \"Carrier Account Search\", { timeOut: 5000 });\r\n return;\r\n }\r\n this.setSearchKeywords();\r\n //console.log('Saved values = ', this.keyword);\r\n this.utility.page = 1;\r\n this.message = \"Searching for carrier account(s), please wait...\";\r\n this.loadAccounts(this.utility.page, this.pageSize);\r\n }\r\n\r\n checkKey(event){\r\n const charCode = (event.which) ? event.which : event.keyCode;\r\n if (charCode == 13) {\r\n this.onSearch();\r\n return;\r\n }\r\n }\r\n\r\n InitMultiselect() {\r\n this.dropdownSettings = {\r\n singleSelection: false,\r\n idField: 'id',\r\n textField: 'desc',\r\n selectAllText: 'Select All',\r\n unSelectAllText: 'UnSelect All',\r\n itemsShowLimit: 10,\r\n allowSearchFilter: this.ShowFilter,\r\n maxHeight: 120,\r\n closeDropDownOnSelection: false\r\n };\r\n }\r\n\r\n onItemSelect(item: any) {\r\n //console.log('onItemSelect', item);\r\n //console.log('selectedItems', this.selectedItems);\r\n }\r\n onSelectAll(items: any) {\r\n //console.log('onSelectAll', items);\r\n }\r\n toogleShowFilter() {\r\n this.ShowFilter = !this.ShowFilter;\r\n this.dropdownSettings = Object.assign({}, this.dropdownSettings, { allowSearchFilter: this.ShowFilter });\r\n }\r\n\r\n handleLimitSelection() {\r\n if (this.limitSelection) {\r\n this.dropdownSettings = Object.assign({}, this.dropdownSettings, { limitSelection: 2 });\r\n } else {\r\n this.dropdownSettings = Object.assign({}, this.dropdownSettings, { limitSelection: null });\r\n }\r\n }\r\n\r\n onDeSelect(item: any) {\r\n //console.log('onItemSelect', item);\r\n //console.log('selectedItems', this.selectedItems);\r\n }\r\n\r\n onReset = () => {\r\n this.selectedItems = [];\r\n this.carrierNumber = null;\r\n this.carrierName = null;\r\n this.initKeyword();\r\n this.utility.page = 1;\r\n ////console.log('Saved values = ', this.keyword);\r\n this.loadAccounts(this.utility.page, this.pageSize);\r\n }\r\n setSearchKeywords = () => {\r\n this.keyword.AccountNumber = (this.carrierNumber != null) ? this.carrierNumber : \"All\";\r\n this.keyword.Suffix = (this.carrierName != null) ? this.carrierName : \"All\";\r\n this.keyword.Statuses = (this.selectedItems) ? this.selectedItems.map(status => { return status.id; }) : [];\r\n }\r\n\r\n initKeyword = () => {\r\n this.keyword = { Suffix: \"All\", AccountNumber: \"All\", Statuses: [] };\r\n this.retrieveDefaultStatuses();\r\n }\r\n\r\n isSearchable = () => {\r\n return (this.carrierNumber != null || this.carrierName != null || this.selectedItems.length > 0);\r\n }\r\n\r\n onSort(rank: number) {\r\n this.direction = !this.direction;\r\n this.rankCtrl = rank;\r\n //this.onExcuteSort(rank);\r\n this.loadAccounts(this.utility.page, this.pageSize);\r\n }\r\n\r\n onResetFlags() {\r\n this.flags = { flagAN: 1, flagNM: 1, flagLU: 1, flagCT: 1, flagST: 1, flagDS: 1 };\r\n }\r\n\r\n onExcuteSort(rank: number) {\r\n this.onResetFlags();\r\n let sort = (this.direction) ? 3 : 2;\r\n this.criteria = null;\r\n switch (rank) {\r\n case this.ranks.flagAN: {\r\n this.criteria = this.sortLabels.flagAN;\r\n this.flags.flagAN = sort;\r\n break;\r\n }\r\n case this.ranks.flagNM: {\r\n this.criteria = this.sortLabels.flagNM;\r\n this.flags.flagNM = sort;\r\n break;\r\n }\r\n case this.ranks.flagLU: {\r\n this.criteria = this.sortLabels.flagLU;\r\n this.flags.flagLU = sort;\r\n break;\r\n }\r\n case this.ranks.flagCT: {\r\n this.criteria = this.sortLabels.flagCT;\r\n this.flags.flagCT = sort;\r\n break;\r\n }\r\n case this.ranks.flagST: {\r\n this.criteria = this.sortLabels.flagST;\r\n this.flags.flagST = sort;\r\n break;\r\n }\r\n default: {\r\n this.criteria = this.sortLabels.flagDS;\r\n this.flags.flagDS = sort;\r\n break;\r\n }\r\n }\r\n\r\n }\r\n\r\n setApplicationLock(application,lockStatus)\r\n {\r\n \r\n this.carrierService.getById(application.Id).subscribe((carrier:any)=>\r\n {\r\n \r\n application.isLocked = carrier.isLocked = lockStatus; \r\n application.isLockedBy = carrier.isLockedBy = lockStatus? this.authWebService.userData.User.UserName : \"\";\r\n\r\n this.carrierService.putApplication(carrier).subscribe((r)=>\r\n {\r\n \r\n if(lockStatus)\r\n {\r\n this.msg.info(\"Application Locked By '\" + carrier.isLockedBy + \"'\", \"Lock Application\", { timeOut: 5000 });\r\n }\r\n else\r\n {\r\n this.msg.info(\"Application Unlocked\", \"UnLock Application\", { timeOut: 2000 });\r\n }\r\n }, error=>{\r\n \r\n });\r\n });\r\n \r\n }\r\n\r\n unLockApplication(data)\r\n {\r\n this.setApplicationLock(data,false);\r\n }\r\n\r\n onProcess = (ctrlAction, data: any) => {\r\n if(data.status_id!=1){\r\n this.setApplicationLock(data,true);\r\n this.ctrlData.ctrlAction = ctrlAction;\r\n this.utility.currentActive = 2;\r\n this.ctrlData.data = data;\r\n this.ctrlData.carrierId = data.Id;\r\n this.utility.isBtnVisible = false;\r\n this.utility.permitType = \"\";\r\n this.utility.isView = false;\r\n this.utility.carrierId = data.Id;\r\n this.utility.carrierName = data.Name;\r\n //console.log('CarrierId = ', this.utility.carrierId);\r\n if(!this.processFlag){\r\n this.utility.carrierObject=this.ctrlData;\r\n this.router.navigate(['carrier/account/approval',this.utility.carrierId]);\r\n }\r\n\r\n }\r\n }\r\n\r\n onViewAccount = (id: number) => {\r\n ////console.log('Account ID: ', id);\r\n this.utility.currentActive = 4;\r\n this.ctrlData.carrierId = id;\r\n this.utility.isBtnVisible = true;\r\n this.utility.isView = true;\r\n this.utility.isCarrier=true;\r\n this.router.navigate(['/carrier/account/edit/' + id + '/' + 2])\r\n }\r\n\r\n\r\n\r\n}\r\n\r\n","
\r\n \r\n
\r\n
\r\n
\r\n
 Approve Carrier Accounts
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
Carrier Accounts
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 10\" style=\"padding-left:0px;margin-left:0px;\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n Lock status\r\n \r\n Account No\r\n \r\n \r\n Account Name\r\n \r\n \r\n Lead User\r\n \r\n \r\n Carrier Type\r\n \r\n \r\n Submitted On\r\n \r\n \r\n Status\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{item.AccountNumber}}{{item.Name}}{{item.LeadUser}}{{item.CarrierType}}{{item.DateSubmitted?.toLocaleString() | date:'dd/MM/yyyy'}}{{item.Status}}\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n No carrier accounts found.\r\n
\r\n

Use your mouse to hover over a code to see the description

\r\n
\r\n
\r\n
\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { UtilityServiceService } from 'app/services/utility-service.service';\r\n\r\n@Component({\r\n selector: 'acc-manager',\r\n templateUrl: './manager.component.html',\r\n styleUrls: ['./manager.component.css']\r\n})\r\nexport class ManagerComponent implements OnInit {\r\n\r\n ctrlData: any = { carrierId: 0, isApproval:true,permitId: 0, currentActive: 1, action: 0, ctrlAction: 0, data: {} };\r\n\r\n\r\n constructor(public utility: UtilityServiceService) { }\r\n\r\n ngOnInit() {\r\n this.utility.currentActive = 1;\r\n }\r\n\r\n changeView = (activeC: number, action = 0) => {\r\n this.utility.currentActive = activeC;\r\n this.ctrlData.action = action;\r\n\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n\r\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\nimport { Account } from 'app/constants/account.enum';\r\nimport { TransportAssocService } from 'app/services/transport-assoc.service';\r\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\r\nimport { CarrierService } from 'app/services/carrier.service';\r\nimport { DialogService } from 'ng2-bootstrap-modal';\r\nimport { AlertComponent } from 'app/popup/alert.component';\r\nimport { UtilityServiceService } from 'app/services/utility-service.service';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\n\r\n@Component({\r\n selector: 'compliance',\r\n templateUrl: './compliance-legal.component.html',\r\n styleUrls: ['./compliance-legal.component.css']\r\n})\r\nexport class ComplianceLegalComponent implements OnInit {\r\n @Input('ctrlPages') ctrlPages: any; \r\n lblHeading: string = \"Compliance and Legal\";\r\n isLoading = false;\r\n message = \"Processing, please wait...\";\r\n displayIndicators = [{ key: 1, value: 'TGF Supreme' }, { key: 2, value: 'Legal Transport' }]\r\n acc = Account;\r\n listAssoc: any = [];\r\n form;\r\n carrierCL:any = {};\r\n\r\n\r\n constructor(private transportAssocService: TransportAssocService,\r\n private carrierService: CarrierService, public utility: UtilityServiceService,private toastr: ToastrService) { }\r\n\r\n ngOnInit() {\r\n this.createForm();\r\n \r\n this.lblHeading = (!this.utility.ctrlPages[Account.First].isEdit) ? \"New Carrier Account's Compliance and Legal\" : \"Edit Carrier Account's Compliance and Legal\";\r\n\r\n //this.listDDL();\r\n //if (this.utility.ctrlPages[Account.First].carrierId) {\r\n // this.carrierAcc(this.utility.ctrlPages[Account.First].carrierId);\r\n\r\n //}\r\n //else {\r\n // this.dialogService.addDialog(AlertComponent, { title: 'Retrieving carrier account information', message: 'Could not retrieve carrier account information.'});\r\n //}\r\n\r\n }\r\n \r\n createForm = ()=> {\r\n this.form = new FormGroup({\r\n carrier_id: new FormControl()\r\n , bbbee_status: new FormControl(this.carrierCL.bbbee_status, Validators.maxLength(12)) \r\n , csd_number: new FormControl(this.carrierCL.csd_number, Validators.maxLength(20))\r\n , assoc_id: new FormControl(this.carrierCL.assoc_id)\r\n , country: new FormControl(this.carrierCL.country)\r\n }); \r\n }\r\n\r\n initForm = (acc:any) => {\r\n (this.form)\r\n .setValue({\r\n carrier_id: acc.carrier_id\r\n , bbbee_status: acc.bbbee_status\r\n , csd_number: acc.csd_number\r\n , assoc_id:acc.assoc_id\r\n , country: acc.country\r\n\r\n }, { onlySelf: true });\r\n }\r\n\r\n\r\n onSubmit = (obj: any) => {\r\n this.isLoading = true;\r\n this.carrierService.processCLegal(obj).subscribe(result => {\r\n this.carrierCL = result;\r\n this.isLoading = false;\r\n // this.dialogService.addDialog(AlertComponent, { title: `Carrier Account's Compliance and Legal`, message: `Carrier Account ${this.carrierCL.carrier_name}'s Compliance and Legal processed successfully.`, bold: `${this.carrierCL.carrier_name}` });\r\n this.toastr.success(`Carrier Account ${this.carrierCL.carrier_name}'s Compliance and Legal processed successfully.`,`Carrier Account's Compliance and Legal`);\r\n\r\n }, error => {\r\n this.isLoading = false;\r\n // this.dialogService.addDialog(AlertComponent, { title: `Carrier Account's Compliance and Legal`, message: `Carrier Account ${this.carrierCL.carrier_name}'s Compliance and Legal could not be processed successfully.`, bold: `${this.carrierCL.carrier_name}` });\r\n this.toastr.error(`Carrier Account ${this.carrierCL.carrier_name}'s Compliance and Legal could not be processed successfully.`,`Carrier Account's Compliance and Legal`);\r\n });\r\n }\r\n\r\n listDDL = () => { \r\n this.transportAssocService.listTransportAssoc().subscribe(result => {\r\n this.listAssoc = result; \r\n //console.log(this.listAssoc); \r\n }, error => { \r\n //console.log(error);\r\n });\r\n }\r\n\r\n carrierAcc = (id: number) => {\r\n this.isLoading = true;\r\n this.carrierService.carrierAccountsById(id).subscribe(result => {\r\n this.carrierCL = result;\r\n this.initForm(this.carrierCL);\r\n //console.log(this.carrierCL);\r\n this.isLoading = false;\r\n }, error => {\r\n this.isLoading = false; \r\n //console.log(error);\r\n });\r\n }\r\n\r\n\r\n \r\n}\r\n","
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n Compliance and Legal\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n\r\n \r\n","import { Component, OnInit } from '@angular/core';\r\nimport { CarrierService } from 'app/services/carrier.service';\r\nimport { AuthWebService } from 'app/services/authweb.service';\r\nimport { Router } from '@angular/router';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { CarrierAccountService } from 'app/services/carrier-account.service';\r\nimport { PopupService } from 'app/services/shared/popup.service';\r\nimport { ConfirmDialogService } from 'app/services/shared/confirm-dialog/confirm-dialog.service';\r\nimport { EnterConfirmationPopupComponent } from './enter-confirmation-popup/enter-confirmation-popup.component';\r\n\r\n@Component({\r\n selector: 'app-delink-carrier-account',\r\n templateUrl: './delink-carrier-account.component.html',\r\n styleUrls: ['./delink-carrier-account.component.css']\r\n})\r\nexport class DeLinkCarrierAccountComponent implements OnInit {\r\n\r\n isLoading: Boolean = false;\r\n message: string = 'Loading carrier accounts, please wait...';\r\n carrierAccounts: any = [];\r\n userData: any;\r\n carrierCode: string;\r\n \r\n user: any = {};\r\n constructor(private carrierAccountService: CarrierAccountService, private carrierService: CarrierService, private authWebService: AuthWebService, private router: Router,\r\n private toaster: ToastrService, private showModal: PopupService, public dialogService: ConfirmDialogService) { \r\n this.user = (this.authWebService.userData) ? this.authWebService.userData.User : null;\r\n }\r\n\r\n ngOnInit() {\r\n this.userData = this.authWebService.userData;\r\n }\r\n\r\n GetAccounts() {\r\n this.carrierAccountService.GetLinkedCarrierAccounts(this.userData.User.ID).subscribe(result => {\r\n this.carrierAccounts = result;\r\n });\r\n }\r\n\r\n onSearch() {\r\n this.carrierAccountService.GetLinkedCarrierAccountsByCarrierCode(this.carrierCode).subscribe(result => {\r\n this.carrierAccounts = result;\r\n if (this.carrierAccounts == null || this.carrierAccounts.length < 1) {\r\n this.toaster.warning('No carrier account found using \"' + this.carrierCode + '\".');\r\n }\r\n });\r\n }\r\n\r\n enterConfirmation(legacy_carrier_code) {\r\n this.dialogService.confirmThis('Are you sure you want to delink ' + legacy_carrier_code + \"?\", () => { \r\n this.carrierCode = legacy_carrier_code;\r\n this.onSearch();\r\n this.toaster.success('' + legacy_carrier_code + ' has been successfully de-linked.');\r\n this.confirm(legacy_carrier_code) \r\n }, () => { \r\n this.toaster.warning('Delinking Unsuccessful.'); \r\n return;\r\n })\r\n \r\n\r\n // this.dialogService.addDialog(EnterConfirmationPopupComponent, {\r\n // title: 'Confirm Carrier Account De-Linking',\r\n // message: 'Are you sure you want to delink ' + legacy_carrier_code + \"?\",\r\n // comment: ``,\r\n // confirmButtonText: 'Confirm',\r\n // cancelButtonText: 'Cancel',\r\n // account: legacy_carrier_code\r\n // }).subscribe((isConfirmed) => {\r\n // if (isConfirmed) {\r\n // this.carrierCode = legacy_carrier_code;\r\n // this.onSearch();\r\n // this.toaster.success('' + legacy_carrier_code + ' has been successfully de-linked.');\r\n // } else {\r\n // this.toaster.warning('An error occured, please try again.');\r\n // }\r\n // });\r\n }\r\n confirm(otpInput) {\r\n this.carrierAccountService.CarrierAccountDelinkConfirmation(this.carrierCode).subscribe((result:any) => {\r\n if (result == \"success\") {\r\n\r\n }\r\n else {\r\n\r\n\r\n if (result == \"invalid\") {\r\n \r\n } else {\r\n this.toaster.warning(result);\r\n }\r\n }\r\n});\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
De-Link Carrier Account
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Search\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Account NumberAccount NameCarrier Type
{{acc.account_number}}{{acc.carrier_name}}{{acc.carrier_type}}
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
","import { Component, ViewChild, AfterViewInit, ElementRef } from '@angular/core';\r\nimport { DialogComponent, DialogService } from 'ng2-bootstrap-modal';\r\nimport { CarrierAccountService } from 'app/services/carrier-account.service';\r\nimport { AuthWebService } from 'app/services/authweb.service';\r\nimport { PopupService } from 'app/services/shared/popup.service';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\nexport interface YesNoModel {\r\n title: string;\r\n message: string;\r\n comment: string;\r\n confirmButtonText: string;\r\n cancelButtonText: string;\r\n account: any;\r\n}\r\n\r\n@Component({\r\n selector: 'app-enter-otp-popup',\r\n template: `
\r\n
\r\n
\r\n

{{title || 'Confirmation'}}

\r\n {{message}}
\r\n {{comment}} \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
`,\r\n styles: [`\r\n .bgd-c{background:rgb(57, 50,118 )!important;}\r\n .ft-c{color: rgb(253, 207,76 )!important;} \r\n `]\r\n})\r\nexport class EnterConfirmationPopupComponent extends DialogComponent implements YesNoModel {\r\n title: string;\r\n message: string;\r\n comment: string;\r\n confirmButtonText: string;\r\n cancelButtonText: string;\r\n account: any;\r\n otpInput:any\r\n constructor(dialogService: DialogService, private carrierAccountService: CarrierAccountService, private authWebService: AuthWebService, private showModal: PopupService, private toaster: ToastrService) {\r\n super(dialogService);\r\n }\r\n\r\n confirm(otpInput) {\r\n this.carrierAccountService.CarrierAccountDelinkConfirmation(this.account).subscribe((result:any) => {\r\n if (result == \"success\") {\r\n this.result = true;\r\n this.close();\r\n }\r\n else {\r\n this.result = false;\r\n this.close();\r\n\r\n if (result == \"invalid\") {\r\n \r\n } else {\r\n this.toaster.warning(result);\r\n }\r\n }\r\n });\r\n }\r\n cancel() {\r\n this.result = false;\r\n this.close();\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-demographics',\r\n templateUrl: './demographics.component.html',\r\n styleUrls: ['./demographics.component.css']\r\n})\r\nexport class DemographicsComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","

\r\n\r\n

","import { Component, ViewChild, AfterViewInit, ElementRef } from '@angular/core';\r\nimport { DialogComponent, DialogService } from 'ng2-bootstrap-modal';\r\nimport { CarrierAccountService } from 'app/services/carrier-account.service';\r\nimport { AuthWebService } from 'app/services/authweb.service';\r\nimport { PopupService } from 'app/services/shared/popup.service';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\nexport interface YesNoModel {\r\n title: string;\r\n message: string;\r\n comment: string;\r\n confirmButtonText: string;\r\n cancelButtonText: string;\r\n account: any;\r\n}\r\n\r\n@Component({\r\n selector: 'app-enter-otp-popup',\r\n template: `
\r\n
\r\n
\r\n

{{title || 'Confirmation'}}

\r\n {{message}}
\r\n {{comment}} \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
`,\r\n styles: [`\r\n .bgd-c{background:rgb(57, 50,118 )!important;}\r\n .ft-c{color: rgb(253, 207,76 )!important;} \r\n `]\r\n})\r\nexport class EnterOtpPopupComponent extends DialogComponent implements YesNoModel {\r\n title: string;\r\n message: string;\r\n comment: string;\r\n confirmButtonText: string;\r\n cancelButtonText: string;\r\n account: any;\r\n\r\n constructor(dialogService: DialogService, private carrierAccountService: CarrierAccountService, private authWebService: AuthWebService, private showModal: PopupService, private toaster: ToastrService) {\r\n super(dialogService);\r\n }\r\n\r\n confirm(otpInput) {\r\n this.carrierAccountService.EnterCarrierAccountLinkOTP(this.account.carrier_person_id, otpInput.value).subscribe(result => {\r\n if (result == \"success\") {\r\n this.result = true;\r\n this.close();\r\n }\r\n else {\r\n this.result = false;\r\n this.close();\r\n }\r\n });\r\n }\r\n cancel() {\r\n this.result = false;\r\n this.close();\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { CarrierService } from 'app/services/carrier.service';\r\nimport { AuthWebService } from 'app/services/authweb.service';\r\nimport { Router } from '@angular/router';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { CarrierAccountService } from 'app/services/carrier-account.service';\r\nimport { PopupService } from 'app/services/shared/popup.service';\r\nimport { DialogService } from 'ng2-bootstrap-modal';\r\nimport { EnterOtpPopupComponent } from './enter-otp-popup/enter-otp-popup.component';\r\n\r\n@Component({\r\n selector: 'app-link-carrier-account',\r\n templateUrl: './link-carrier-account.component.html',\r\n styleUrls: ['./link-carrier-account.component.css']\r\n})\r\nexport class LinkCarrierAccountComponent implements OnInit {\r\n\r\n isLoading: Boolean = false;\r\n message: string = 'Loading carrier accounts, please wait...';\r\n carrierAccounts: any = [];\r\n userData: any;\r\n roles: any = [\r\n { role: 1, desc: \"Lead User\" },\r\n { role: 2, desc: \"Editor User\" },\r\n { role: 6, desc: \"Read User\" },\r\n { role: 11, desc: \"Owner\" },\r\n { role: 12, desc: \"Consultant\" },\r\n { role: 21, desc: \"Main Contact\" }\r\n ];\r\n user: any = {};\r\n account;\r\n\r\n constructor(private carrierAccountService: CarrierAccountService, private carrierService: CarrierService, private authWebService: AuthWebService, private router: Router,\r\n private toaster: ToastrService, private showModal: PopupService) { \r\n this.user = (this.authWebService.userData) ? this.authWebService.userData.User : null;\r\n }\r\n\r\n ngOnInit() {\r\n this.userData = this.authWebService.userData;\r\n this.GetAccounts();\r\n }\r\n GetAccounts() {\r\n this.carrierAccountService.GetLinkedCarrierAccounts(this.userData.User.Id).subscribe(result => {\r\n this.carrierAccounts = result;\r\n });\r\n }\r\n enterOTP(acc) {\r\n let OtpMessage = document.getElementById('OtpMessage');\r\n\t OtpMessage.innerHTML =\"Enter Your OTP to complete linking to \" + acc.carrier_name;\r\n this.account = acc;\r\n document.getElementById('secretButton').click();\r\n // this.dialogService.addDialog(EnterOtpPopupComponent, {\r\n // title: \"Carrier Accounts: Enter OTP\",\r\n // message: \"Enter Your OTP to complete linking to \" + acc.carrier_name,\r\n // comment: ``,\r\n // confirmButtonText: \"Proceed\",\r\n // cancelButtonText: \"Cancel\",\r\n // account: acc\r\n // }).subscribe((isConfirmed) => {\r\n // if (isConfirmed) {\r\n // this.GetAccounts();\r\n // this.toaster.success('The account of Carrier ' + acc.carrier_name + ' has been successfully linked to you. You are now their Consultant.');\r\n // } else {\r\n // this.toaster.warning('Invalid OTP.');\r\n // }\r\n // });\r\n }\r\n getRoleDesc(role_ind){\r\n return this.roles.find(x => x.role == role_ind).desc;\r\n }\r\n\r\n confirm(otpInput) {\r\n this.carrierAccountService.EnterCarrierAccountLinkOTP(this.account.carrier_person_id, otpInput.value).subscribe(result => {\r\n if (result == \"success\") {\r\n this.GetAccounts();\r\n this.toaster.success('The account of Carrier ' + this.account.carrier_name + ' has been successfully linked to you. You are now their Consultant.');\r\n \r\n //this.result = true;\r\n //this.close();\r\n }\r\n else {\r\n this.toaster.warning('Invalid OTP.');\r\n //this.result = false;\r\n //this.close();\r\n }\r\n });\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
⊄Carrier Accounts: Link Carrier Account
\r\n
\r\n
\r\n {{user?.UserName}}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Carrier NameLead UserAssigned RoleContact#Link Status
{{acc.carrier_name}}{{acc.lead_user_name}}{{getRoleDesc(acc.assigned_role)}}{{acc.carrier_contact}}{{acc.link_status}}
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n","import { Component, OnInit, Input, ViewChild } from '@angular/core';\r\nimport { Router, ActivatedRoute, Params } from '@angular/router';\r\nimport { Page } from 'app/classes/page';\r\nimport { Account } from 'app/constants/account.enum';\r\nimport { UtilityServiceService } from 'app/services/utility-service.service';\r\nimport { PopupService } from 'app/services/shared/popup.service';\r\nimport { CompanydetailsComponent } from 'app/companydetails/companydetails.component';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { ConfirmDialogService } from 'app/services/shared/confirm-dialog/confirm-dialog.service';\r\nimport { UploaddocumentComponent } from 'app/uploaddocument/uploaddocument.component';\r\n\r\ndeclare var $: any;\r\n\r\n@Component({\r\n selector: 'ca-management',\r\n templateUrl: './management.component.html',\r\n styleUrls: ['./management.component.css']\r\n})\r\nexport class ManagementComponent implements OnInit {\r\n\r\n sub: any;\r\n acc = Account;\r\n iconCtrl = 1;\r\n displayFlag:boolean=false;\r\n status: any;\r\n @Input('ctrlData') ctrlData: any;\r\n switchCtrl: number;\r\n //ctrlData: any = { carrierId: 0, isApproval: false, currentActive: 1, action: 0, ctrlAction: 0, data: {} };\r\n @ViewChild(CompanydetailsComponent) company: CompanydetailsComponent;\r\n\r\n @ViewChild(UploaddocumentComponent) document: UploaddocumentComponent;\r\n\r\n constructor(private router: Router, private route: ActivatedRoute,\r\n private msgService: PopupService, public utility: UtilityServiceService,\r\n private msg: ToastrService,private confirmDialogService: ConfirmDialogService) { }\r\n\r\n ngOnInit() {\r\n if (!this.ctrlData) {\r\n this.ctrlData = { carrierId: 0, isApproval: false, currentActive: 1, action: 0, ctrlAction: 0, xstatus:0, data: {} }; \r\n \r\n \r\n this.route.paramMap.subscribe((params: Params) => {\r\n \r\n \r\n if(params['status']!=\"\"){\r\n this.status = params.get(\"status\");\r\n if(this.status == 1)\r\n {\r\n this.utility.isProcessAccounts = false;\r\n this.ctrlData.isApproval = true;\r\n this.ctrlData.carrierId = params.get(\"id\");\r\n this.ctrlData.xstatus = 1;\r\n }\r\n else if(this.status == 2)\r\n {\r\n this.ctrlData.isApproval = true;\r\n this.utility.isProcessAccounts = true;\r\n this.ctrlData.carrierId = params.get(\"id\");\r\n this.ctrlData.xstatus = 1;\r\n }\r\n }\r\n\r\n \r\n })\r\n \r\n } \r\n this.preprocessing();\r\n }\r\n ngAfterViewInit() {\r\n }\r\n\r\n preprocessing = () => {\r\n if (this.ctrlData.isApproval) {\r\n this.utility.activeTab = 3;\r\n this.utility.ctrlPages[Account.First].carrierId = this.ctrlData.carrierId;\r\n this.utility.ctrlPages[Account.First].isEdit = true;\r\n this.utility.docCtrl = true;\r\n this.utility.confirmCtrl = true;\r\n \r\n } else {\r\n //this.utility.isView = false;\r\n this.utility.activeTab = 1;\r\n this.utility.isBtnVisible = true;\r\n this.sub = this.route.params.subscribe(params => {\r\n this.utility.switchOnVisibility(Account.First);\r\n this.utility.ctrlPages[Account.First].carrierId = +params['id'];\r\n if (this.router.url.indexOf('edit') != -1) {\r\n this.utility.ctrlPages[Account.First].isEdit = true;\r\n this.utility.docCtrl = true;\r\n this.utility.confirmCtrl = true;\r\n } else {\r\n this.utility.ctrlPages[Account.First].isEdit = false;\r\n this.utility.docCtrl = false;\r\n this.utility.confirmCtrl = false;\r\n }\r\n });\r\n }\r\n\r\n }\r\n\r\n onActive = (key = 1) => {\r\n if(key === 3){\r\n if(this.document === undefined){\r\n return this.msg.warning('Please verify the documents first before comfirming your details!');\r\n }\r\n for(let i = 0;i {\r\n let isEd = (this.utility.ctrlPages[Account.First].carrierId > 0) ? true : false;\r\n /*\r\n if (isEd) {\r\n this.msgService.showYesNo('Save & Continue', 'Please note that the account change will need to be re-submitted for approval, do you want to continue?', '', 'Yes', 'No')\r\n .subscribe((isConfirmed) => {\r\n if (isConfirmed) {\r\n this.nextFrameDeleg();\r\n } else {\r\n this.utility.landingPage();\r\n }\r\n });\r\n }\r\n else {\r\n this.nextFrameDeleg();\r\n }\r\n */\r\n this.nextFrameDeleg();\r\n }\r\n back(){\r\n this.utility.activeTab = 1;\r\n }\r\n nextFrameDeleg() {\r\n var self = this;\r\n var count = 0;\r\n $(document).ready(function() {\r\n \r\n if ($('.file-upload').length > 0) {\r\n $('.file-upload').each(function(){ \r\n var id = this.id; \r\n if ($('#' + id).val() == '' || $('#' + id).val()==undefined) {\r\n var docDescId = id + \"-desc\";\r\n var documentName = $('#' + docDescId).val();\r\n self.msg.warning(documentName + ' is required!');\r\n return false;\r\n }\r\n if ($('.file-upload').length - 1 == count) {\r\n self.utility.activeTab = 3;\r\n self.utility.confirmCtrl = true;\r\n self.iconCtrl = 3;\r\n }\r\n count++;\r\n });\r\n } else {\r\n self.utility.activeTab = 3;\r\n self.utility.confirmCtrl = true;\r\n self.iconCtrl = 3;\r\n }\r\n });\r\n }\r\n toogle = (key = 1) => {\r\n if (this.utility.isChanged) {\r\n // this.msgService.showYesNo('Unsaved Changes Detected', 'You have unsaved data. Do you wish to save your data?', 'Unsaved data will be lost.').subscribe(isConfirmed => {\r\n // if (isConfirmed) {\r\n // if (this.company)\r\n // this.company.autoSave(this.switchCtrl);\r\n // } else {\r\n // this.utility.isChanged = false;\r\n // this.utility.activeTab = this.switchCtrl;\r\n // }\r\n // if (this.switchCtrl == 2) {\r\n // //this.utility.activeTab = this.switchCtrl;\r\n // $('.nav-tabs a:eq(1)').tab('show');\r\n // //this.utility.isChanged = false;\r\n // //else { \r\n // // $('.nav-tabs a:eq(0)').tab('show');\r\n // //}\r\n // } else if (this.switchCtrl == 3) {\r\n // //this.utility.activeTab = this.switchCtrl;\r\n // $('.nav-tabs a:eq(2)').tab('show');\r\n // //this.utility.isChanged = false;\r\n // }\r\n // })\r\n this.confirmDialogService.confirmThis(\"You have unsaved data. Do you wish to save your data?\", () => { \r\n \r\n if (this.company)\r\n this.company.autoSave(this.switchCtrl);\r\n\r\n if (this.switchCtrl == 2) {\r\n //this.utility.activeTab = this.switchCtrl;\r\n $('.nav-tabs a:eq(1)').tab('show');\r\n //this.utility.isChanged = false;\r\n //else { \r\n // $('.nav-tabs a:eq(0)').tab('show');\r\n //}\r\n } else if (this.switchCtrl == 3) {\r\n //this.utility.activeTab = this.switchCtrl;\r\n $('.nav-tabs a:eq(2)').tab('show');\r\n //this.utility.isChanged = false;\r\n }\r\n \r\n }, () => { \r\n this.utility.isChanged = false;\r\n this.utility.activeTab = this.switchCtrl;\r\n \r\n })\r\n } else {\r\n this.utility.activeTab = this.switchCtrl;\r\n }\r\n }\r\n\r\n\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n\r\n","import {Component, OnInit, Input} from '@angular/core';\r\nimport {CarrierService} from 'app/services/carrier.service';\r\nimport {AuthWebService} from 'app/services/authweb.service';\r\nimport {Router, ActivatedRoute, NavigationEnd} from '@angular/router';\r\nimport {UtilityServiceService} from 'app/services/utility-service.service';\r\nimport {ToastrService} from 'ngx-toastr';\r\nimport {DatePipe} from '@angular/common';\r\nimport {CorspdcService} from 'app/services/corspdc.service';\r\nimport {CarriertransactionService} from 'app/services/carriertransaction.service';\r\n// import jsPDF = require('jspdf');\r\nvar jsPDF = require('jspdf');\r\nrequire('jspdf-autotable');\r\nimport {Injectable, Inject} from '@angular/core';\r\n\r\nimport {Observable} from 'rxjs';\r\nimport 'rxjs/Rx';\r\nimport {filter} from 'rxjs/operators';\r\n\r\ndeclare var printJS: any;\r\n\r\n@Component({\r\n selector: 'app-footer-statment',\r\n templateUrl: './footer-statment.component.html',\r\n styleUrls: ['./footer-statment.component.css']\r\n})\r\nexport class FooterStatmentComponent implements OnInit {\r\n\r\n debtoraccount: any;\r\n listTransactions: any;\r\n carrierid: any;\r\n person_id: any;\r\n accountnumber: string;\r\n user: any;\r\n isLoading: boolean = false;\r\n isEmpty: boolean = false;\r\n message = 'Submitting your request, please wait...';\r\n invoicedate: any;\r\n screen: any;\r\n\r\n constructor(private carrierService: CarrierService, private authWebService: AuthWebService, private router: Router, public utility: UtilityServiceService, public transData: CarriertransactionService,\r\n private toaster: ToastrService, private datepipe: DatePipe, private route: ActivatedRoute, private crspdService: CorspdcService) {\r\n this.user = (this.authWebService.userData) ? this.authWebService.userData.User : null;\r\n\r\n\r\n }\r\n\r\n ngOnInit() {\r\n if (this.router.url.indexOf('/carrier/statement') !== -1) {\r\n console.log(\"Statement\")\r\n this.screen = 'statement';\r\n } else if (this.router.url.indexOf('/carrier/invoice') !== -1) {\r\n console.log(\"Invoice\")\r\n this.screen = 'invoice'\r\n }\r\n\r\n }\r\n\r\n\r\n printStatement() {\r\n let doc = this.GenerateStatementPDF();\r\n window.open('data:application/octet-stream;charset=utf-16le;base64,' + doc);\r\n\r\n }\r\n\r\n //generate PDF\r\n GenerateStatementPDF() {\r\n\r\n const formatter = new Intl.NumberFormat('en-US', {\r\n style: 'currency',\r\n currency: 'ZAR',\r\n minimumFractionDigits: 0\r\n });\r\n\r\n this.transData.currentlist.subscribe(data => this.listTransactions = data);\r\n this.debtoraccount = this.transData.debtoraccount;\r\n\r\n var doc = new jsPDF();\r\n var imgData = 'data:image/png;base64,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'\r\n\r\n\r\n // Add account details header\r\n\r\n var headercol = [' ', ' '];\r\n var headerrow = [];\r\n\r\n headerrow.push(['Account Id:', this.transData.debtoraccount.customer_code]);\r\n headerrow.push(['Account Name:', this.transData.debtoraccount.customer_name]);\r\n headerrow.push(['Contact Person:', this.transData.debtoraccount.contact_person]);\r\n headerrow.push(['Email:', this.transData.debtoraccount.email]);\r\n headerrow.push(['Statement Date:', this.datepipe.transform(Date.now(), 'dd-MM-yyyy')]);\r\n\r\n\r\n //transcation list table\r\n var col = ['Ref Number', 'Date', 'Description', 'Type', 'Total'];\r\n var rows = [];\r\n\r\n this.listTransactions.forEach(element => {\r\n // var d = new Date(element.transaction_date);\r\n var temp = [element.reference_number, this.datepipe.transform(element.transaction_date, 'dd-MM-yyyy'), element.transaction_description, element.transaction_type, formatter.format(element.transaction_total * -1)];\r\n rows.push(temp);\r\n });\r\n\r\n\r\n doc.setFontSize(14);\r\n doc.setTextColor(41, 128, 186);\r\n doc.text(15, 20, 'Statement');\r\n\r\n doc.autoTable(\r\n headercol,\r\n headerrow,\r\n {\r\n theme: 'plain',\r\n margin: {top: 20, right: 305},\r\n styles: {fontSize: 10, overflow: 'linebreak', columnWidth: 'wrap'},\r\n });\r\n\r\n doc.autoTable(\r\n col,\r\n rows,\r\n {theme: 'striped', margin: {top: 80}});\r\n\r\n doc.setFontSize(11);\r\n doc.text(120, doc.autoTable.previous.finalY + 10, 'Account Balance: ' + formatter.format(this.transData.debtoraccount.AccountBalance * -1), {});\r\n return doc;\r\n }\r\n\r\n emailStatement() {\r\n let doc = this.GenerateStatementPDF();\r\n var pdfBase64 = doc.output('datauristring');\r\n this.sendConfirmMail(doc);\r\n\r\n }\r\n\r\n cancelStatement() {\r\n this.router.navigate(['carrier/accounts/']);\r\n }\r\n\r\n sendConfirmMail(pdfDoc) {\r\n let payload: any = new Object;\r\n payload['id'] = 0;\r\n payload['carrier_id'] = this.carrierid;\r\n payload['from_person_id'] = this.person_id;\r\n payload['app_id_permit_type_code'] = null;\r\n payload['carrierName'] = null;\r\n payload['person_from'] = this.person_id;\r\n payload['application_id'] = null;\r\n payload['permit_num'] = null;\r\n payload['document_id1'] = null;\r\n payload['document_id2'] = null;\r\n payload['document_id3'] = null;\r\n payload['corspdc_type_ind'] = 1;\r\n payload['send_receive_ind'] = 1;\r\n payload['comm_type_ind'] = 1;\r\n payload['subject'] = 'ICBMS Statement';\r\n payload['body_text'] = '';\r\n payload['note'] = null;\r\n payload['num_bookmarks'] = 1;\r\n payload['bookmark1_value'] = null;\r\n payload['bookmark2_value'] = null;\r\n payload['bookmark3_value'] = null;\r\n payload['bookmark4_value'] = null;\r\n payload['bookmark5_value'] = null;\r\n payload['bookmark6_value'] = null;\r\n payload['date_to_send'] = new Date();\r\n payload['date_sent'] = new Date();\r\n payload['date_created'] = new Date();\r\n payload['date_modified'] = new Date();\r\n payload['user_created'] = new Date();\r\n payload['user_modified'] = new Date();\r\n payload['send_rcvd'] = null;\r\n payload['comm_type'] = null;\r\n payload['hasDoc'] = true;\r\n payload['attachment'] = pdfDoc.output('datauristring');\r\n // payload['correspondence_person= ;\r\n payload['file_name'] = 'ICBMS Statement';\r\n\r\n\r\n //console.log(payload);\r\n this.crspdService.sendMail(payload).subscribe(res => {\r\n //console.log(res);\r\n this.toaster.success(`Your statement was successfully submitted successfully.`);\r\n }, error => {\r\n this.toaster.error(`An error occured`);\r\n })\r\n }\r\n\r\n downloadStatement() {\r\n let doc = this.GenerateStatementPDF()\r\n doc.save(this.transData.accountnumber + '.pdf');\r\n }\r\n\r\n //Invoice Transactions\r\n\r\n GenerateInvoicePDF() {\r\n\r\n const formatter = new Intl.NumberFormat('en-US', {\r\n style: 'currency',\r\n currency: 'ZAR',\r\n minimumFractionDigits: 0\r\n });\r\n\r\n this.debtoraccount = this.transData.debtoraccount;\r\n var doc = new jsPDF();\r\n\r\n\r\n var img = new Image()\r\n img.src = 'assets/crossboarderHeader1.png';\r\n\r\n doc.addImage(img, 'png', 5, 5, 190, 30);\r\n //Add account details header\r\n\r\n var headercol = [' ', ' '];\r\n var headerrow = [];\r\n\r\n ;\r\n\r\n\r\n //transcation list table\r\n var col = ['Item Code', 'Description', 'Price Per Unit', 'Quantity', 'Total'];\r\n var rows = [];\r\n\r\n\r\n this.transData.invoicedetails.invoiceItems.forEach(element => {\r\n // var d = new Date(element.transaction_date);\r\n this.invoicedate = this.datepipe.transform(this.transData.invoicedetails.InvoiceDate, 'dd-MM-yyyy');\r\n\r\n var temp = [element.ItemCode, element.Description, formatter.format(element.unit_price), element.quantity, formatter.format(element.line_total)];\r\n rows.push(temp);\r\n });\r\n\r\n headerrow.push(['Account ID:', this.transData.debtoraccount.customer_code]);\r\n headerrow.push(['Account Name:', this.debtoraccount.customer_name]);\r\n headerrow.push(['Contact Person:', this.debtoraccount.contact_person]);\r\n headerrow.push(['Email:', this.debtoraccount.email]);\r\n headerrow.push(['Invoice Number:', this.transData.referencenumber]);\r\n headerrow.push(['Invoice Date:', this.invoicedate]);\r\n headerrow.push(['', '']);\r\n\r\n doc.setFontSize(14);\r\n doc.setTextColor(41, 128, 186);\r\n doc.text(15, 40, 'Invoice To');\r\n\r\n doc.autoTable(\r\n headercol,\r\n headerrow,\r\n {\r\n theme: 'plain',\r\n margin: {top: 40, right: 305, bottom: 40},\r\n styles: {fontSize: 10, overflow: 'linebreak', columnWidth: 'wrap'},\r\n });\r\n\r\n doc.autoTable(col, rows, {theme: 'striped', margin: {top: 100}});\r\n\r\n doc.setFontSize(11);\r\n doc.text(150, doc.autoTable.previous.finalY + 10, 'Invoice Total: ' + formatter.format(this.transData.invoicedetails.InclusiveTotal));\r\n return doc;\r\n }\r\n\r\n printInvoice() {\r\n let doc = this.GenerateInvoicePDF();\r\n //console.log(doc.output('dataurlnewwindow'));\r\n window.open(\r\n doc,\r\n '_blank' // <- This is what makes it open in a new window.\r\n );\r\n // printJS({ printable: doc, type: 'pdf', showModal: true, modalMessage: 'Processing your request, please wait...' });\r\n // doc.output('dataurlnewwindow');\r\n\r\n }\r\n\r\n emailInvoice() {\r\n let doc = this.GenerateInvoicePDF();\r\n var pdfBase64 = doc.output('datauristring');\r\n\r\n\r\n let payload: any = Object();\r\n payload['carrier_id'] = this.transData.carrierid;\r\n payload['application_id'] = null;\r\n payload['document_id1'] = null;\r\n payload['document_id2'] = null;\r\n payload['document_id3'] = null;\r\n payload['corspdc_type_ind'] = 1;\r\n payload['body_text'] = null;\r\n payload['notes'] = null;\r\n payload['attachment'] = pdfBase64;\r\n payload['subject'] = 'ICBMS Invoice';\r\n payload['send_receive_ind'] = 1;\r\n payload['comm_type_ind'] = 1;\r\n payload['num_bookmarks'] = 1;\r\n payload['date_created'] = new Date();\r\n payload['date_modified'] = new Date();\r\n payload['user_created'] = new Date();\r\n payload['user_modified'] = new Date();\r\n payload['bookmark1_value'] = null;\r\n payload['bookmark2_value'] = null;\r\n payload['bookmark3_value'] = null;\r\n payload['bookmark4_value'] = null;\r\n payload['bookmark5_value'] = null;\r\n payload['bookmark6_value'] = null;\r\n payload['from_person_id'] = this.person_id;\r\n payload['correspondence_person'] = this.person_id;\r\n payload['file_name'] = 'ICBMS Invoice';\r\n\r\n this.crspdService.sendMail(payload).subscribe(res => {\r\n //console.log(res);\r\n this.toaster.success(`Your invoice was successfully submitted successfully.`);\r\n }, error => {\r\n this.toaster.error(`An error occured`);\r\n });\r\n\r\n }\r\n\r\n cancelInvoice() {\r\n this.router.navigate(['carrier/statement/' + this.transData.accountnumber + '/' + this.transData.carrierid]);\r\n }\r\n\r\n cancel(){\r\n if (this.router.url.indexOf('/carrier/statement') !== -1) {\r\n this.screen = 'statement';\r\n this.cancelStatement();\r\n } else if (this.router.url.indexOf('/carrier/invoice') !== -1) {\r\n console.log(\"Invoice\")\r\n this.screen = 'invoice'\r\n this.cancelInvoice();\r\n }\r\n }\r\n\r\n downloadInvoice() {\r\n let doc = this.GenerateInvoicePDF();\r\n doc.save(this.transData.referencenumber + '.pdf');\r\n\r\n }\r\n\r\n download(){\r\n if (this.router.url.indexOf('/carrier/statement') !== -1) {\r\n this.screen = 'statement';\r\n this.downloadStatement();\r\n } else if (this.router.url.indexOf('/carrier/invoice') !== -1) {\r\n console.log(\"Invoice\")\r\n this.screen = 'invoice'\r\n this.downloadInvoice();\r\n }\r\n }\r\n\r\n email(){\r\n if (this.router.url.indexOf('/carrier/statement') !== -1) {\r\n this.screen = 'statement';\r\n this.emailStatement();\r\n } else if (this.router.url.indexOf('/carrier/invoice') !== -1) {\r\n console.log(\"Invoice\")\r\n this.screen = 'invoice'\r\n this.emailInvoice();\r\n }\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { CarrierService } from 'app/services/carrier.service';\r\nimport { AuthWebService } from 'app/services/authweb.service';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { UtilityServiceService } from 'app/services/utility-service.service';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { DatePipe } from '@angular/common';\r\nimport { CorspdcService } from 'app/services/corspdc.service';\r\n// import jsPDF = require('jspdf');\r\nvar jsPDF = require('jspdf');\r\nrequire('jspdf-autotable');\r\n\r\n\r\n@Component({\r\n selector: 'app-footer',\r\n templateUrl: './footer.component.html',\r\n styleUrls: ['./footer.component.css']\r\n})\r\nexport class FooterComponent implements OnInit {\r\n \r\n @Input('ctrlData') ctrlData: any;\r\n debtoraccount: any;\r\n listTransactions: any;\r\n carrierid: any;\r\n person_id: any;\r\n accountnumber: string;\r\n user: any;\r\n isLoading: boolean = false;\r\n isEmpty: boolean = false;\r\n message = \"Submitting your request, please wait...\";\r\n\r\n constructor(private carrierService: CarrierService, private authWebService: AuthWebService,private router:Router, public utility: UtilityServiceService,\r\n private toaster:ToastrService, private datepipe:DatePipe, private route: ActivatedRoute, private crspdService:CorspdcService) {\r\n this.user = (this.authWebService.userData) ? this.authWebService.userData.User:null;\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n printStatement()\r\n {\r\n\r\n \r\n let doc = this.GeneratePDF();\r\n doc.output('dataurlnewwindow');\r\n // doc.save(this.accountnumber + '.pdf');\r\n\r\n }\r\n\r\n //generate PDF\r\n GeneratePDF ()\r\n {\r\n var doc = new jsPDF();\r\n var imgData = 'data:image/png;base64,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'\r\n \r\n \r\n // Add account details header\r\n\r\n var headercol= [\" \",\" \"];\r\n var headerrow = [];\r\n\r\n headerrow.push([\"Account Id:\", this.debtoraccount.account_link]);\r\n headerrow.push([\"Account Name:\", this.debtoraccount.customer_name]);\r\n headerrow.push([\"Contact Person:\", this.debtoraccount.contact_person]);\r\n headerrow.push([\"Email:\", this.debtoraccount.email]);\r\n\r\n\r\n //transcation list table\r\n var col = [\"Ref Number\",\"Date\", \"Description\", \"Type\", \"Total\"];\r\n var rows = [];\r\n\r\n this.listTransactions.forEach(element => { \r\n // var d = new Date(element.transaction_date);\r\n var temp = [element.reference_number, element.transaction_date, element.transaction_description, element.transaction_type, element.transaction_total];\r\n rows.push(temp); \r\n }); \r\n\r\n\r\n doc.setFontSize(14);\r\n doc.setTextColor(41,128,186);\r\n doc.text(15,20,'Statement');\r\n \r\n doc.autoTable(\r\n headercol, \r\n headerrow, \r\n { theme: 'plain', \r\n margin: { top:20, right:305 },\r\n styles:{ fontSize:10, overflow:'linebreak', columnWidth:'wrap' },\r\n });\r\n \r\n doc.autoTable(\r\n col, \r\n rows, \r\n {theme: 'striped', margin: {top: 60}});\r\n\r\n doc.setFontSize(11);\r\n doc.text(120,doc.autoTable.previous.finalY + 10,'Account Balance: '+ this.debtoraccount.AccountBalance, {});\r\n return doc;\r\n }\r\n\r\n emailStatement()\r\n {\r\n let doc = this.GeneratePDF();\r\n var pdfBase64 = doc.output('datauristring');\r\n this.sendConfirmMail(doc);\r\n\r\n }\r\n\r\n cancel(){\r\n this.router.navigate(['carrier/accounts/']);\r\n }\r\n\r\n sendConfirmMail(pdfDoc){\r\n let payload:any = new Object;\r\n payload['id']= 0;\r\n payload['carrier_id']=this.carrierid;\r\n payload['from_person_id']= this.person_id;\r\n payload['app_id_permit_type_code']= null;\r\n payload['carrierName']= null;\r\n payload['person_from']= this.person_id;\r\n payload['application_id']=null;\r\n payload['permit_num']= null;\r\n payload['document_id1']=null; \r\n payload['document_id2']=null;\r\n payload['document_id3']=null;\r\n payload['corspdc_type_ind']=1;\r\n payload['send_receive_ind']=1;\r\n payload['comm_type_ind']=1;\r\n payload['subject']= 'ICBMS Statement';\r\n payload['body_text']='';\r\n payload['note']=null;\r\n payload['num_bookmarks']=1;\r\n payload['bookmark1_value']=null;\r\n payload['bookmark2_value']=null;\r\n payload['bookmark3_value']=null;\r\n payload['bookmark4_value']=null;\r\n payload['bookmark5_value']=null;\r\n payload['bookmark6_value']=null;\r\n payload['date_to_send']= new Date();\r\n payload['date_sent']= new Date();\r\n payload['date_created']=new Date();\r\n payload['date_modified']=new Date();\r\n payload['user_created']=new Date();\r\n payload['user_modified']=new Date();\r\n payload['send_rcvd']= null;\r\n payload['comm_type']= null;\r\n payload['hasDoc']= true;\r\n payload['attachment']= pdfDoc.output('datauristring');\r\n // payload['correspondence_person= ;\r\n payload['file_name']='ICBMS Statement';\r\n \r\n \r\n //console.log(payload);\r\n this.crspdService.sendMail(payload).subscribe(res=>{\r\n //console.log(res);\r\n this.toaster.success(`Your statement was successfully submitted successfully.`);\r\n }, error => {\r\n this.toaster.error(`An error occured`);\r\n })\r\n }\r\n\r\n download()\r\n {\r\n \r\n let doc = this.GeneratePDF()\r\n doc.save(this.accountnumber + '.pdf');\r\n }\r\n}\r\n","import {Component, OnInit, Input} from '@angular/core';\r\nimport {CarrierService} from 'app/services/carrier.service';\r\nimport {AuthWebService} from 'app/services/authweb.service';\r\nimport {Router, ActivatedRoute} from '@angular/router';\r\nimport {ToastrService} from 'ngx-toastr';\r\nimport {DatePipe} from '@angular/common';\r\nimport {environment} from 'environments/environment';\r\nimport {CorspdcService} from 'app/services/corspdc.service';\r\nimport {CarriertransactionService} from 'app/services/carriertransaction.service';\r\nimport {UtilityServiceService} from 'app/services/utility-service.service';\r\n\r\nvar jsPDF = require('jspdf');\r\nrequire('jspdf-autotable');\r\n\r\n\r\n@Component({\r\n selector: 'app-invoice',\r\n templateUrl: './invoice.component.html',\r\n styleUrls: ['./invoice.component.css']\r\n})\r\nexport class InvoiceComponent implements OnInit {\r\n\r\n invoicedetails: any = {};\r\n @Input() dataCntrl: any;\r\n isLoading: boolean = false;\r\n isEmpty: boolean = false;\r\n user: any = {};\r\n page = 1\r\n count: number = 0;\r\n\r\n debtoraccount: any = {};\r\n referencenumber: string;\r\n carrierid: string;\r\n person_id: string;\r\n accountnumber: string;\r\n message = 'Submitting your request, please wait...';\r\n\r\n constructor(private carrierService: CarrierService, private authWebService: AuthWebService, private router: Router, public transData: CarriertransactionService, public utility: UtilityServiceService,\r\n private toaster: ToastrService, public datepipe: DatePipe, private route: ActivatedRoute, private crspdService: CorspdcService) {\r\n this.user = (this.authWebService.userData) ? this.authWebService.userData.User : null;\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.route.paramMap.subscribe(params => {\r\n this.accountnumber = params.get('id');\r\n this.referencenumber = params.get('referencenumber');\r\n this.carrierid = params.get('carrierid');\r\n this.utility.setShowStatementFooter(true);\r\n })\r\n this.utility.setShowStatementFooter(true);\r\n this.loadinvoice(this.referencenumber);\r\n this.getDebtorAccount(this.accountnumber);\r\n this.getCarrier();\r\n\r\n }\r\n\r\n loadinvoice(invoicenumber: string) {\r\n\r\n this.isLoading = true;\r\n // //console.log('user.ID = ', this.user.Id);\r\n this.carrierService.getInvoice(invoicenumber).subscribe((result: any) => {\r\n this.invoicedetails = result;\r\n this.count = result.Count;\r\n this.isEmpty = (this.count == 0) ? true : false;\r\n console.dir(this.invoicedetails);\r\n this.isLoading = false;\r\n this.transData.invoicedetails = this.invoicedetails;\r\n this.transData.screen = 'invoice';\r\n this.transData.accountnumber = this.accountnumber;\r\n this.transData.carrierid = this.carrierid;\r\n this.transData.referencenumber = this.referencenumber;\r\n\r\n }, error => {\r\n this.isLoading = false;\r\n this.isEmpty = true;\r\n //console.log('Error occured: ' + error);\r\n\r\n })\r\n\r\n }\r\n\r\n getDebtorAccount(custcode: string) {\r\n this.carrierService.getDebtorAccount(custcode).subscribe((result: any) => {\r\n\r\n this.debtoraccount = result;\r\n this.count = result.Count;\r\n //console.log(this.count);\r\n console.dir(this.debtoraccount);\r\n this.transData.debtoraccount = this.debtoraccount;\r\n }, error => {\r\n //console.log('Error occured: ' + error);\r\n })\r\n\r\n }\r\n\r\n\r\n getCarrier() {\r\n this.carrierService.carrierPersonByuserId(Number(this.user.Id)).subscribe((result: any) => {\r\n this.person_id = result.person_id;\r\n this.transData.personid = this.person_id;\r\n //console.log(result);\r\n }, error => {\r\n //console.log(error);\r\n });\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
My Account Transactions : Invoice Details for {{invoicedetails.InvoiceNumber}}
\r\n
\r\n
\r\n {{user?.UserName}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Account Details \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Account ID:{{debtoraccount.customer_code}}
Account Name:{{debtoraccount.customer_name}}
Contact Person:{{debtoraccount.contact_person}}
Email:{{debtoraccount.email}}
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Physical Address\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Address Line: {{debtoraccount.physical_address_1}}
Town:{{debtoraccount.physical_address_town}}
Post Code:{{debtoraccount.physical_post_code}}
Country:{{debtoraccount.country}}
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n\r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Item CodeDescriptionPrice Per UnitQuantityTotal
{{invoiceitem.ItemCode}}{{invoiceitem.Description}}{{invoiceitem.unit_price ? (invoiceitem.unit_price | currencyFormat) : 'R 0.00' }}{{invoiceitem.quantity}}{{invoiceitem.line_total ? (invoiceitem.line_total| currencyFormat) : 'R 0.00' }}
\r\n No Transcations Available for this invoice.\r\n
\r\n
\r\n
\r\n
\r\n Invoice Total: {{invoicedetails.InclusiveTotal ? (invoicedetails.InclusiveTotal| currencyFormat) : 'R 0.00' }}\r\n
\r\n
\r\n
\r\n","import {DatePipe} from '@angular/common';\r\nimport {FormsModule} from '@angular/forms';\r\nimport {Component, OnInit, Output} from '@angular/core';\r\nimport {CarrierService} from 'app/services/carrier.service';\r\nimport {Router, ActivatedRoute} from '@angular/router';\r\nimport {ToastrService} from 'ngx-toastr';\r\nimport {AuthWebService} from 'app/services/authweb.service';\r\nimport {CorspdcService} from 'app/services/corspdc.service';\r\nimport {UtilityServiceService} from 'app/services/utility-service.service';\r\nimport {EventEmitter} from 'protractor';\r\nimport {CarriertransactionService} from 'app/services/carriertransaction.service';\r\n// import * as jsPDF from 'jspdf';\r\n// import 'jspdf-autotable';\r\n// import autoTable from 'jspdf-autotable';\r\n\r\nvar jsPDF = require('jspdf');\r\nrequire('jspdf-autotable');\r\n\r\n@Component({\r\n selector: 'app-statement',\r\n templateUrl: './statement.component.html',\r\n styleUrls: ['./statement.component.css']\r\n})\r\nexport class StatementComponent implements OnInit {\r\n\r\n isLoading: boolean = false;\r\n isEmpty: boolean = false;\r\n listTransactions: any = [];\r\n user: any = {};\r\n page = 1\r\n dateTo;\r\n dateFrom;\r\n count: number = 0;\r\n currentPage = 1;\r\n pageSize: number = 10;\r\n debtoraccount: any = {};\r\n accountnumber: string;\r\n carrierid: string;\r\n message = 'Submitting your request, please wait...';\r\n person_id: string;\r\n\r\n // @Output() transData = new EventEmitter();\r\n\r\n\r\n constructor(private carrierService: CarrierService, private authWebService: AuthWebService, private router: Router, public utility: UtilityServiceService, public transData: CarriertransactionService,\r\n private toaster: ToastrService, private datepipe: DatePipe, private route: ActivatedRoute, private crspdService: CorspdcService) {\r\n this.user = (this.authWebService.userData) ? this.authWebService.userData.User : null;\r\n \r\n }\r\n\r\n\r\n ngOnInit() {\r\n\r\n this.route.paramMap.subscribe(params => {\r\n this.accountnumber = params.get('id');\r\n this.utility.page = 1;\r\n this.utility.setShowStatementFooter(true);\r\n this.carrierid = params.get('carrierid');\r\n })\r\n // this.accountnumber = this.route.snapshot.paramMap.get(\"id\");\r\n //console.log('the account number is: ' + this.accountnumber);\r\n //console.log('the carrierid ' + this.carrierid);\r\n this.getDebtorAccount(this.accountnumber);\r\n this.getCarrier();\r\n this.onReset();\r\n\r\n }\r\n\r\n onChange = () => {\r\n\r\n // this.pageSize =\r\n this.loadAccounts(this.accountnumber, this.dateFrom, this.dateTo);\r\n }\r\n\r\n\r\n onReset = () => {\r\n\r\n let date = new Date();\r\n\r\n this.dateTo = this.datepipe.transform(date, 'yyyy-MM-dd');\r\n var pastthreemonths = new Date(date.setDate(date.getDate() - 90));\r\n this.dateFrom = this.datepipe.transform(pastthreemonths, 'yyyy-MM-dd');\r\n this.loadAccounts(this.accountnumber, this.dateFrom, this.dateTo);\r\n\r\n }\r\n\r\n loadAccounts = (custcode: string, datefrom: Date, dateto: Date) => {\r\n\r\n this.isLoading = true;\r\n //console.log('user.ID = ', this.user.Id);\r\n this.carrierService.getlisttranscation(custcode, datefrom, dateto).subscribe((result: any) => {\r\n this.listTransactions = result.Result;\r\n this.count = result.Count;\r\n this.isEmpty = (this.count == 0) ? true : false;\r\n //console.log(this.listTransactions);\r\n // this.transData.statementlist = this.listTransactions;\r\n this.transData.changeList(this.listTransactions);\r\n\r\n this.transData.accountnumber = this.accountnumber;\r\n this.transData.screen = 'statement';\r\n this.isLoading = false;\r\n\r\n }, error => {\r\n this.isLoading = false;\r\n this.isEmpty = true;\r\n //console.log('Error occured: ' + error);\r\n\r\n })\r\n\r\n\r\n }\r\n\r\n GetInvoice(invnumber) {\r\n // this.router.navigate(['/carrier/invoice/', this.accountnumber, referencenumber]);\r\n this.router.navigate(['/carrier/invoice/' + this.accountnumber + '/' + invnumber + '/' + this.carrierid]);\r\n }\r\n\r\n getDebtorAccount(custcode: string) {\r\n\r\n this.carrierService.getDebtorAccount(custcode).subscribe((result: any) => {\r\n\r\n this.debtoraccount = result;\r\n this.count = result.Count;\r\n console.dir(this.debtoraccount);\r\n this.transData.debtoraccount = this.debtoraccount;\r\n\r\n }, error => {\r\n //console.log('Error occured: ' + error);\r\n })\r\n\r\n }\r\n\r\n\r\n onSearch() {\r\n\r\n //console.log(this.dateTo);\r\n //console.log(this.dateFrom);\r\n this.loadAccounts(this.accountnumber, this.dateFrom, this.dateTo);\r\n\r\n }\r\n\r\n getCarrier() {\r\n this.carrierService.carrierPersonByuserId(Number(this.user.Id)).subscribe((result: any) => {\r\n this.person_id = result.person_id;\r\n this.transData.personid = this.person_id;\r\n //console.log(result);\r\n }, error => {\r\n //console.log(error);\r\n });\r\n }\r\n\r\n\r\n}\r\n","
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n {{user?.UserName}}\r\n
\r\n
\r\n
\r\n\r\n

\r\n ACCOUNT STATEMENT\r\n

\r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Account Details\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
Account Id:{{debtoraccount.customer_code}}
Account Name:{{debtoraccount.customer_name}}
Contact Person:{{debtoraccount.contact_person}}
Email Address:{{debtoraccount.email}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n \r\n Filters \r\n
\r\n
\r\n
\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
Date From :
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
Date To :
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n Account Balance: \r\n {{debtoraccount.AccountBalance * -1 ? (debtoraccount.AccountBalance * -1 | currencyFormat) : 'R 0.00' }}\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 0\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
DateReference NumberDescriptionTranscation TypeTranscation Total
{{transc.transaction_date | date:'dd/MM/yyyy'}}{{transc.reference_number}}{{transc.reference_number}}{{transc.transaction_description}}{{transc.transaction_type}}{{transc.transaction_total * -1 ? (transc.transaction_total *-1 | currencyFormat) : 'R 0.00' }}
\r\n \r\n
\r\n No Transactions Available for this account.\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { UtilityServiceService } from 'app/services/utility-service.service';\r\nimport { CarrierService } from 'app/services/carrier.service';\r\nimport { AuthWebService } from 'app/services/authweb.service';\r\nimport { CarrierworkflowService } from 'app/services/carrierworkflow.service';\r\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\r\nimport { DialogService } from 'ng2-bootstrap-modal';\r\nimport { AlertComponent } from 'app/popup/alert.component';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { DocumentsServiceService } from 'app/services/documents-service.service';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { CarrierAccountService } from 'app/services/carrier-account.service';\r\n\r\n\r\n@Component({\r\n selector: 'submission',\r\n templateUrl: './submission.component.html',\r\n styleUrls: ['./submission.component.css']\r\n})\r\nexport class SubmissionComponent implements OnInit {\r\n @Input('ctrlData') ctrlData: any;\r\n public isLoading = false;\r\n caConfirmObj: any = {};\r\n carrierAccountObj: any = {};\r\n userInfo: any;\r\n decl_date = new Date();\r\n declaration = \"\";\r\n form: any;\r\n status_id: number;\r\n email_body = \"\";\r\n message = \"Submitting your request, please wait...\";\r\n message1 = \"Unable to submit\";\r\n feedback : any ={};\r\n isLoadingImg: boolean;\r\n doc: any;\r\n isPDF: number;\r\n debtoraccount: any = {}; \r\n showDocs: boolean = false;\r\n accountBalance:number;\r\n subject = 'Acknowledgement of carrier account submission';\r\n turnOverBrand:any={\r\n 1:\"Less than R1 Mil\",\r\n 2:\"Between R1 Mil and R5 Mil\",\r\n 3:\"Above R5 Mil\"\r\n }\r\n constructor(private carrierAccountService: CarrierAccountService, private documentService: DocumentsServiceService,private router: Router,private carrierService: CarrierService, public utility: UtilityServiceService,\r\n private authWebService: AuthWebService, private activateRoute:ActivatedRoute,\r\n private wService: CarrierworkflowService, private msg: ToastrService,private sanitizer: DomSanitizer) { }\r\n\r\n ngOnInit() {\r\n ////console.clear();\r\n console.log(\"User Data\", this.accountBalance);\r\n if(this.router.url.indexOf('carrier')>0){\r\n let id:any=this.activateRoute.params['_value'].id;\r\n this.utility.carrierId=id;\r\n }\r\n //console.log(\"Values:\")\r\n //console.log(this.ctrlData);\r\n //this.utility.carrierObject=this.ctrlData;\r\n this.getCarrierInfo(this.utility.carrierId);\r\n this.caConfirmObj.Demographic=null;\r\n this.retrieveSubmitStatus();\r\n this.getConfirmDetails(); \r\n this.setConfigdata();\r\n this.createForm();\r\n this.setDeclareReadOnly();\r\n this.getDebtorAccount(this.activateRoute.params['_value'].id);\r\n \r\n \r\n console.log('this.caConfirmObj.carrier_id : ' +JSON.stringify(this.caConfirmObj.carrier_code));\r\n \r\n console.log('this.caConfirmObj : ' +JSON.stringify(this.caConfirmObj));\r\n }\r\n\r\n getUpdateBalance() { \r\n if(this.caConfirmObj.carrier_status === 'Approved')\r\n { \r\n this.carrierService.getUpdateBalance(this.carrierAccountObj.carrier_account_id).subscribe(res => {\r\n\r\n });\r\n }\r\n }\r\n\r\n getDebtorAccount(id:number)\r\n { \r\n this.carrierAccountService.getCarrierAccountByID(id).subscribe(result => {\r\n this.carrierAccountObj = result;\r\n this.getUpdateBalance();\r\n }, error => {\r\n console.log('Error occured: ' + error);\r\n }) \r\n }\r\n\r\n getConfirmDetails = () => {\r\n this.isLoading = true;\r\n this.message = \"Retrieving carrier account information, please wait...\";\r\n let carrierId:any=this.utility.carrierId;\r\n if(this.utility.ctrlPages[this.utility.acc.First].carrierId==undefined){\r\n carrierId=this.utility.carrierId;\r\n }else{\r\n if(this.utility.carrierId==undefined){\r\n carrierId=this.utility.ctrlPages[this.utility.acc.First].carrierId;\r\n }\r\n }\r\n this.carrierService.getAccountConfirmationDetailsById(carrierId).subscribe(result => {\r\n this.caConfirmObj = result;\r\n if(parseInt(this.caConfirmObj.account_balance)!=0){\r\n this.caConfirmObj.account_balance=-(parseInt(this.caConfirmObj.account_balance));\r\n this.accountBalance = this.caConfirmObj.account_balance; \r\n \r\n }\r\n\r\n console.log('this.caConfirmObj : '+JSON.stringify(this.caConfirmObj));\r\n this.isLoading = false;\r\n this.showDocs=true;\r\n }, error => {\r\n this.isLoading = false;\r\n //console.log(error);\r\n });\r\n }\r\n back(){ \r\n this.utility.activeTab = 2; \r\n }\r\n setConfigdata = () => {\r\n this.userInfo = this.authWebService.userInfo();\r\n let declaration: any;\r\n if (this.authWebService.userData) {\r\n declaration = this.authWebService.userData.Configurations.find(\r\n config => config.Code == \"HTMLDec1\");\r\n }\r\n this.declaration = declaration.Value;\r\n }\r\n\r\n setDeclareReadOnly() {\r\n if (!this.utility.isBtnVisible) {\r\n this.form.get('uAgreed').disable();\r\n this.form.get('uAgreed').value = true;\r\n }\r\n }\r\n createForm=()=> {\r\n this.form = new FormGroup({\r\n carrier_id: new FormControl(this.utility.ctrlPages[this.utility.acc.First].carrierId)\r\n , uAgreed: new FormControl(null, Validators.compose([this.validateSubmit]))\r\n , status_id: new FormControl(this.status_id)\r\n , submittedOn: new FormControl(new Date())\r\n , email_body: new FormControl(this.email_body)\r\n , username: new FormControl(this.userInfo.username)\r\n , emailAddress: new FormControl(this.userInfo.emailAddress)\r\n , subject: new FormControl(this.subject)\r\n });\r\n this.form.patchValue(this.utility.defaults);\r\n }\r\n\r\n onSubmit = (obj: any) => {\r\n\r\n if(!this.form.valid){\r\n return this.msg.warning('Please click the declaration box','Declaration')\r\n }\r\n \r\n //if(this.accountBalance==null || this.accountBalance==0) {\r\n // return this.showError(\"Unable to submit the application, You have insufficient funds\");\r\n //}\r\n this.isLoading = true;\r\n this.message = 'Saving...'\r\n this.carrierService.processSubmission(obj).subscribe(result => {\r\n this.isLoading = false;\r\n if (result == true) {\r\n\r\n this.showSuccess(`Carrier Account with registration number ${ this.caConfirmObj.registration_number } submitted successfully.`);\r\n //this.dialogService.addDialog(AlertComponent, { title: `Carrier Account Submission`, message: `Carrier Account with registration number ${this.caConfirmObj.registration_number} submitted successfully.`, bold: `${this.caConfirmObj.registration_number}` });\r\n this.startWorkflow();\r\n this.utility.activeTab = 1;\r\n this.utility.landingPage();\r\n } else {\r\n this.showError(`Submission for ${this.caConfirmObj.registration_number} failed. Please contact the system administrator if the problem persists.`);\r\n }\r\n }, error => {\r\n this.isLoading = false;\r\n this.showError(`Submission for ${this.caConfirmObj.registration_number} failed. Please contact the system administrator if the problem persists.`);\r\n //this.dialogService.addDialog(AlertComponent, { title: `Carrier Account Submission`, message: `Submission for ${this.caConfirmObj.registration_number} failed.Please contact the system administrator if the problem persists.`, bold: `${obj.registered_name}` });\r\n });\r\n \r\n\r\n }\r\n\r\n retrieveSubmitStatus = () => {\r\n if (this.authWebService.userData) {\r\n this.status_id =+ this.authWebService.userData.Configurations.find(config => config.Code == \"AccountStatus2\").Value;\r\n const emailConfig:any = this.authWebService.userData.Configurations.find(config => config.Code == \"SubmitEmail1\");\r\n this.email_body = emailConfig.Value;\r\n (emailConfig.Description)\r\n this.subject = emailConfig.Description;\r\n }\r\n }\r\n\r\n validateSubmit(control: FormControl) {\r\n let checked = control.value;\r\n if (!checked) {\r\n return {\r\n checked: {\r\n saIdnumer: checked\r\n }\r\n }\r\n }\r\n return null;\r\n }\r\n startWorkflow()\r\n {\r\n\r\n\r\n this.wService.startCreateCarrierWorkflow(this.utility.ctrlPages[this.utility.acc.First].carrierId).subscribe(result => {\r\n this.feedback = result;\r\n }, error => {\r\n //console.log(error);\r\n });\r\n }\r\n\r\n showSuccess(msg) {\r\n this.msg.success(msg, 'Carrier Account Submission');\r\n }\r\n\r\n showError = (msg) => {\r\n this.msg.error(msg, 'Carrier Account Submission');\r\n }\r\n viewDoc(fileName){\r\n //console.log(fileName)\r\n if(fileName!=undefined){\r\n this.isLoadingImg = true;\r\n this.doc = null;\r\n this.isPDF = 0;\r\n let id = fileName.substring(fileName.indexOf('#')+1);\r\n //console.log(id)\r\n if(fileName.includes('.pdf')){\r\n this.documentService.downloadpdf(id).subscribe(x => {\r\n let objectURL = URL.createObjectURL(x);\r\n this.doc = objectURL;\r\n this.isPDF = 1;\r\n this.isLoadingImg = false;\r\n })\r\n return\r\n }\r\n this.documentService.download(id).subscribe(x => {\r\n let objectURL = URL.createObjectURL(x);\r\n this.isPDF = 2;\r\n this.doc = this.sanitizer.bypassSecurityTrustUrl(objectURL);\r\n this.isLoadingImg = false;\r\n })\r\n }\r\n}\r\ngetCarrierInfo(carrierId){\r\n this.carrierService.carrierInfo(carrierId).subscribe(res=>{\r\n this.ctrlData.data=res;\r\n this.ctrlData.carrierId=carrierId;\r\n this.utility.carrierObject=this.ctrlData; \r\n console.log('this.ctrlData.data : '+JSON.stringify(this.ctrlData.data));\r\n });\r\n}\r\n\r\ncheckBalanceBeforeSubmit()\r\n{\r\n\r\n if(this.accountBalance == null)\r\n return true;\r\nif(this.accountBalance < 1)\r\n return true;\r\nelse\r\n return false;\r\n\r\n\r\n}\r\nisAccountBalanceNullOrZero()\r\n{\r\n if(this.accountBalance == null)\r\n return true;\r\n if(this.accountBalance < 1)\r\n return true;\r\n else\r\n return false;\r\n}\r\n\r\n}\r\n","
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n Account Number:{{caConfirmObj.carrier_code}}\r\n \r\n Account Id: {{carrierAccountObj.carrier_account_id}}\r\n \r\n Account Status: {{caConfirmObj.carrier_status}}\r\n
\r\n Registered By:{{caConfirmObj.lead_user?.first_name}} {{caConfirmObj.lead_user?.last_name}}\r\n \r\n Account Balance: {{caConfirmObj.account_balance ? (caConfirmObj.account_balance | currencyFormat) : 'R0.00'}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n
\r\n Customer Type:{{caConfirmObj.carrier_type}}\r\n \r\n Country:{{caConfirmObj.country}}\r\n
\r\n Company Reg Name:{{caConfirmObj.registered_name}}\r\n \r\n Name:{{caConfirmObj.owner?.first_name}} {{caConfirmObj.owner?.last_name}}\r\n \r\n Trading Name: {{caConfirmObj.trading_name}}\r\n \r\n ID Number:{{caConfirmObj.registration_number}}\r\n \r\n Passport / ID Number:{{caConfirmObj.registration_number}}\r\n
\r\n Closed Corporation Reg No:{{caConfirmObj.registration_number}}\r\n \r\n Trust Reg No:{{caConfirmObj.registration_number}}\r\n \r\n ID Number of Main Partner:{{caConfirmObj.registration_number}}\r\n \r\n Company Reg No:{{caConfirmObj.registration_number}}\r\n
\r\n Passport Country-of-Issue:{{caConfirmObj.country}}\r\n \r\n Passport Expiry Date:{{caConfirmObj.owner?.passport_expiry_date | date:'dd/MM/yyyy'}}\r\n
\r\n Traffic Register Number (TRN):{{caConfirmObj.owner?.traffic_register_number}}\r\n \r\n Work Permit Reference Number:{{caConfirmObj.owner?.work_permit_number}}\r\n
\r\n TRN Date-of-Issue:{{caConfirmObj.owner?.trn_issue_date | date:'dd/MM/yyyy'}}\r\n \r\n Work Permit Expiry Date:{{caConfirmObj.owner?.work_permit_expiry_date | date:'dd/MM/yyyy'}}\r\n
\r\n Type of Carrier:\r\n \r\n {{list.value}}\r\n \r\n \r\n \r\n Email Address:{{caConfirmObj.email}}\r\n
\r\n Mobile Number:{{caConfirmObj.dial_code_mobile}} {{caConfirmObj.mobile}}\r\n \r\n Office Number:{{caConfirmObj.dial_code_office_phone}} {{caConfirmObj.office_phone}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n\r\n \r\n
Contact PersonPhysical AddressPostal Address
\r\n Name:{{caConfirmObj.contact?.first_name}} {{caConfirmObj.contact?.last_name}}\r\n \r\n Address:{{caConfirmObj.physical_address?.line_address_1}}\r\n \r\n Address:{{caConfirmObj.postal_address?.line_address_1}}\r\n
\r\n Email Address:{{caConfirmObj.contact?.email}}\r\n \r\n \r\n Town:{{caConfirmObj.physical_address?.line_address_town}}\r\n \r\n \r\n Town:{{caConfirmObj.postal_address?.line_address_town}}\r\n
\r\n Mobile:{{caConfirmObj.contact?.dial_code_mobile}} {{caConfirmObj.contact?.mobile}}\r\n \r\n \r\n Postal Code:{{caConfirmObj.physical_address?.line_post_code}}\r\n \r\n \r\n Postal Code:{{caConfirmObj.postal_address?.line_post_code}}\r\n
\r\n Communication Preference:{{caConfirmObj.contact?.comms_preference}}\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n
\r\n\r\n \r\n
\r\n Tax Number:{{caConfirmObj.tax_number}}\r\n
\r\n Transport Association:{{caConfirmObj.transport_assoc}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n
\r\n\r\n \r\n
\r\n BBBEE Status:{{caConfirmObj.bbbee_status}}\r\n \r\n BBBEE Certificate Expiry Date:{{caConfirmObj.Demographic.BBBEE_cert_expiry_date | date : 'dd/MM/yyyy'}}\r\n
\r\n % Black Ownership:{{caConfirmObj.Demographic.black_ownership_percentage}}\r\n \r\n % Female Ownership:{{caConfirmObj.Demographic.female_ownership_percentage}}\r\n
\r\n % Disability Ownership:{{caConfirmObj.Demographic.disability_ownership_percentage}}\r\n \r\n % Youth Ownership:{{caConfirmObj.Demographic.youth_ownership_percentage}}\r\n
\r\n Turnover Brand:{{turnOverBrand[caConfirmObj.Demographic['turnover_band']]}}\r\n \r\n Number of Employees:{{caConfirmObj.Demographic.number_of_employees}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Document TypeFile NameUploaded OnView File
{{doc.docType}}{{doc.desc}}{{doc.uploadedOn|date : 'dd/MM/yyyy'}} \r\n \r\n
(No documents)
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Declaration by\r\n {{userInfo.username}} on {{decl_date|date : 'yyyy/MM/dd'}}
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
Document Uploaded
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n","export class Page {\r\n constructor(public id: number, public carrierId: any, public next: number, public previous: number,\r\n public visibility: boolean, public isEdit: boolean) { }\r\n\r\n}\r\n","import { Component, OnInit, ChangeDetectorRef, AfterViewInit, Injectable } from '@angular/core';\r\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { DialogService } from 'ng2-bootstrap-modal';\r\nimport { AuthWebService } from '../services/authweb.service'\r\nimport { UtilityServiceService } from '../services/utility-service.service';\r\nimport { environment } from 'environments/environment';\r\nimport { CarrierService } from \"../services/carrier.service\";\r\nimport { Account } from 'app/constants/account.enum';\r\nimport { AlertComponent } from 'app/popup/alert.component';\r\nimport { CountryService } from 'app/services/country.service';\r\nimport { CarrierTypeService } from 'app/services/carrier-type.service';\r\nimport { TransportAssocService } from 'app/services/transport-assoc.service';\r\nimport { isNumeric } from 'rxjs/util/isNumeric';\r\nimport { concat } from 'rxjs';\r\nimport { SearchCountryField, TooltipLabel, CountryISO } from 'app/shared/projects/ngx-intl-tel-input/src/public_api';\r\nimport { GooglePlacesSearchService } from 'app/services/google-places-search.service';\r\nimport { PopupService } from 'app/services/shared/popup.service';\r\nimport {NgbCalendar, NgbDateAdapter, NgbDateParserFormatter, NgbDateStruct, NgbActiveModal, NgbModal, NgbModalRef} from '@ng-bootstrap/ng-bootstrap';\r\nimport { DatePipe } from '@angular/common';\r\nimport * as moment from 'moment';\r\nimport { ConfirmDialogService } from 'app/services/shared/confirm-dialog/confirm-dialog.service';\r\n\r\n/**\r\n * This Service handles how the date is represented in scripts i.e. ngModel.\r\n */\r\n@Injectable()\r\nexport class CustomAdapter extends NgbDateAdapter {\r\n\r\n readonly DELIMITER = '/';\r\n\r\n fromModel(value: string | null): NgbDateStruct | null {\r\n if (value) {\r\n let date = value.split(this.DELIMITER);\r\n return {\r\n day : parseInt(date[0], 10),\r\n month : parseInt(date[1], 10),\r\n year : parseInt(date[2], 10)\r\n };\r\n }\r\n return null;\r\n }\r\n\r\n toModel(date: NgbDateStruct | null): string | null {\r\n return date ? date.day + this.DELIMITER + date.month + this.DELIMITER + date.year : null;\r\n }\r\n}\r\n\r\n/**\r\n * This Service handles how the date is rendered and parsed from keyboard i.e. in the bound input field.\r\n */\r\n@Injectable()\r\nexport class CustomDateParserFormatter extends NgbDateParserFormatter {\r\n\r\n readonly DT_FORMAT = 'DD/MM/YYYY';\r\n\r\n parse(value: string): NgbDateStruct {\r\n if (value) {\r\n value = value.trim();\r\n let mdt = moment(value, this.DT_FORMAT)\r\n }\r\n return null;\r\n }\r\n format(date: NgbDateStruct): string {\r\n if (!date) return '';\r\n let mdt = moment([date.year, date.month - 1, date.day]);\r\n if (!mdt.isValid()) return '';\r\n return mdt.format(this.DT_FORMAT);\r\n }\r\n}\r\n\r\ndeclare var $;\r\n\r\n@Component({\r\n selector: 'companydetails',\r\n templateUrl: './companydetails.component.html',\r\n styleUrls: ['./companydetails.component.css'],\r\n providers: [\r\n {provide: NgbDateAdapter, useClass: CustomAdapter},\r\n {provide: NgbDateParserFormatter, useClass: CustomDateParserFormatter},\r\n NgbActiveModal,\r\n ]\r\n})\r\n\r\nexport class CompanydetailsComponent implements OnInit {\r\n aCarrier: any = {};\r\n entityType: any;\r\n form: FormGroup;\r\n isDup = false;\r\n isEdit: boolean;\r\n isBasicContactInfo: boolean = true;\r\n public isLoading = false;\r\n message = \"Loading, please wait...\";\r\n lblHeading: string = \"Company Details\";\r\n acc = Account;\r\n carrierType = 0;\r\n carrierStatus = 0;\r\n idType: any;\r\n whichIdType = 0;\r\n whichCarrierType = 0\r\n ddlCountries = [];\r\n ddlCarrierTypes = [];\r\n listAssoc: any = [];\r\n user: any = {};\r\n status_id: any;\r\n hasPerson: boolean = false;\r\n nextCtrl: boolean = false;\r\n citizen: any = { dob: new Date(), gender: \"\" };\r\n isForeignId: boolean = false;\r\n importCarrier: string = 'false';\r\n // idTypes = [{ key: 0, value: 'Unknown required Identification' }, { key: 1, value: 'Local ID Number' }, { key: 2, value: 'Foreign Passport/ID Number' }, { key: 3, value: 'Company Registration Number' }, { key: 4, value: 'NPO Registration Number' }, { key: 5, value: 'Trust Number' }];\r\n idTypes = [{ key: 0, value: 'Unknown' },\r\n { key: 1, value: 'ID Number' },\r\n { key: 2, value: 'Foreign Passport / ID Number' },\r\n { key: 3, value: 'Company Registration Number' },\r\n { key: 4, value: 'NPO Number' },\r\n { key: 5, value: '(key 5)' },\r\n { key: 6, value: 'Closed Corporation Reg No'},\r\n { key: 7, value: 'Trust Registration No'},\r\n { key: 8, value: 'ID Number of Main Partner'},\r\n ];\r\n trspassoc = \"Select Transport Association (Taxi/Bus)\";\r\n originalAccount = { account: {} };\r\n displayDemographics: boolean = false;\r\n doSubmit : boolean = false;\r\n bbbees = [{ text: 'Level 1' },\r\n { text: 'Level 2' },\r\n { text: 'Level 3' },\r\n { text: 'Level 4' },\r\n { text: 'Level 5' },\r\n { text: 'Level 6' },\r\n { text: 'Level 7' },\r\n { text: 'Level 8' },\r\n { text: 'NonCompliant' }\r\n ];\r\n turnovers = [{ text: 'Less than R 1 Millon' },\r\n { text: 'Between R 1 Millon and R 5 Million' },\r\n { text: 'Above R 5 Million' },\r\n ]\r\n numberisvalid: boolean;\r\n is_local_carrier: boolean = false;\r\n id_type_required_ind = 0;\r\n is_individual: boolean = false;\r\n id_label = 'Identification#';\r\n\r\n //SADC Countries\r\n separateDialCode = true;\r\n SearchCountryField = SearchCountryField;\r\n TooltipLabel = TooltipLabel;\r\n CountryISO = CountryISO;\r\n defaultCarrierOfficePhone: any = CountryISO.SouthAfrica;\r\n defaultCarrierCellphone: any = CountryISO.SouthAfrica;\r\n defaultContactMobile: any = CountryISO.SouthAfrica;\r\n trn_issue_date: any;\r\n work_permit_expiry_date: any;\r\n passport_expiry_date: any;\r\n bbbee_certficate_date: any;\r\n\r\n //places from google\r\n placesPredictions: any = [];\r\n isPlacesPredictionVible = false;\r\n placesPostalPredictions: any = [];\r\n isPostalPlacesPredictionVible = false;\r\n\r\n errorField: any = {\r\n carrier_id: ''\r\n , carrier_type: 'Customer Type is required'\r\n , carrier_type_id: 'Customer Type is required'\r\n , country_id: 'Country is required'\r\n , registered_name: 'Registered Name is required'\r\n , trading_name: 'Trading Name is required'\r\n , sameAsloggeIn: ''\r\n , first_name: 'First Name is required'\r\n , last_name: 'Last Name is required'\r\n , freight_passenger_ind: 'Type of Carrier is required'\r\n // , registration_number: (this.id_type_required_ind==6) ? 'Closed Corporation Registration Number is required' : (this.id_type_required_ind==7) ? 'Trust Number is required' : (this.id_type_required_ind==8) ? 'Partner ID is required' : 'Company Registration Number is required'\r\n , registration_number: 'Number is required'\r\n , id_number: \"Number is required\"\r\n // , business_type_id: 'Bussiness Type Is required'\r\n , traffic_register_number: 'Traffic Register Number (TRN) is required'\r\n , trn_issue_date: \"TRN's date-of-issue is required\"\r\n , work_permit_number: 'Work Permit Reference Number is required'\r\n , work_permit_expiry_date: 'Work Permit Expiry Date is required'\r\n , id_country_id: 'Country-of-issue is required'\r\n , passport_expiry_date: 'Passport Expiry Date is required'\r\n , Contact_CompanyEmail: 'Office Email is required'\r\n , officePhone: 'Office Phone is required'\r\n , cellphone: 'Office Cellphone is required'\r\n , id_type_ind: ''\r\n , role_served_ind: ''\r\n // , is_active_person: new FormControl(true)\r\n // , date_of_birth: new FormControl()\r\n // , date_created: new FormControl(new Date())\r\n // , date_modified: new FormControl(new Date())\r\n // , user_created: new FormControl(this.user.LastName)\r\n // , user_modified: new FormControl(this.user.LastName)\r\n // , user_id: new FormControl(this.user.Id)\r\n // , status_id: new FormControl(this.status_id)\r\n // , loggedInUser: new FormControl({ first_name: this.user.FirstName, last_name: this.user.LastName, email: this.user.EmailAddress, mobile: this.user.MobileNumber })\r\n // , copyPhysical_address: 'Physical Address is required'\r\n\r\n // Contact details\r\n // , PersonId: new FormControl('')\r\n // , Contact_CarrierID: new FormControl('')\r\n // , Contact_is_active: new FormControl()\r\n , Contact_FirstName: \"Contact's First Name is required\"\r\n , Contact_LastName: \"Contact's Last Name is required\"\r\n , Contact_EmailAddress: \"Contact's Email Address is required\"\r\n , Contact_MobileNumber: \"Contact's Mobile Number is required\"\r\n , Contact_CommunicationPreference: \"Contact's Communication Preference is required\"\r\n , Contact_PhysicalAddress1: 'Physical Address is required'\r\n // , Contact_PhysicalAddress2: 'Physical Address is required'\r\n // , Contact_PhysicalAddress3: 'Physical Address is required'\r\n , Contact_Town: \"Physical Address' Town is required\"\r\n , Contact_PostalCode: \"Physical Address' Postal Code is required\"\r\n , Contact_CountryID: \"Physical Address' Country is required\"\r\n , contactSameAsloggeIn: ''\r\n // , Contact_FaxNumber: 'Fax Number is required'\r\n // , Contact_CompanyEmail: new FormControl('', Validators.compose([Validators.pattern(/^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/)]))\r\n , Contact_PostalAddress1: 'Postal Address is required'\r\n // , Contact_PostalAddress2: new FormControl('')\r\n // , Contact_PostalAddress3: new FormControl('')\r\n , Contact_pTown: \"Postal Address' Town is required\"\r\n , Contact_pPostalCode: \"Postal Address' Postal Code is required\"\r\n , Contact_pCountry: \"Postal Address' Country is required\"\r\n // , Contact_role_served_ind: ''\r\n // , Contact_date_role_from: ''\r\n // , Contact_date_role_to:''\r\n // , Contact_id_type_ind:''\r\n\r\n // Compliance and Legal\r\n , tax_number: 'Tax Number is required'\r\n , assoc_id: 'Transport Association is required'\r\n\r\n // Demographics\r\n // ,black_ownership: new FormControl('', Validators.compose([Validators.required, Validators.min(0), Validators.max(100)]))\r\n , bbbee_status: 'BBBEE Status is required'\r\n , bbbee_certficate_date: 'BBBEE Certificate Expiry Date is required'\r\n , black_ownership: '% Black Ownership is required'\r\n , female_ownership: '% Female Ownership is required'\r\n , disability_ownership: '% Disability Ownership is required'\r\n , youth_owner: '% Youth Ownership is required'\r\n , turnover_band: 'TurnOver band is required'\r\n , num_employees: 'Number of Employees is required'\r\n };\r\n\r\n isLocal = false;\r\n currentDate: any = { day: new Date().getDate(), month: (new Date().getMonth() + 1), year: new Date().getFullYear() }\r\n personId: any;\r\n\r\n constructor(private carrierService: CarrierService,\r\n private router: Router, private changeDetect: ChangeDetectorRef,\r\n private route: ActivatedRoute,\r\n private countryService: CountryService, private authWebService: AuthWebService,\r\n private carrierTypeService: CarrierTypeService,\r\n public utility: UtilityServiceService,\r\n private transportAssocService: TransportAssocService, private msg: ToastrService,\r\n private googleSearch: GooglePlacesSearchService,\r\n private ngbCalendar: NgbCalendar, private dateAdapter: NgbDateAdapter,\r\n private datePipe:DatePipe,\r\n private showModal: PopupService,private confirmDialogService: ConfirmDialogService) { }\r\n\r\n ngOnInit() {\r\n this.isEdit = this.utility.ctrlPages[Account.First].isEdit;\r\n this.user = (this.authWebService.userData) ? this.authWebService.userData.User : {};\r\n console.log(this.user);\r\n this.importCarrier = localStorage.getItem('importCarrier');\r\n // this.retrieveStatusId();\r\n if(!this.isEdit){this.retrieveStatusId()};\r\n this.getPersonId();\r\n this.listCarrierTypes();\r\n this.listCountries();\r\n this.lblHeading = (!this.utility.ctrlPages[Account.First].isEdit) ? \"New Carrier Details\" : \"Edit Carrier Details\";\r\n this.initForm();\r\n this.listDDL();\r\n this.onFrmChange();\r\n\r\n }\r\n\r\n getPersonId() {\r\n this.carrierService.carrierPersonByuserId(this.user.Id).subscribe((result:any) => {\r\n this.personId = result.person_id;\r\n });\r\n }\r\n\r\n // initialize the form's elements + add validations\r\n initForm() {\r\n\r\n this.form = new FormGroup({\r\n\r\n // Carrier details\r\n carrier_id: new FormControl(-1)\r\n , carrier_type_id: new FormControl(this.aCarrier.carrier_type_id, Validators.required)\r\n , country_id: new FormControl('', Validators.required)\r\n , sameAsloggeIn: new FormControl(false)\r\n , first_name: new FormControl(this.aCarrier.first_name, Validators.maxLength(50))\r\n , last_name: new FormControl(this.aCarrier.last_name, Validators.maxLength(50))\r\n , registered_name: new FormControl(this.aCarrier.registered_name, Validators.compose([Validators.maxLength(100)]))\r\n , trading_name: new FormControl(this.aCarrier.trading_name, Validators.maxLength(100))\r\n , registration_number: new FormControl(this.aCarrier.registration_number, Validators.maxLength(20))\r\n , freight_passenger_ind: new FormControl(this.aCarrier.freight_passenger_ind, Validators.required)\r\n , id_number: new FormControl('')\r\n // , business_type_id: new FormControl(this.aCarrier.business_type_ind, Validators.required)\r\n , traffic_register_number: new FormControl('')\r\n , trn_issue_date: new FormControl('')\r\n , work_permit_number: new FormControl('')\r\n , work_permit_expiry_date: new FormControl('')\r\n , id_country_id: new FormControl('')\r\n , passport_expiry_date: new FormControl('')\r\n , Contact_CompanyEmail: new FormControl('', Validators.compose([Validators.pattern(/^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/)]))\r\n , officePhone: new FormControl('')\r\n , cellphone: new FormControl('')\r\n , id_type_ind: new FormControl(0)\r\n , role_served_ind: new FormControl()\r\n , is_active_person: new FormControl(true)\r\n , date_of_birth: new FormControl()\r\n , date_created: new FormControl(new Date())\r\n , date_modified: new FormControl(new Date())\r\n , user_created: new FormControl(this.user.LastName)\r\n , user_modified: new FormControl(this.user.LastName)\r\n , user_id: new FormControl(this.user.Id)\r\n , status_id: new FormControl(this.status_id)\r\n , loggedInUser: new FormControl({ first_name: this.user.FirstName, last_name: this.user.LastName, email: this.user.EmailAddress, mobile: this.user.MobileNumber })\r\n\r\n // Contact details\r\n , PersonId: new FormControl('')\r\n , Contact_CarrierID: new FormControl('')\r\n , Contact_is_active: new FormControl()\r\n , contactSameAsloggeIn: new FormControl(false)\r\n // , Contact_FirstName: new FormControl('', Validators.maxLength(20))\r\n // , Contact_LastName: new FormControl('', Validators.maxLength(20))\r\n // , Contact_EmailAddress: new FormControl('', [Validators.pattern('^[_A-Za-z0-9-\\\\+]+(\\\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\\\\.[A-Za-z0-9]+)*(\\\\.[A-Za-z]{2,})$')])\r\n // , Contact_MobileNumber: new FormControl('')\r\n , Contact_FirstName: new FormControl('', [Validators.required , Validators.maxLength(20)])\r\n , Contact_LastName: new FormControl('', [Validators.required , Validators.maxLength(20)])\r\n , Contact_EmailAddress: new FormControl('', [Validators.required , Validators.pattern('^[_A-Za-z0-9-\\\\+]+(\\\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\\\\.[A-Za-z0-9]+)*(\\\\.[A-Za-z]{2,})$')])\r\n , Contact_MobileNumber: new FormControl('',Validators.required)\r\n , Contact_CommunicationPreference: new FormControl('',Validators.required)\r\n , Contact_PhysicalAddress1: new FormControl('', [Validators.required, Validators.maxLength(40)])\r\n , Contact_PhysicalAddress2: new FormControl('', Validators.maxLength(40))\r\n , Contact_PhysicalAddress3: new FormControl('', Validators.maxLength(40))\r\n , Contact_Town: new FormControl('', [Validators.required, Validators.maxLength(40)])\r\n , Contact_PostalCode: new FormControl('', [Validators.required, Validators.maxLength(25)])\r\n , Contact_CountryID: new FormControl('', Validators.required)\r\n , copyPhysical_address: new FormControl()\r\n , Contact_PostalAddress1: new FormControl('', [Validators.required, Validators.maxLength(40)])\r\n , Contact_PostalAddress2: new FormControl('', Validators.maxLength(40))\r\n , Contact_PostalAddress3: new FormControl('', Validators.maxLength(40))\r\n , Contact_pTown: new FormControl('', [Validators.required, Validators.maxLength(40)])\r\n , Contact_pPostalCode: new FormControl('', [Validators.required, Validators.maxLength(25)])\r\n , Contact_pCountry: new FormControl('', Validators.required)\r\n , Contact_FaxNumber: new FormControl('')\r\n , Contact_role_served_ind: new FormControl(21)\r\n , Contact_date_role_from: new FormControl(new Date())\r\n , Contact_date_role_to: new FormControl(new Date())\r\n , Contact_id_type_ind: new FormControl(1)\r\n\r\n //Compliance and Legal\r\n , tax_number: new FormControl('', Validators.maxLength(10))\r\n , assoc_id: new FormControl('')\r\n\r\n //Demographics\r\n // ,black_ownership: new FormControl('', Validators.compose([Validators.required, Validators.min(0), Validators.max(100)]))\r\n , bbbee_status: new FormControl('', Validators.maxLength(12))\r\n , bbbee_certficate_date: new FormControl('')\r\n , black_ownership: new FormControl('', [Validators.max(100), Validators.min(0)])\r\n , female_ownership: new FormControl('', [Validators.max(100), Validators.min(0)])\r\n , disability_ownership: new FormControl('', [Validators.max(100), Validators.min(0)])\r\n , youth_owner: new FormControl('', [Validators.max(100), Validators.min(0)])\r\n , turnover_band: new FormControl('')\r\n , num_employees: new FormControl('', [Validators.min(0)])\r\n });\r\n this.initFormData();\r\n }\r\n\r\n // retrieve the carrier account's details (if it exists)\r\n initFormData = () => {\r\n if (this.utility.ctrlPages[Account.First].carrierId > 0) {\r\n this.message = \"Loading, please wait...\";\r\n this.isLoading = true;\r\n this.carrierService.getCompanyDetailsById(this.utility.ctrlPages[Account.First].carrierId).subscribe(result => {\r\n this.aCarrier = result;\r\n //console.log('Carrier = ', this.aCarrier);\r\n this.aCarrier.Contact.EmailAddress = this.aCarrier.Contact.EmailAddress == null ? \"\" : this.aCarrier.Contact.EmailAddress;\r\n this.aCarrier.Carrier.email = this.aCarrier.Carrier.email == null ? \"\" : this.aCarrier.Carrier.email;\r\n this.isLoading = false;\r\n this.setFormData();\r\n }, error => {\r\n this.isLoading = false;\r\n this.msg.warning(\"Carrier Account's details could not be retrieved\", \"Carrier Account\", { timeOut: 3000 });\r\n });\r\n } else {\r\n if (Object.keys(this.aCarrier).length > 0) {\r\n //console.log(this.aCarrier);\r\n this.setFormData();\r\n }\r\n }\r\n this.isBasicContactInfo = true;\r\n }\r\n\r\n ngOnDestroy() {\r\n }\r\n\r\n // if new or unsubmitted account, allow all changes\r\n // if submitted account, allow changes to basics without changing the status, otherwise allow changes to core but account then needs to be re-submitted\r\n // if approved account, allow changes to basic contact information only\r\n changeBasicContactInfoParm() {\r\n\r\n if(this.status_id != 1){\r\n return this.isBasicContactInfo = false;\r\n }\r\n\r\n }\r\n\r\n // populate the form's elements\r\n setFormData() {\r\n (this.form)\r\n .setValue({\r\n\r\n // Carrier details\r\n carrier_id: this.aCarrier.Carrier.carrier_id\r\n , carrier_type_id: this.aCarrier.Carrier.carrier_type_id\r\n , country_id: this.aCarrier.Carrier.country_id\r\n , registered_name: this.aCarrier.Carrier.registered_name\r\n , trading_name: this.aCarrier.Carrier.trading_name\r\n , registration_number: this.aCarrier.Carrier.registration_number\r\n , id_type_ind: this.aCarrier.Carrier.id_type_ind\r\n , id_country_id: this.aCarrier.Carrier.id_country_id\r\n , id_number: this.aCarrier.Carrier.registration_number\r\n , sameAsloggeIn: false //, sameAsloggeIn: this.aCarrier.Carrier.sameAsloggeIn\r\n , contactSameAsloggeIn: false //, contactSameAsloggeIn: this.aCarrier.Carrier.contactSameAsloggeIn\r\n , role_served_ind: this.aCarrier.Carrier.role_served_ind\r\n , first_name: this.aCarrier.Carrier.first_name\r\n , last_name: this.aCarrier.Carrier.last_name\r\n , is_active_person: this.aCarrier.Carrier.is_active_person\r\n , date_of_birth: this.aCarrier.Carrier.date_of_birth\r\n , date_created: this.aCarrier.Carrier.date_created\r\n , date_modified: new Date()\r\n , user_created: this.aCarrier.Carrier.user_created\r\n , user_modified: this.user.LastName\r\n , user_id: this.aCarrier.Carrier.user_id\r\n , status_id: this.aCarrier.Carrier.status_id\r\n , loggedInUser: { first_name: this.user.FirstName, last_name: this.user.LastName, email: this.user.EmailAddress }\r\n , copyPhysical_address: null // , copyPhysical_address: this.aCarrier.Carrier.copyPhysical_address\r\n , traffic_register_number: this.aCarrier.Carrier.traffic_register_number\r\n , trn_issue_date: this.aCarrier.Carrier.trn_issue_date\r\n , work_permit_number: this.aCarrier.Carrier.work_permit_number\r\n , work_permit_expiry_date: this.aCarrier.Carrier.work_permit_expiry_date\r\n , passport_expiry_date: this.aCarrier.Carrier.passport_expiry_date\r\n // , business_type_id: this.aCarrier.Carrier.business_type_ind\r\n , freight_passenger_ind: this.aCarrier.Carrier.freight_passenger_ind\r\n , officePhone: this.aCarrier.Carrier.telephone\r\n , cellphone: this.aCarrier.Carrier.cellphone\r\n\r\n //Contact details\r\n , PersonId: this.aCarrier.Contact.PersonId\r\n , Contact_CarrierID: this.aCarrier.Carrier.carrier_id\r\n , Contact_is_active: this.aCarrier.Contact.is_active\r\n , Contact_FirstName: this.aCarrier.Contact.FirstName\r\n , Contact_LastName: this.aCarrier.Contact.LastName\r\n , Contact_EmailAddress: this.aCarrier.Contact.EmailAddress.toLowerCase()\r\n , Contact_MobileNumber: this.aCarrier.Contact.MobileNumber\r\n , Contact_CommunicationPreference: this.aCarrier.Carrier.communication_type\r\n , Contact_PhysicalAddress1: this.aCarrier.Carrier.physical_address_1\r\n , Contact_PhysicalAddress2: this.aCarrier.Carrier.physical_address_2\r\n , Contact_PhysicalAddress3: this.aCarrier.Carrier.physical_address_3\r\n , Contact_Town: this.aCarrier.Carrier.physical_address_town\r\n , Contact_PostalCode: this.aCarrier.Carrier.physical_post_code\r\n , Contact_CountryID: this.aCarrier.Carrier.country_id\r\n , Contact_FaxNumber: this.aCarrier.Carrier.fax\r\n , Contact_CompanyEmail: this.aCarrier.Carrier.email.toLowerCase()\r\n , Contact_PostalAddress1: this.aCarrier.Carrier.postal_address_1\r\n , Contact_PostalAddress2: this.aCarrier.Carrier.postal_address_2\r\n , Contact_PostalAddress3: this.aCarrier.Carrier.postal_address_3\r\n , Contact_pTown: this.aCarrier.Carrier.postal_address_town\r\n , Contact_pPostalCode: this.aCarrier.Carrier.postal_post_code\r\n , Contact_pCountry: (this.aCarrier.Carrier.country_id > 0) ? this.aCarrier.Carrier.country_id : 21\r\n , Contact_role_served_ind: this.aCarrier.Contact.role_served_ind\r\n , Contact_date_role_from: (this.isValidDate(this.aCarrier.Contact.date_role_from)) ? this.aCarrier.Contact.date_role_from : new Date()\r\n , Contact_date_role_to: (this.isValidDate(this.aCarrier.Contact.date_role_to)) ? this.aCarrier.Contact.date_role_to : new Date()\r\n , Contact_id_type_ind: this.aCarrier.Contact.id_type_ind\r\n\r\n //Compliance and Legal\r\n , tax_number: this.aCarrier.Carrier.tax_number\r\n , assoc_id: (this.aCarrier.Carrier.assoc_id) ? this.aCarrier.Carrier.assoc_id : \"\"\r\n\r\n //Demographics\r\n , bbbee_status: this.aCarrier.Carrier.bbbee_status\r\n , bbbee_certficate_date: this.aCarrier.Demographic.BBBEE_cert_expiry_date\r\n , black_ownership: this.aCarrier.Demographic.black_ownership_percentage\r\n , female_ownership: this.aCarrier.Demographic.female_ownership_percentage\r\n , disability_ownership: this.aCarrier.Demographic.disability_ownership_percentage\r\n , youth_owner: this.aCarrier.Demographic.youth_ownership_percentage\r\n , turnover_band: this.aCarrier.Demographic.turnover_band\r\n , num_employees: this.aCarrier.Demographic.number_of_employees\r\n }, { onlySelf: true });\r\n\r\n this.defaultCarrierOfficePhone = (this.aCarrier.Carrier.iso2_tele) ? this.aCarrier.Carrier.iso2_tele : CountryISO.SouthAfrica;\r\n this.defaultCarrierCellphone = (this.aCarrier.Carrier.iso2_cell) ? this.aCarrier.Carrier.iso2_cell : CountryISO.SouthAfrica;\r\n this.defaultContactMobile = (this.aCarrier.Contact.iso2_cell) ? this.aCarrier.Contact.iso2_cell : CountryISO.SouthAfrica;\r\n\r\n this.bbbee_certficate_date = this.aCarrier.Demographic.BBBEE_cert_expiry_date;\r\n\r\n this.addFields(this.aCarrier.Carrier.id_type_ind);\r\n this.whichCarrierType = this.aCarrier.carrier_type_id;\r\n this.carrierType = this.aCarrier.Carrier.carrier_type_id;\r\n this.idType = this.aCarrier.Carrier.id_type_ind;\r\n this.id_type_required_ind = this.aCarrier.Carrier.id_type_ind;\r\n\r\n if (this.id_type_required_ind) {\r\n this.trn_issue_date = this.aCarrier.Carrier.trn_issue_date;\r\n this.work_permit_expiry_date = this.aCarrier.Carrier.work_permit_expiry_date;\r\n this.passport_expiry_date = this.aCarrier.Carrier.passport_expiry_date;\r\n this.trn_issue_date = this.aCarrier.Carrier.trn_issue_date;\r\n\r\n setTimeout(()=>{\r\n if(this.bbbee_certficate_date!=null){\r\n let date:any=this.datePipe.transform(this.bbbee_certficate_date,\"dd/MM/yyyy\");\r\n this.form.get('bbbee_certficate_date').setValue(date);\r\n this.form.get('bbbee_certficate_date').setErrors(null);\r\n //console.log(this.form.value.bbbee_certficate_date);\r\n }\r\n if(this.trn_issue_date!=null){\r\n let date:any=this.datePipe.transform(this.trn_issue_date,\"dd/MM/yyyy\");\r\n this.form.get('trn_issue_date').setValue(date);\r\n this.form.get('trn_issue_date').setErrors(null);\r\n }\r\n if(this.work_permit_expiry_date!=null){\r\n let date:any=this.datePipe.transform(this.work_permit_expiry_date,\"dd/MM/yyyy\");\r\n this.form.get('work_permit_expiry_date').setValue(date);\r\n this.form.get('work_permit_expiry_date').setErrors(null);\r\n }\r\n if(this.passport_expiry_date!=null){\r\n alert(this.passport_expiry_date);\r\n let date:any=this.datePipe.transform(this.passport_expiry_date,\"dd/MM/yyyy\");\r\n this.form.get('passport_expiry_date').setValue(date);\r\n this.form.get('passport_expiry_date').setErrors(null);\r\n }\r\n },800);\r\n }\r\n this.onChange('load');\r\n this.onItemChange();\r\n this.transient(this.form);\r\n }\r\n\r\n isValidDate(d: any) {\r\n return d instanceof Date && !isNaN(d.getTime());\r\n }\r\n\r\n ChangeCountry(event, key = 1) {\r\n switch (key) {\r\n case 1:\r\n this.defaultCarrierOfficePhone = event.iso2;\r\n break;\r\n case 2:\r\n this.defaultCarrierCellphone = event.iso2;\r\n break;\r\n case 3:\r\n this.defaultContactMobile = event.iso2;\r\n break;\r\n default:\r\n //console.log(event);\r\n break;\r\n }\r\n }\r\n\r\n onSubmit(obj: any, key = 2) {\r\n\r\n if(this.id_type_required_ind==1 || this.id_type_required_ind==2 || this.id_type_required_ind==8){\r\n // confirm ID is correct - reqd only when one-man-business or partnership\r\n this.doSubmit = this.preValidateID('submit');\r\n //console.log(this.doSubmit);\r\n if(!this.doSubmit){\r\n return false;\r\n }\r\n } \r\n\r\n if(!this.form.valid){\r\n this.validateFields(false);\r\n return false;\r\n }\r\n this.isLoading = true;\r\n\r\n this.isEdit = (this.utility.ctrlPages[Account.First].carrierId > 0) ? true : false;\r\n if (this.whichCarrierType == 1) {\r\n obj.date_of_birth = (this.id_type_required_ind == 1) ? this.getDOB(obj.id_number) : null;\r\n obj.registered_name = (this.id_type_required_ind == 1 || this.id_type_required_ind == 2) ? `${obj.last_name}, ${obj.first_name}` : `${this.user.LastName}, ${this.user.FirstName}`;\r\n }\r\n if(obj.passport_expiry_date!=null && obj.passport_expiry_date!=''){\r\n let date:any=new Date(obj.passport_expiry_date.split(\"/\")[2]+\"-\"+obj.passport_expiry_date.split(\"/\")[1]+\"-\"+obj.passport_expiry_date.split(\"/\")[0]);\r\n obj.passport_expiry_date=this.datePipe.transform(date,'yyyy-MM-dd');\r\n }\r\n if(obj.work_permit_expiry_date!=null && obj.work_permit_expiry_date!=''){\r\n let date:any=new Date(obj.work_permit_expiry_date.split(\"/\")[2]+\"-\"+obj.work_permit_expiry_date.split(\"/\")[1]+\"-\"+obj.work_permit_expiry_date.split(\"/\")[0]);\r\n obj.work_permit_expiry_date=this.datePipe.transform(date,'yyyy-MM-dd');\r\n }\r\n if(obj.trn_issue_date!=null && obj.trn_issue_date!=''){\r\n let date:any=new Date(obj.trn_issue_date.split(\"/\")[2]+\"-\"+obj.trn_issue_date.split(\"/\")[1]+\"-\"+obj.trn_issue_date.split(\"/\")[0]);\r\n obj.trn_issue_date=this.datePipe.transform(date,'yyyy-MM-dd');\r\n }\r\n if(obj.bbbee_certficate_date!=null && obj.bbbee_certficate_date!=''){\r\n let date:any=new Date(obj.bbbee_certficate_date.split(\"/\")[2]+\"-\"+obj.bbbee_certficate_date.split(\"/\")[1]+\"-\"+obj.bbbee_certficate_date.split(\"/\")[0]);\r\n obj.bbbee_certficate_date=this.datePipe.transform(date,'yyyy-MM-dd');\r\n }\r\n\r\n if (this.importCarrier == 'true') { \r\n obj.status_id = 1;\r\n obj.user_id = this.user.Id;\r\n }\r\n\r\n obj = this.constructCarrierObj(obj);\r\n this.utility.isChanged = false;\r\n\r\n // write/update carrier details\r\n if (!this.isEdit) {\r\n // NEW ACCOUNT -> not yet created -> create\r\n this.createCACDetails(obj);\r\n\r\n } else {\r\n\r\n // EXISTING ACCOUNT (can have status of 1/2/11/51)...\r\n this.isLoading = false;\r\n\r\n if(this.carrierStatus == 1) {\r\n // account is still in 'create' status -> allow all changes\r\n this.isLoading = true;\r\n this.updateCACDetails(obj, key);\r\n\r\n } else if(this.carrierStatus == 2){\r\n // account is in 'Additional Information Required' status -> allow all changes, but reset status\r\n this.isLoading = true;\r\n obj.Carrier.status_id = parseInt(this.authWebService.userData.Configurations.find(c => c.Code == \"AccountStatus1\").Value);\r\n this.updateCACDetails(obj, key);\r\n \r\n } else if(this.carrierStatus == 11) {\r\n \r\n // account was previously submitted, not yet approved...\r\n if(this.isBasicContactInfo) {\r\n // changes to basic contact info is allowed\r\n this.isLoading = true;\r\n this.updateCACDetails(obj, key);\r\n } else {\r\n // changes to core account info -> allowed but will lead to status being reset\r\n // this.showModal.showYesNo('Save & Continue', 'Please note that the Account will need to be re-submitted for approval. Do you want to continue?', '', 'Yes', 'No')\r\n // .subscribe((isConfirmed) => {\r\n // if (isConfirmed) {\r\n // obj.Carrier.status_id = parseInt(this.authWebService.userData.Configurations.find(c => c.Code == \"AccountStatus1\").Value);\r\n // this.isLoading = true;\r\n // this.updateCACDetails(obj, key);\r\n // } else {\r\n // //this.utility.landingPage();\r\n // return\r\n // }\r\n // });\r\n this.confirmDialogService.confirmThis('Please note that the Account will need to be re-submitted for approval. Do you want to continue?', () => { \r\n obj.Carrier.status_id = parseInt(this.authWebService.userData.Configurations.find(c => c.Code == \"AccountStatus1\").Value);\r\n this.isLoading = true;\r\n this.updateCACDetails(obj, key);\r\n\r\n \r\n }, () => { \r\n return\r\n })\r\n }\r\n\r\n } else if (this.carrierStatus == 51){\r\n\r\n // account was previously approved...\r\n // if(this.isBasicContactInfo) {\r\n // changes to basic contact info is allowed\r\n this.isLoading = true;\r\n this.updateCACDetails(obj, key);\r\n // } else {\r\n // // account was approved -> no changes to core account info allowed\r\n // this.showModal.showYesNo('Account Changes','Account was approved - No changes other than changes to contact details are allowed.','','OK','Reset')\r\n // .subscribe((isConfirmed) => {\r\n // if (isConfirmed) {\r\n // this.resetForm();\r\n // } else {\r\n // this.resetForm();\r\n // }\r\n // this.isLoading = false;\r\n // return\r\n // });\r\n // }\r\n\r\n }\r\n this.isLoading = false;\r\n }\r\n }\r\n\r\n addFields = (obj: any = this.idType) => {\r\n this.isForeignId = (obj != 1) ? true : false;\r\n switch (obj) {\r\n case 1:\r\n this.whichIdType = 1;\r\n this.addIDValidation();\r\n break;\r\n case 2:\r\n this.whichIdType = 2;\r\n this.addIDValidation(obj);\r\n break;\r\n case 3:\r\n this.whichIdType = 3;\r\n this.addIDValidation(obj);\r\n break;\r\n default:\r\n this.whichIdType = 0;\r\n this.addIDValidation(obj);\r\n break;\r\n }\r\n }\r\n\r\n listCountries = () => {\r\n this.isLoading = true;\r\n this.countryService.listCountries().subscribe((result:any) => {\r\n this.ddlCountries = result;\r\n this.isLoading = false;\r\n //console.log(this.ddlCountries);\r\n }, error => {\r\n this.isLoading = false;\r\n //console.log(error);\r\n });\r\n }\r\n\r\n listCarrierTypes = () => {\r\n this.isLoading = true;\r\n this.carrierTypeService.listCarrierTypes().subscribe((result:any) => {\r\n this.ddlCarrierTypes = result;\r\n this.isLoading = false;\r\n }, error => {\r\n this.isLoading = false;\r\n //console.log(error);\r\n });\r\n }\r\n\r\n sortBy(prop: string) {\r\n return this.ddlCarrierTypes.sort((a, b) => a[prop] > b[prop] ? 1 : a[prop] === b[prop] ? 0 : -1);\r\n }\r\n\r\n retrieveStatusId = () => {\r\n let status: any;\r\n if (this.authWebService.userData) {\r\n status = this.authWebService.userData.Configurations.find(\r\n config => config.Code == \"AccountStatus1\").Value;\r\n }\r\n this.status_id = status;\r\n }\r\n\r\n setCarrierPerson = (event: any) => {\r\n if (event.currentTarget.checked) {\r\n this.form.patchValue({ first_name: this.user.FirstName, last_name: this.user.LastName });\r\n } else {\r\n this.form.patchValue({ first_name: \"\", last_name: \"\" });\r\n }\r\n }\r\n\r\n updateCACDetails = (obj: any, key = 2) => {\r\n this.message = \"Updating carrier account's company details,please wait...\";\r\n this.isLoading = true;\r\n this.carrierService.processUpdateCompanyDetails(obj).subscribe(result => {\r\n this.aCarrier = result;\r\n this.utility.docCtrl = (this.aCarrier.Carrier.carrier_id > 0) ? true : false;\r\n this.isLoading = false;\r\n this.utility.activeTab = key;\r\n this.msg.success(\"Carrier Account's details updated successfully.\", \"Carrier Account\", { timeOut: 1000 });\r\n }, error => {\r\n this.isLoading = false;\r\n this.msg.error(\"Carrier Account's details could not be updated. Please contact the system administrator if the problem persists.\"+\"\\nTel : 012 471 2121'+'\\nEmail: helpdesk@cbrta.co.za\", \"Carrier Account\")\r\n });\r\n }\r\n\r\n createCACDetails = (obj: any) => {\r\n this.message = \"Creating Carrier Account's details, please wait...\";\r\n this.isLoading = true;\r\n this.carrierService.processCompanyDetails(obj).subscribe(result => {\r\n this.aCarrier = result;\r\n this.utility.docCtrl = (this.aCarrier.Carrier.carrier_id > 0) ? true : false;\r\n this.utility.ctrlPages[Account.First].carrierId = this.aCarrier.Carrier.carrier_id;\r\n this.isLoading = false;\r\n this.utility.activeTab = 2;\r\n this.msg.success(\"Carrier Account's details saved successfully.\", \"Carrier Account\", { timeOut: 1000 });\r\n }, error => {\r\n this.isLoading = false; \r\n let err: any = JSON.parse(error._body);\r\n this.msg.error(err.Message +\"\\n\\nCarrier Account's details could not be saved. Please contact the system administrator if the problem persists.\"+\"\\nTel : 012 471 2121'+'\\nEmail: helpdesk@cbrta.co.za\", \"Carrier Account\")\r\n });\r\n }\r\n\r\n requireIDValidation(_isLocal: boolean) {\r\n let selectedCountryId = this.form.controls.country_id.value;\r\n if (this.is_local_carrier && selectedCountryId != 113) {\r\n _isLocal = false;\r\n }\r\n return _isLocal;\r\n }\r\n\r\n preValidateID(source: any) {\r\n if(this.id_type_required_ind!=1 && this.id_type_required_ind!=2 && this.id_type_required_ind!=8){\r\n // not reqd when it is a company-type\r\n return true;\r\n }\r\n\r\n let idValidationRequired: boolean = this.requireIDValidation(this.isLocal);\r\n let idNumber:any\r\n let sourceButton = source;\r\n\r\n if(this.id_type_required_ind==1 || this.id_type_required_ind==2){\r\n // SA & Foreign individuals/one-man companies\r\n idNumber = this.form.get('id_number').value;\r\n } else if (this.id_type_required_ind==8){\r\n // SA & Foreign partnerships\r\n idNumber = this.form.get('registration_number').value;\r\n } else {\r\n idNumber= null;\r\n return true;\r\n }\r\n\r\n if(idNumber==\"\" || idNumber=='' || idNumber==null){\r\n // exit on empty\r\n if (this.isLocal && idValidationRequired){\r\n this.msg.warning(\"Invalid SA ID Number\", \"Carrier Account:\");\r\n } else {\r\n this.msg.warning(\"Invalid Passport/ID Number\", \"Carrier Account:\");\r\n }\r\n this.form.get('id_number').markAsDirty();\r\n this.form.get('id_number').updateValueAndValidity();\r\n this.form.get('registration_number').markAsDirty();\r\n this.form.get('registration_number').updateValueAndValidity(); \r\n return false; \r\n }\r\n \r\n if (this.isLocal && idValidationRequired){\r\n // SA ID\r\n // must be numeric\r\n if(isNaN(+idNumber)){\r\n this.msg.warning(\"Invalid SA ID Number - must be numeric!\", \"Carrier Account:\");\r\n this.form.get('id_number').markAsDirty();\r\n this.form.get('id_number').updateValueAndValidity();\r\n this.form.get('registration_number').markAsDirty();\r\n this.form.get('registration_number').updateValueAndValidity();\r\n // this.form.controls.carrier_type_id.markAsDirty();\r\n return false;\r\n }\r\n\r\n if(idNumber.length === 13){\r\n // must be 13 chars in length\r\n // first 6 characters -> must be DOB\r\n let tempDate = new Date(idNumber.substring(0, 2), (idNumber.substring(2, 4) - 1), idNumber.substring(4, 6));\r\n let id_date = (tempDate.getDate().toString().length < 2) ? \"0\" + tempDate.getDate().toString() : tempDate.getDate().toString();\r\n let id_month = ((tempDate.getMonth() + 1).toString().length < 2) ? \"0\" + (tempDate.getMonth() + 1).toString() : (tempDate.getMonth() + 1).toString();\r\n let id_year = tempDate.getFullYear().toString().slice(-2);\r\n let dob = new Date(id_year + '/' + id_month + '/' + id_date);\r\n if(!((id_year == idNumber.substring(0, 2).toString()) && (id_month == idNumber.substring(2, 4).toString()) && (id_date == idNumber.substring(4, 6).toString()))) {\r\n this.msg.warning(\"Invalid SA ID Number\", \"Carrier Account:\");\r\n this.form.get('id_number').markAsDirty();\r\n this.form.get('id_number').updateValueAndValidity();\r\n this.form.get('registration_number').markAsDirty();\r\n this.form.get('registration_number').updateValueAndValidity();\r\n return false;\r\n }\r\n // 10th character -> must be 0 (SA born) or 1 (permanent citizen)\r\n let ind = idNumber.substring(10, 11);\r\n if(ind != 0 && ind != 1){\r\n this.msg.warning(\"Invalid SA ID Number\", \"Carrier Account:\");\r\n this.form.get('id_number').markAsDirty();\r\n this.form.get('id_number').updateValueAndValidity();\r\n this.form.get('registration_number').markAsDirty();\r\n this.form.get('registration_number').updateValueAndValidity();\r\n return false;\r\n }\r\n\r\n } else if (idNumber.length > 13){\r\n // limit to 13 characters\r\n this.msg.warning(\"Invalid SA ID Number - only 13 characters allowed\", \"Carrier Account:\");\r\n // this.form.patchValue({id_number: idNumber.substring(0,13)});\r\n this.form.get('id_number').markAsDirty();\r\n this.form.get('id_number').updateValueAndValidity();\r\n this.form.get('registration_number').markAsDirty();\r\n this.form.get('registration_number').updateValueAndValidity();\r\n return false; \r\n } else if (idNumber.length < 13 && sourceButton==\"submit\"){\r\n // onSubmit check\r\n this.msg.warning(\"Invalid SA ID Number\", \"Carrier Account:\");\r\n this.form.get('id_number').markAsDirty();\r\n this.form.get('id_number').updateValueAndValidity();\r\n this.form.get('registration_number').markAsDirty();\r\n this.form.get('registration_number').updateValueAndValidity();\r\n return false; \r\n }\r\n\r\n } else {\r\n\r\n if (idNumber.length > 20){\r\n // limit to 15 characters\r\n this.msg.warning(\"Foreign Passport / ID Numbers limited to 20 characters\", \"Carrier Account:\");\r\n // this.form.patchValue({id_number: idNumber.substring(0,15)});\r\n this.form.get('id_number').markAsDirty();\r\n this.form.get('id_number').updateValueAndValidity();\r\n this.form.get('registration_number').markAsDirty();\r\n this.form.get('registration_number').updateValueAndValidity();\r\n return false; \r\n }\r\n } \r\n return true;\r\n }\r\n\r\n\r\n\r\n // validateID(control: FormControl) {\r\n // let id_number = control.value; \r\n validateID(id: any) { \r\n let id_number = id;\r\n let correct = true;\r\n\r\n if (id_number) {\r\n \r\n if(this.isLocal){\r\n }\r\n\r\n // SA ID Number have to be 13 digits, so check the length\r\n if (id_number.length != 13 || (!(!isNaN(parseFloat(id_number)) && isFinite(id_number)))/*!this.isNumber(id_number)*/) {\r\n // this.showModal.showError('Oops', 'South African ID number must be 13 digits long. Please make sure you have selected the correct Nationality option.');\r\n this.msg.warning(\"ID Number must be numeric and not longer than 13 characters\", \"Carrier Account:\");\r\n this.form.get('id_number').markAsDirty();\r\n correct = false;\r\n return;\r\n }\r\n\r\n // get first 6 digits as a valid date\r\n let tempDate = new Date(id_number.substring(0, 2), (id_number.substring(2, 4) - 1), id_number.substring(4, 6));\r\n\r\n let id_date = (tempDate.getDate().toString().length < 2) ? \"0\" + tempDate.getDate().toString() : tempDate.getDate().toString();\r\n let id_month = ((tempDate.getMonth() + 1).toString().length < 2) ? \"0\" + (tempDate.getMonth() + 1).toString() : (tempDate.getMonth() + 1).toString();\r\n let id_year = tempDate.getFullYear().toString().slice(-2);\r\n let dob = new Date(id_year + '/' + id_month + '/' + id_date);\r\n\r\n if (!((id_year == id_number.substring(0, 2).toString()) && (id_month == id_number.substring(2, 4).toString()) && (id_date == id_number.substring(4, 6).toString()))) {\r\n correct = false;\r\n }\r\n } else {\r\n correct = false;\r\n }\r\n\r\n if (id_number) {\r\n if (!correct) {\r\n return {\r\n saID: {\r\n saIdnumer: id_number\r\n }\r\n }\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n addIDValidation = (type: number = 1) => {\r\n const idNumber = this.form.get('id_number');\r\n const idPartner = this.form.get('registration_number')\r\n const first_name = this.form.get('first_name');\r\n const last_name = this.form.get('last_name');\r\n //const id_type_ind= this.form.get('id_type_ind');\r\n let id_country_id = this.form.get('id_country_id');\r\n\r\n switch (type) {\r\n case 1: // SA Individual\r\n first_name.setValidators([Validators.required]);\r\n last_name.setValidators([Validators.required]);\r\n // idNumber.setValidators([this.validateID]);\r\n idNumber.setValidators([Validators.required , Validators.maxLength(13)]);\r\n //console.log('SA ID Number validation set');\r\n //id_type_ind.clearValidators();\r\n id_country_id.clearValidators();\r\n break;\r\n case 2: // Foreign Individual\r\n first_name.setValidators([Validators.required]);\r\n last_name.setValidators([Validators.required]);\r\n idNumber.setValidators([Validators.required , Validators.maxLength(20)]);\r\n //console.log('Foreign ID Number validation set');\r\n //id_type_ind.setValidators([Validators.required]);\r\n //id_country_id.setValidators([Validators.required]);\r\n break;\r\n case 8: // Partnerships\r\n idPartner.setValidators([Validators.required , Validators.maxLength(20)]);\r\n //console.log('Passport Number validation set');\r\n break;\r\n default:\r\n first_name.clearValidators();\r\n last_name.clearValidators();\r\n idNumber.clearValidators();\r\n idPartner.clearValidators();\r\n // id_type_ind.clearValidators();\r\n id_country_id.clearValidators();\r\n //console.log('SA ID Number validation unset');\r\n break;\r\n }\r\n last_name.updateValueAndValidity();\r\n first_name.updateValueAndValidity();\r\n idNumber.updateValueAndValidity();\r\n idPartner.updateValueAndValidity();\r\n //id_type_ind.updateValueAndValidity();\r\n id_country_id.updateValueAndValidity();\r\n }\r\n\r\n addRegisteredNameValidation = (type: number) => {\r\n const registered_name = this.form.get('registered_name');\r\n let registration_number = this.form.get('registration_number');\r\n switch (type) {\r\n case 1:\r\n //case 2:\r\n registered_name.clearValidators();\r\n registration_number.clearValidators();\r\n this.form.patchValue({ registered_name: null, trading_name: null, registration_number: null });\r\n\r\n break;\r\n default:\r\n registered_name.setValidators([Validators.required]);\r\n registration_number.setValidators([Validators.required]);\r\n break;\r\n }\r\n\r\n registered_name.updateValueAndValidity();\r\n registration_number.updateValueAndValidity();\r\n }\r\n\r\n getDOB = (id_number: any) => {\r\n if (!id_number) return null;\r\n let tempDate = new Date(id_number.substring(0, 2), (id_number.substring(2, 4) - 1), id_number.substring(4, 6));\r\n let id_date = (tempDate.getDate().toString().length < 2) ? \"0\" + tempDate.getDate().toString() : tempDate.getDate().toString();\r\n let id_month = ((tempDate.getMonth() + 1).toString().length < 2) ? \"0\" + (tempDate.getMonth() + 1).toString() : (tempDate.getMonth() + 1).toString();\r\n let id_year = tempDate.getFullYear().toString().slice(-2);\r\n let dob = new Date(id_year + '/' + id_month + '/' + id_date);\r\n return (!isNaN(dob.getTime())) ? dob : null;\r\n\r\n }\r\n\r\n //Contact details\r\n IsSameUser(event: any) {\r\n if (event.currentTarget.checked) {\r\n this.form.patchValue({\r\n Contact_FirstName: this.user.FirstName\r\n , Contact_LastName: this.user.LastName\r\n , Contact_EmailAddress: this.user.EmailAddress\r\n , Contact_MobileNumber: this.user.MobileNumber\r\n })\r\n this.defaultContactMobile = this.user.ISO2Mobile;\r\n } else {\r\n this.form.patchValue({\r\n Contact_FirstName: ''\r\n , Contact_LastName: ''\r\n , Contact_EmailAddress: ''\r\n , Contact_MobileNumber: ''\r\n })\r\n this.defaultContactMobile = '';\r\n\r\n }\r\n }\r\n\r\n listDDL = () => {\r\n this.transportAssocService.listTransportAssoc().subscribe(result => {\r\n this.listAssoc = result;\r\n }, error => {\r\n //console.log(error);\r\n });\r\n }\r\n\r\n constructCarrierObj = (obj: any) => {\r\n\r\n this.carrierStatus = obj.status_id;\r\n\r\n let carrierObj: any = {\r\n\r\n Carrier: {\r\n carrier_id: obj.carrier_id\r\n , carrier_type_id: obj.carrier_type_id\r\n , country_id: obj.country_id\r\n , registered_name: obj.registered_name\r\n , trading_name: obj.trading_name\r\n , registration_number: obj.registration_number\r\n , id_type_ind: this.id_type_required_ind\r\n , id_country_id: obj.id_country_id\r\n , id_number: obj.id_number\r\n , sameAsloggeIn: obj.sameAsloggeIn\r\n , role_served_ind: obj.role_served_ind\r\n , first_name: obj.first_name\r\n , last_name: obj.last_name\r\n , is_active_person: obj.is_active_person\r\n , date_of_birth: obj.date_of_birth\r\n , date_created: obj.date_created\r\n , date_modified: obj.date_modified\r\n , user_created: obj.user_created\r\n , user_modified: obj.user_modified\r\n , user_id: obj.user_id\r\n , status_id: obj.status_id\r\n , loggedInUser: obj.loggedInUser\r\n , bbbee_status: obj.bbbee_status\r\n , assoc_id: obj.assoc_id\r\n , communication_type: obj.Contact_CommunicationPreference\r\n , physical_address_1: obj.Contact_PhysicalAddress1\r\n , physical_address_2: obj.Contact_PhysicalAddress2\r\n , physical_address_3: obj.Contact_PhysicalAddress3\r\n , physical_address_town: obj.Contact_Town\r\n , physical_post_code: obj.Contact_PostalCode\r\n , physical_place_id: obj.Contact_CountryID\r\n , fax: obj.Contact_FaxNumber\r\n , email: obj.Contact_CompanyEmail\r\n , postal_address_1: obj.Contact_PostalAddress1\r\n , postal_address_2: obj.Contact_PostalAddress2\r\n , postal_address_3: obj.Contact_PostalAddress3\r\n , postal_address_town: obj.Contact_pTown\r\n , postal_post_code: obj.Contact_pPostalCode\r\n , postal_place_id: obj.Contact_pCountry\r\n , tax_number: obj.tax_number\r\n , traffic_register_number: obj.traffic_register_number\r\n , trn_issue_date: obj.trn_issue_date\r\n , work_permit_number: obj.work_permit_number\r\n , work_permit_expiry_date: obj.work_permit_expiry_date\r\n , passport_expiry_date: obj.passport_expiry_date\r\n // , business_type_ind: obj.business_type_id\r\n , freight_passenger_ind: obj.freight_passenger_ind\r\n },\r\n Contact: {\r\n PersonId: obj.PersonId\r\n , CarrierID: obj.Contact_CarrierID\r\n , is_active: obj.is_active_person\r\n , FirstName: obj.Contact_FirstName\r\n , LastName: obj.Contact_LastName\r\n , EmailAddress: obj.Contact_EmailAddress\r\n , CommunicationPreference: obj.Contact_CommunicationPreference\r\n , role_served_ind: (obj.Contact_role_served_ind > 0) ? obj.Contact_role_served_ind : 21\r\n , date_role_from: obj.Contact_date_role_from\r\n , date_role_to: obj.Contact_date_role_to\r\n , datecreated: obj.date_created\r\n , datemodified: obj.date_modified\r\n , usercreated: obj.user_created\r\n , usermodified: obj.user_modified\r\n , id_type_ind: obj.id_type_ind\r\n },\r\n Demographic: {\r\n carrier_id: obj.carrier_id\r\n , BBBEE: obj.bbbee_status\r\n , black_ownership_percentage: obj.black_ownership\r\n , female_ownership_percentage: obj.female_ownership\r\n , disability_ownership_percentage: obj.disability_ownership\r\n , youth_ownership_percentage: obj.youth_owner\r\n , turnover_band: obj.turnover_band\r\n , BBBEE_cert_expiry_date: obj.bbbee_certficate_date\r\n , number_of_employees: obj.num_employees\r\n , date_created: obj.date_created\r\n , date_modified: obj.date_modified\r\n , user_created: obj.user_created\r\n , user_modified: obj.user_modified\r\n }\r\n };\r\n\r\n if (obj.Contact_MobileNumber) {\r\n carrierObj.Contact.dial_code_cell = obj.Contact_MobileNumber.dialCode;\r\n carrierObj.Contact.MobileNumber = obj.Contact_MobileNumber.number;\r\n carrierObj.Contact.iso2_cell = this.defaultContactMobile;\r\n }\r\n\r\n if (obj.officePhone) {\r\n carrierObj.Carrier.dial_code_tele = obj.officePhone.dialCode;\r\n carrierObj.Carrier.telephone = obj.officePhone.number;\r\n carrierObj.Carrier.iso2_tele = this.defaultCarrierOfficePhone;\r\n }\r\n\r\n if (obj.cellphone) {\r\n carrierObj.Carrier.dial_code_cell = obj.cellphone.dialCode;\r\n carrierObj.Carrier.cellphone = obj.cellphone.number;\r\n carrierObj.Carrier.iso2_cell = this.defaultCarrierCellphone;\r\n }\r\n //console.log(carrierObj);\r\n return carrierObj;\r\n }\r\n\r\n copyTo = (event: any) => {\r\n if (event.currentTarget.checked) {\r\n this.form.patchValue({\r\n Contact_PostalAddress1: this.form.value.Contact_PhysicalAddress1,\r\n Contact_PostalAddress2: this.form.value.Contact_PhysicalAddress2,\r\n Contact_PostalAddress3: this.form.value.Contact_PhysicalAddress3,\r\n Contact_pTown: this.form.value.Contact_Town,\r\n Contact_pPostalCode: this.form.value.Contact_PostalCode,\r\n Contact_pCountry: this.form.value.Contact_CountryID,\r\n });\r\n return;\r\n }\r\n this.form.patchValue({\r\n Contact_PostalAddress1: '',\r\n Contact_PostalAddress2: '',\r\n Contact_PostalAddress3: '',\r\n Contact_pTown: '',\r\n Contact_pPostalCode: '',\r\n Contact_pCountry: '',\r\n });\r\n }\r\n\r\n onItemChange = () => {\r\n // this.changeBasicContactInfoParm();\r\n let assoc = this.form.get(\"assoc_id\").value;\r\n this.trspassoc = (assoc != \"\") ? \"None\" : \"None\";\r\n }\r\n\r\n onFrmChange = () => {\r\n this.form.valueChanges.subscribe(selectedValue => {\r\n this.utility.isChanged = this.isModified();\r\n })\r\n }\r\n\r\n isModified = () => {\r\n return ((JSON.stringify(this.form.value) !== JSON.stringify(this.originalAccount.account)) && this.form.dirty);\r\n }\r\n\r\n transient = (obj: any) => {\r\n this.originalAccount.account = obj.value;\r\n }\r\n\r\n autoSave = (key: number) => {\r\n this.onSubmit(this.form.value, key);\r\n }\r\n\r\n selectCommunication(communication) {\r\n if (communication.value == 'Email') {\r\n this.form.get('Contact_EmailAddress').setValidators(Validators.compose([Validators.required, Validators.pattern(/^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/)]));\r\n this.form.get('Contact_EmailAddress').markAsTouched();\r\n this.form.get('Contact_EmailAddress').markAsDirty();\r\n this.form.get('Contact_MobileNumber').clearValidators();\r\n } else {\r\n this.form.get('Contact_MobileNumber').setValidators([Validators.required]);\r\n this.form.get('Contact_MobileNumber').markAsTouched();\r\n this.form.get('Contact_MobileNumber').markAsDirty();\r\n this.form.get('Contact_EmailAddress').clearValidators();\r\n }\r\n this.form.get('Contact_EmailAddress').updateValueAndValidity();\r\n this.form.get('Contact_MobileNumber').updateValueAndValidity();\r\n }\r\n\r\n onChange(eventType): void {\r\n // this.changeBasicContactInfoParm();\r\n const carType = this.ddlCarrierTypes.find(type => type.id == this.carrierType);\r\n this.removeSouthAfrica(carType);\r\n\r\n if (carType) {\r\n this.is_individual = carType.is_individual;\r\n this.idType = carType.id_type_required_ind;\r\n this.id_type_required_ind = carType.id_type_required_ind;\r\n this.is_local_carrier = carType.is_local_carrier;\r\n this.isForeignId = (this.id_type_required_ind == 2) ? true : false;\r\n this.displayDemographics = carType.display_demog_frame;\r\n this.form.patchValue({ 'id_type_ind': this.id_type_required_ind });\r\n this.onSetIdLabel(this.id_type_required_ind);\r\n //console.log('Id_type_required_ind =', this.id_type_required_ind);\r\n // this.hasBusinessType();\r\n }\r\n this.whichCarrierType = (this.is_individual) ? 1: 2;\r\n\r\n if (!this.isEdit && !this.aCarrier.Carrier) {\r\n this.form.patchValue({ country_id: '', Contact_pCountry: '', Contact_CountryID: '', registered_name: null, trading_name: null, registration_number: null, id_type_ind: 0, id_country_id: null, id_number: null, sameAsloggeIn: false, first_name: null, last_name: null });\r\n this.form.markAsPristine();\r\n }\r\n\r\n if (this.is_local_carrier && !this.isEdit) {\r\n let key:any = 0;\r\n // this.ddlCountries.sort();\r\n if(this.ddlCountries.find(ctry => ctry.code == \"ZA\")){\r\n key = this.ddlCountries.find(ctry => ctry.code == \"ZA\").id;\r\n if(key!=0){\r\n this.form.patchValue({ 'country_id': key });\r\n this.form.patchValue({ 'Contact_pCountry': key });\r\n this.form.patchValue({ 'Contact_CountryID': key });\r\n }\r\n }\r\n }\r\n\r\n this.addIDValidation(this.idType);\r\n this.addRegisteredNameValidation(this.whichCarrierType);\r\n\r\n if (eventType == 'change') {\r\n //refresh dynamic fields\r\n if (this.form.get('officePhone')) {\r\n this.form.get('officePhone').setValue(this.aCarrier.Carrier.telephone);\r\n }\r\n if (this.form.get('cellphone')) {\r\n this.form.get('cellphone').setValue(this.aCarrier.Carrier.cellphone);\r\n }\r\n\r\n\r\n this.form.get('sameAsloggeIn').setValue(false);\r\n setTimeout(() => {\r\n if (this.id_type_required_ind == 2) {\r\n const idNumber = this.form.get('id_number');\r\n idNumber.setValue('');\r\n this.addIDValidation(2);\r\n }\r\n }, 300)\r\n }\r\n\r\n this.validateTaxFrame();\r\n this.validateDemographicFrame(this.displayDemographics);\r\n this.setPassportValidation(this.isForeignId); \r\n }\r\n\r\n setPassportValidation(isIdForeign)\r\n {\r\n let PASSPORT_expiry_date = this.form.get('passport_expiry_date');\r\n\r\n if(isIdForeign)\r\n {\r\n PASSPORT_expiry_date.setValidators([Validators.required]);\r\n }\r\n else{\r\n PASSPORT_expiry_date.clearValidators();\r\n }\r\n PASSPORT_expiry_date.updateValueAndValidity();\r\n }\r\n\r\n removeSouthAfrica(type){\r\n if(type.desc.includes('Foreign')){\r\n this.ddlCountries = this.ddlCountries.filter(x => x.id !== 113);;\r\n }else{\r\n this.listCountries();\r\n }\r\n }\r\n\r\n onSetIdLabel = (id_ind = 0) => {\r\n this.id_label = this.idTypes.find(type => type.key == id_ind).value;\r\n }\r\n\r\n numbersOnly(event): boolean {\r\n const charCode = (event.which) ? event.which : event.keyCode;\r\n if (charCode > 31 && (charCode < 48 || charCode > 57)) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n onPhysicalAddressChange(physicalAddressInput) {\r\n if (physicalAddressInput.value.length > 1) {\r\n this.googleSearch.searchPlace(physicalAddressInput.value).subscribe((data:any) => {\r\n this.placesPredictions = data.predictions;\r\n if (this.placesPredictions.length > 0)\r\n this.isPlacesPredictionVible = true;\r\n });\r\n }\r\n else {\r\n this.isPlacesPredictionVible = false;\r\n }\r\n }\r\n\r\n clickSearchedPlace(place) {\r\n this.populateAddressInputs(place, true);\r\n this.isPlacesPredictionVible = false;\r\n }\r\n\r\n physicalAddressFocus() {\r\n if (this.placesPredictions.length > 0)\r\n this.isPlacesPredictionVible = true;\r\n }\r\n\r\n physicalAddressBlur() {\r\n setTimeout(() => {\r\n this.isPlacesPredictionVible = false;\r\n }, 300);\r\n }\r\n\r\n onPostalAddressChange(postalAddressInput) {\r\n if (postalAddressInput.value.length > 1) {\r\n this.googleSearch.searchPlace(postalAddressInput.value).subscribe((data:any) => {\r\n this.placesPostalPredictions = data.predictions;\r\n if (this.placesPostalPredictions.length > 0)\r\n this.isPostalPlacesPredictionVible = true;\r\n });\r\n }\r\n else {\r\n this.isPostalPlacesPredictionVible = false;\r\n }\r\n\r\n }\r\n\r\n clickSearchedPlacePostal(place) {\r\n this.populateAddressInputs(place, false);\r\n this.isPostalPlacesPredictionVible = false;\r\n }\r\n\r\n postalAddressFocus() {\r\n if (this.placesPostalPredictions.length > 0)\r\n this.isPostalPlacesPredictionVible = true;\r\n }\r\n\r\n postalAddressBlur() {\r\n setTimeout(() => {\r\n this.isPostalPlacesPredictionVible = false;\r\n }, 300);\r\n }\r\n\r\n populateAddressInputs(place, isPhysical) {\r\n this.googleSearch.searchPlaceDetails(place.place_id).subscribe((data:any) => {\r\n let addressLine_comps = \"\";\r\n let addressLine_1 = data.result.address_components.find(c => c.types.indexOf('street_number') > -1);\r\n if (addressLine_1 != undefined)\r\n addressLine_comps = addressLine_1.long_name;\r\n let addressLine_2 = data.result.address_components.find(c => c.types.indexOf('route') > -1);\r\n if (addressLine_comps == \"\" && addressLine_2 != undefined)\r\n if (addressLine_comps != addressLine_2.long_name)\r\n addressLine_comps = addressLine_2.long_name;\r\n if (addressLine_comps != \"\" && addressLine_2 != undefined)\r\n if (addressLine_comps != addressLine_2.long_name)\r\n addressLine_comps = addressLine_comps + \" \" + addressLine_2.long_name;;\r\n\r\n let townStr = \"\";\r\n let locality = data.result.address_components.find(c => c.types.indexOf('sublocality_level_1') > -1 || c.types.indexOf('sublocality') > -1 || c.types.indexOf('locality') > -1);\r\n if (locality != undefined)\r\n townStr = locality.long_name;\r\n\r\n let postalStr = \"\";\r\n let postalCode = data.result.address_components.find(c => c.types.indexOf('postal_code') > -1);\r\n if (postalCode != undefined)\r\n postalStr = postalCode.long_name;\r\n\r\n let countryIdInt = \"\";\r\n let country = data.result.address_components.find(c => c.types.indexOf('country') > -1);\r\n if (country != undefined) {\r\n let dbCountry = this.ddlCountries.find(c => c.desc.toLowerCase() == country.long_name.toLowerCase() || c.code.toLowerCase() == country.short_name.toLowerCase());\r\n if (dbCountry != undefined) {\r\n countryIdInt = dbCountry.id;\r\n }\r\n }\r\n if (isPhysical)\r\n this.form.patchValue({\r\n Contact_PhysicalAddress1: addressLine_comps\r\n , Contact_Town: townStr\r\n , Contact_PostalCode: postalStr\r\n , Contact_CountryID: countryIdInt\r\n });\r\n if (!isPhysical)\r\n this.form.patchValue({\r\n Contact_PostalAddress1: addressLine_comps\r\n , Contact_pTown: townStr\r\n , Contact_pPostalCode: postalStr\r\n , Contact_pCountry: countryIdInt\r\n });\r\n });\r\n }\r\n\r\n // hasBusinessType = () => {\r\n // const keys = [1, 2, 5];\r\n\r\n // let hasKey = (keys.find(key => {\r\n // return key == this.id_type_required_ind;\r\n // })) ? true : false;\r\n // if (hasKey) {\r\n // this.form.patchValue({ 'business_type_id': 21 });\r\n // }\r\n // return hasKey;\r\n // }\r\n\r\n validateFields(flag){\r\n // mandatory fields are controlled by 'Validators.required' in initForm()\r\n if (this.form.value.carrier_type_id == 0){\r\n // this.msg.warning(\"Customer Type is required\", \"Carrier Account:\");\r\n // let fieldName:any=this.errorField[this.carrier_type_id];\r\n // this.msg.warning(fieldName, \"Carrier Account:\");\r\n // this.form.controls.carrier_type_id.markAsDirty();\r\n // return false;\r\n const control = this.form.get(\"carrier_type_id\");\r\n control.markAsTouched({ onlySelf: true });\r\n let fieldName:any=this.errorField[\"carrier_type_id\"];\r\n this.msg.warning(fieldName, \"Carrier Account:\");\r\n control.markAsDirty();\r\n return false; \r\n }\r\n\r\n let comFlag:boolean=flag;\r\n Object.keys(this.form.controls).forEach(field => { // {1}\r\n const control = this.form.get(field); // {2}\r\n control.markAsTouched({ onlySelf: true }); // {3}\r\n //console.log('-------'+field);\r\n if(control.invalid && !comFlag){\r\n let fieldName:any=this.errorField[field];\r\n this.msg.warning(fieldName, \"Carrier Account:\");\r\n control.markAsDirty();\r\n comFlag=true;\r\n return false;\r\n }else{\r\n }\r\n });\r\n return true;\r\n }\r\n\r\n validateTaxFrame(){\r\n let tax_no = this.form.get('tax_number');\r\n if(this.is_local_carrier){\r\n\r\n if(this.carrierType===1011 || this.carrierType===1007){ // carrier type \"Other | Partnership - Foreign\" -> display Tax Number, but no validations required\r\n tax_no.clearValidators();\r\n } else { // display and validate\r\n tax_no.setValidators([Validators.required]);\r\n }\r\n\r\n } else {\r\n tax_no.clearValidators();\r\n }\r\n tax_no.updateValueAndValidity();\r\n }\r\n\r\n\r\n // isShowDemographicFrame(typeId) {\r\n // const cType = this.ddlCarrierTypes.find(type => type.id == typeId);\r\n // if (cType) {\r\n // let status = (cType.display_demog_frame && cType.is_local_carrier);\r\n // this.addDemographicValidations(status);\r\n // return true;\r\n // }\r\n // return true;\r\n // }\r\n\r\n validateDemographicFrame(display: boolean) {\r\n if(this.carrierType===1011){ // carrier type \"Other\" -> display Demographics, but enforce no validations\r\n this.addDemographicValidations(false);\r\n return true;\r\n } else { // display and validate according to DB value\r\n this.addDemographicValidations(display);\r\n return true;\r\n }\r\n }\r\n\r\n addDemographicValidations = (isLocal) => {\r\n this.isLocal = isLocal;\r\n let BBBEE = this.form.get('bbbee_status');\r\n let black_ownership_percentage = this.form.get('black_ownership');\r\n let female_ownership_percentage = this.form.get('female_ownership');\r\n let disability_ownership_percentage = this.form.get('disability_ownership');\r\n let youth_ownership_percentage = this.form.get('youth_owner');\r\n let turnover_band = this.form.get('turnover_band');\r\n let BBBEE_cert_expiry_date = this.form.get('bbbee_certficate_date');\r\n let number_of_employees = this.form.get('num_employees');\r\n\r\n if (isLocal && this.form.value['bbbee_status']!='NonCompliant') {\r\n BBBEE.setValidators([Validators.required]);\r\n BBBEE_cert_expiry_date.setValidators([Validators.required]);\r\n black_ownership_percentage.setValidators([Validators.required]);\r\n female_ownership_percentage.setValidators([Validators.required]);\r\n disability_ownership_percentage.setValidators([Validators.required]);\r\n youth_ownership_percentage.setValidators([Validators.required]);\r\n turnover_band.setValidators([Validators.required]);\r\n number_of_employees.setValidators([Validators.required]);\r\n } else {\r\n BBBEE.clearValidators();\r\n BBBEE_cert_expiry_date.clearValidators();\r\n black_ownership_percentage.clearValidators();\r\n female_ownership_percentage.clearValidators();\r\n disability_ownership_percentage.clearValidators();\r\n youth_ownership_percentage.clearValidators();\r\n turnover_band.clearValidators();\r\n number_of_employees.clearValidators();\r\n }\r\n\r\n BBBEE.updateValueAndValidity();\r\n BBBEE_cert_expiry_date.updateValueAndValidity();\r\n black_ownership_percentage.updateValueAndValidity();\r\n female_ownership_percentage.updateValueAndValidity();\r\n disability_ownership_percentage.updateValueAndValidity();\r\n youth_ownership_percentage.updateValueAndValidity();\r\n turnover_band.updateValueAndValidity();\r\n number_of_employees.updateValueAndValidity();\r\n }\r\n\r\n changeBBEE(bbeeStatus){\r\n\r\n this.changeBasicContactInfoParm();\r\n\r\n let BBBEE_cert_expiry_date = this.form.get('bbbee_certficate_date');\r\n let black_ownership_percentage = this.form.get('black_ownership');\r\n let female_ownership_percentage = this.form.get('female_ownership');\r\n let disability_ownership_percentage = this.form.get('disability_ownership');\r\n let youth_ownership_percentage = this.form.get('youth_owner');\r\n let turnover_band = this.form.get('turnover_band');\r\n let number_of_employees = this.form.get('num_employees');\r\n\r\n if(!this.is_local_carrier ||\r\n this.carrierType===1011 ||\r\n this.form.value['bbbee_status']=='NonCompliant')\r\n {\r\n BBBEE_cert_expiry_date.clearValidators();\r\n black_ownership_percentage.clearValidators();\r\n female_ownership_percentage.clearValidators();\r\n disability_ownership_percentage.clearValidators();\r\n youth_ownership_percentage.clearValidators();\r\n turnover_band.clearValidators();\r\n number_of_employees.clearValidators();\r\n }\r\n\r\n BBBEE_cert_expiry_date.updateValueAndValidity();\r\n black_ownership_percentage.updateValueAndValidity();\r\n female_ownership_percentage.updateValueAndValidity();\r\n disability_ownership_percentage.updateValueAndValidity();\r\n youth_ownership_percentage.updateValueAndValidity();\r\n turnover_band.updateValueAndValidity();\r\n number_of_employees.updateValueAndValidity();\r\n }\r\n\r\n resetForm(){\r\n // this.form.patchValue({\r\n // country_id: ''\r\n // , registered_name: null\r\n // , trading_name: null\r\n // , registration_number: null\r\n // , id_type_ind: 0\r\n // , id_country_id: null\r\n // , id_number: null\r\n // , sameAsloggeIn: false\r\n // , first_name: null\r\n // , last_name: null\r\n\r\n // // Contact Details\r\n // , Contact_is_active: null\r\n // , Contact_FirstName: ''\r\n // , Contact_LastName: ''\r\n // , Contact_EmailAddress: ''\r\n // , Contact_MobileNumber: ''\r\n // , Contact_CommunicationPreference: ''\r\n // , Contact_PhysicalAddress1: ''\r\n // , Contact_PhysicalAddress2:''\r\n // , Contact_PhysicalAddress3: ''\r\n // , Contact_Town: ''\r\n // , Contact_PostalCode: ''\r\n // , Contact_CountryID: ''\r\n // , Contact_FaxNumber: ''\r\n // , Contact_CompanyEmail: ''\r\n // , Contact_PostalAddress1: ''\r\n // , Contact_PostalAddress2: ''\r\n // , Contact_PostalAddress3: ''\r\n // , Contact_pTown:''\r\n // , Contact_pPostalCode: ''\r\n\r\n // //Demographics\r\n // , black_ownership: ''\r\n // , female_ownership: ''\r\n // , disability_ownership: ''\r\n // , youth_owner:''\r\n // , turnover_band: ''\r\n // , bbbee_certficate_date: ''\r\n // , num_employees: ''\r\n // });\r\n this.initFormData();\r\n this.setFormData();\r\n this.isBasicContactInfo = true;\r\n this.form.markAsPristine();\r\n}\r\n}\r\n\r\n","
\r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n \r\n\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n\r\n \r\n\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n\r\n \r\n\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n {{place.description}}\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n \r\n\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n {{place.description}}\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n \r\n\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n \r\n \r\n \r\n\r\n
\r\n\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ApplicationService } from 'app/services/application.service';\r\nimport { StatusService } from 'app/services/status.service';\r\nimport { AuthWebService } from 'app/services/authweb.service';\r\nimport { UtilityServiceService } from 'app/services/utility-service.service';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { Router } from '@angular/router';\r\nimport { CompliancereturnsService } from 'app/services/compliancereturns.service';\r\nimport { CalendarService } from './../.././services/calendar.service';\r\nimport { environment } from '../../../environments/environment';\r\n\r\n\r\n@Component({\r\n selector: 'app-carrier-compliance-list',\r\n templateUrl: './carrier-compliance-list.component.html',\r\n styleUrls: ['./carrier-compliance-list.component.css']\r\n})\r\nexport class CarrierComplianceListComponent implements OnInit {\r\n\r\n pageSize: number = 10;\r\n count: number = 0;\r\n isEmpty: boolean = false;\r\n compliancelist: any;\r\n calendarList: any = [];\r\n carrierListFilter: any = [];\r\n lastSixMonths: any = [];\r\n selectedTab = 0;\r\n AllCompliances:any;\r\n DueCompliances:any;\r\n OverDueAllCompliances:any;\r\n constructor(private router: Router, public utility: UtilityServiceService, public complianceservice: CompliancereturnsService, public _calandarService: CalendarService) { }\r\n\r\n ngOnInit() {\r\n // this._calandarService.getFirstMonths().subscribe(data => {\r\n // this.calendarList = data;\r\n // const dt = new Date();\r\n // const thisMothCal = this.calendarList.find(x => dt.getMonth() + 1 == new Date(x.calendar_date).getMonth() + 1 && dt.getFullYear() == new Date(x.calendar_date).getFullYear());\r\n // this.selectMonth(thisMothCal.id);\r\n // this.lastSixMonths = this.calendarList.slice(Math.max(this.calendarList.length - 6, 0));\r\n //console.log( this.lastSixMonths);\r\n // });\r\n console.log(environment.authWebApi.userData);\r\n this.getAllCompliances(environment.authWebApi.userData.User.ID);\r\n }\r\n\r\n getAllCompliances(id)\r\n {\r\n console.log(id);\r\n\r\n this.complianceservice.GetAllComplianceRecords(id).subscribe(results => {\r\n console.log(results);\r\n \r\n if(results != null || results != undefined)\r\n {\r\n this.compliancelist = results;\r\n\r\n }\r\n });\r\n }\r\n\r\n clickCarrier(item){\r\n let url: any = \"carrier/compliance/return/list/\" + item.carrier_id + \"/\" + item.calendar_id;\r\n this.router.navigate([url]);\r\n }\r\n\r\n onChange(): void {\r\n\r\n }\r\n onSearch(): void {\r\n\r\n }\r\n onReset(): void {\r\n\r\n }\r\n\r\n // checkThisMonth(calendar) {\r\n // const dateConv = new Date(calendar.calendar_date);\r\n // const dt = new Date();\r\n // if (dt.getMonth() + 1 == dateConv.getMonth() + 1 && dt.getFullYear() == dateConv.getFullYear()) {\r\n // return true;\r\n // }\r\n // return false;\r\n // }\r\n\r\n // selectMonth(item: any) {\r\n // this.carrierListFilter = [];\r\n // this.complianceservice.getcarrierlist(item).subscribe((data: any) => {\r\n // if (data != undefined || data != null) {\r\n // this.carrierlist = data;\r\n // this.carrierlist.forEach(element => {\r\n // if (!this.carrierListFilter.some(x => x.CarrierId == element.carrier_id))\r\n // this.carrierListFilter.push({ CarrierId: element.carrier_id, CarrierName: element.name });\r\n // });\r\n // //console.log(this.carrierListFilter);\r\n // }\r\n\r\n // //console.log(data);\r\n // this.carrierlist = data;\r\n // })\r\n\r\n\r\n // }\r\n}\r\n","
\r\n \r\n
\r\n\r\n
\r\n\r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n

Annual Compliance Certificates\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
you have no permits that have annual compliance.
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n Account Number: {{ carr.account_number }}\r\n \r\n \r\n \r\n
{{ carr.account_name }}
\r\n
records: {{carr.compliance_records?.length}}
\r\n
\r\n
0\">\r\n
\r\n
\r\n \r\n \r\n \r\n Permit:{{ comp.permit_num }} \r\n \r\n
\r\n
Compliance due date: {{comp.compliant_duedate | date : 'dd/MM/yyyy'}}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
Compliance Num \r\n
\r\n
Permit Type \r\n
\r\n
Route \r\n
\r\n \r\n
Vehicle \r\n
\r\n\r\n
\r\n \r\n
\r\n
{{comp.id}}
\r\n
{{comp.permit_type}}
\r\n
{{comp.route}}
\r\n
{{comp.VN_num}}
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
Detail ID\r\n
\r\n
Compliance Year\r\n
\r\n
Compliance Status\r\n
\r\n
Submission Date\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
{{item.id}}
\r\n
{{item.compliance_year}}
\r\n
{{item.compliance_status}}
\r\n
{{item.submission_date | date : 'dd/MM/yyyy'}}
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
wallet 2 content
\r\n
wallet 3 content
\r\n
\r\n
\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ApplicationService } from 'app/services/application.service';\r\nimport { StatusService } from 'app/services/status.service';\r\nimport { AuthWebService } from 'app/services/authweb.service';\r\nimport { UtilityServiceService } from 'app/services/utility-service.service';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { ActivatedRoute, Params, Router } from '@angular/router';\r\nimport { CompliancereturnsService } from 'app/services/compliancereturns.service';\r\nimport { CalendarService } from '../../services/calendar.service';\r\nimport { environment } from '../../../environments/environment';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'app-compliance-application',\r\n templateUrl: './compliance-application.component.html',\r\n styleUrls: ['./compliance-application.component.css']\r\n})\r\nexport class ComplianceApplicationComponent implements OnInit {\r\n\r\n pageSize: number = 10;\r\n count: number = 0;\r\n processHeader = null;\r\n isEmpty: boolean = false;\r\n carrierpermitlist: any;\r\n carrierid: number;\r\n calendarid: number =0;\r\n calendarList: any = [];\r\n lastSixMonths: any = [];\r\n carrierNameNew: string = \"\";\r\n viewPage: boolean = false;\r\n permitCode: string = \"\";\r\n permitNumber: string = \"\";\r\n permit : any;\r\n showPage: boolean;\r\n view: number = 0;\r\n dataCntrl: any = {complianceID: -1, carrierID: -1,appID: -1,compID:-1 ,permittypeSelected: false, selectedtype: '', disableTypes: false, processStarted: false, currentTab: '', formValid: false, isViewEditControl: false, carrier: {}, application: {}, permit: {}, permittype: {}, vehicles: [], permitTypesDocLinks: [] };\r\n viewAppId:any=null;\r\n viewPermitCount:any=null;\r\n Compliance_PermitType_Id:any = 0;\r\n isView : boolean = false;\r\n \r\n constructor(private activateRouter:ActivatedRoute,private complianceService: CompliancereturnsService ,private route:Router, public applicationService: ApplicationService,public utility: UtilityServiceService,private router: Router, public complianceservice: CompliancereturnsService, public _calandarService: CalendarService, private activeRoute: ActivatedRoute) { }\r\n\r\n ngOnInit() {\r\nthis.activeRoute.queryParams.subscribe(params => {\r\n // Defaults to 0 if no query param provided.\r\n \r\n this.view = +params['view'] || 0;\r\n this.dataCntrl.carrierID = params['id'];\r\n this.dataCntrl.appID = params['appID'];\r\n this.dataCntrl.compID = params['compID'];\r\n this.isView = params['isView'];\r\n this.getApplicationDetails(this.dataCntrl.compID);\r\n//alert(this.dataCntrl.compID);\r\n this.dataCntrl.application.id = params['appID'];\r\n \r\n // if (environment.authWebApi.userData.Roles.find(p => p.Code == 'ADMIN')) {\r\n \r\n this.complianceService.GetComplianceById(this.dataCntrl.compID ).subscribe((compliance: any)=>{\r\n\r\n this.permitNumber = compliance.permit_num;\r\n this.applicationService.getByIdForComplianceApp(this.dataCntrl.appID, this.permitNumber).subscribe((data: any) => {\r\n \r\n this.applicationService.dataControlTrackChanges = data;\r\n this.dataCntrl.application = data;\r\n this.carrierNameNew = data.carrier.name;\r\n this.permitCode = data.permit_type.Compliance_code;\r\n \r\n this.Compliance_PermitType_Id = data.permit_type.Compliance_PermitType_Id;\r\n console.log(data)\r\n localStorage.setItem('accNum', data.carrier.carrier_code);\r\n localStorage.setItem('addressTown', data.carrier.physical_address_town);\r\n localStorage.setItem('addressPostalCode', data.carrier.physical_post_code);\r\n \r\n // alert(JSON.stringify(data.permit[0]));\r\n //alert(JSON.stringify(data));\r\n\r\n \r\n if(localStorage.getItem(\"permitNum\")!=undefined && localStorage.getItem(\"permitNum\")!=null){\r\n let permitCount:any=parseInt(localStorage.getItem(\"permitNum\"));\r\n this.viewPermitCount=permitCount;\r\n \r\n if(permitCount>1){\r\n this.viewAppId=params['id'];\r\n }else{\r\n if(data.permits.permit_num!=null && data.permits.permit_num>0){\r\n this.viewAppId=data.permits.permit_num;\r\n }else{\r\n this.viewAppId=params['id'];\r\n }\r\n }\r\n this.viewAppId= data.permits.permit_num;\r\n }\r\n // this.getSavedVehicleByPermit(this.dataCntrl.application.id);\r\n this.dataCntrl.carrierID = data.carrier_id;\r\n this.dataCntrl.permit_type_id = this.Compliance_PermitType_Id;\r\n this.dataCntrl.permits = [];\r\n this.dataCntrl.permits.push(data.permits.find(x=>x.id = compliance.permit_id));\r\n this.dataCntrl.permittype = data.permit_type;\r\n if (environment.authWebApi.userData.Roles.find(p => p.Code == 'ADMIN')) {\r\n\r\n //console.log('This is process Admin')\r\n this.dataCntrl.currentTab = 'permitype';\r\n // this.ctrlData.currentTab = 'permitype';\r\n //this.getCarrier();\r\n this.showPage = true;\r\n\r\n }\r\n });\r\n\r\n //}\r\n \r\n console.log(this.dataCntrl.application.id);\r\n\r\n this.dataCntrl.compID = params['compID'];\r\n}); \r\n});\r\nthis.utility.activeTab = 0;\r\n\r\nif (this.dataCntrl.complianceDetail != null || this.dataCntrl.complianceDetail != undefined) {\r\n this.utility.activeTab = 0;\r\n this.showPage = true;\r\n this.utility.confirmCtrl = true;\r\n \r\n} else {\r\n \r\n this.showPage = true;\r\n}\r\nthis.onActive();\r\n this._calandarService.getFirstMonths().subscribe(data => {\r\n this.calendarList = data;\r\n const dt = new Date();\r\n const thisMothCal = this.calendarList.find(x => dt.getMonth() + 1 == new Date(x.calendar_date).getMonth() + 1 && dt.getFullYear() == new Date(x.calendar_date).getFullYear());\r\n this.lastSixMonths = this.calendarList.slice(Math.max(this.calendarList.length - 6, 0));\r\n\r\n this.activeRoute.params.subscribe((params: Params) => {\r\n\r\n this.carrierid = params['carrierid'];\r\n this.calendarid = params['calendarid'];\r\n });\r\n \r\n });\r\n\r\n \r\n }\r\n getApplicationDetails(id)\r\n {\r\n this.complianceService.GetComplianceById(id).subscribe(data => {\r\n this.permitCode = data['code'];\r\n });\r\n }\r\n orderTabSequence = (isPlus, seq) => {\r\n return (isPlus) ? seq : seq;\r\n }\r\n onActive() {\r\n //this.iconCtrl = key;\r\n this.applicationService.getTab().subscribe(x => {\r\n //console.log(x);\r\n if (x >= 0) {\r\n this.utility.activeTab = x;\r\n }\r\n\r\n })\r\n }\r\n onActive1(tabNum) {\r\n \r\n this.applicationService.setTab(tabNum);\r\n this.onActive();\r\n\r\n\r\n \r\n if(tabNum==1){\r\n if(this.router.url.indexOf('edit')>0){\r\n \r\n }\r\n }\r\n \r\n this.applicationService.setTab(tabNum);\r\n this.utility.confirmCtrl = true;\r\n console.log(this.dataCntrl);\r\n this.onActive();\r\n\r\n } \r\n onChange(): void {\r\n\r\n }\r\n onSearch(): void {\r\n\r\n }\r\n onReset(): void {\r\n\r\n }\r\n\r\n}\r\n","\r\n\r\n\r\n
\r\n\r\n
\r\n
\r\n

{{processHeader}}Compliance Certificate for {{carrierNameNew}}. Permit: {{permitCode}} - {{permitNumber}}\r\n

\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { ApplicationService } from 'app/services/application.service';\r\nimport { Params, Router, ActivatedRoute } from '@angular/router';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\nimport { ComplianceLegalComponent } from 'app/carrier-account/compliance-legal/compliance-legal.component';\r\nimport { CompliancereturnsService } from 'app/services/compliancereturns.service';\r\nimport { DatePipe } from '@angular/common'\r\nimport * as internal from 'assert';\r\n\r\n@Component({\r\n selector: 'app-compliance-details',\r\n templateUrl: './compliance-details.component.html',\r\n styleUrls: ['./compliance-details.component.css']\r\n})\r\nexport class ComplianceDetailsComponent implements OnInit {\r\n @Input() dataCntrl: any;\r\n compID: any = null;\r\n isLoading = false;\r\n caConfirmObj: any = {};\r\n message: any;\r\n oldAppId:any=null;\r\n appData:any=null;\r\n duration:any=\"\";\r\n permitType:any=\"\";\r\n permitInfo:any=\"\";\r\n complianceDetails: any;\r\n profileForm: FormGroup;\r\n currentComplianceDetail :any;\r\n isView : boolean = false;\r\n\r\n constructor(\r\n private applicationService: ApplicationService,private complianceService: CompliancereturnsService ,private router: Router, private activeRoute: ActivatedRoute, public datepipe: DatePipe) { }\r\n\r\n ngOnInit() {\r\n //console.log('Carrier');\r\n console.log( this.dataCntrl.compID + \"detail\");\r\n \r\n this.activeRoute.params.subscribe((params: Params) => {\r\n // this.dataCntrl.application.id = params['appID'];\r\n //console.log(params['id']);\r\n \r\n this.compID = this.dataCntrl.compID;\r\n \r\n \r\n });\r\n this.profileForm = new FormGroup({\r\n accNum: new FormControl(''),\r\n accName: new FormControl(''),\r\n adress1: new FormControl(''),\r\n adress2: new FormControl(''),\r\n adress3: new FormControl(''),\r\n permitNum: new FormControl(''),\r\n issueNum: new FormControl(''),\r\n permitType: new FormControl(''),\r\n faceVNum: new FormControl(''),\r\n startDate: new FormControl(''),\r\n expiryDate: new FormControl(''),\r\n duration: new FormControl(''),\r\n status: new FormControl(''),\r\n issueDate: new FormControl(''),\r\n route: new FormControl(''),\r\n passengers: new FormControl(''),\r\n registration: new FormControl(''),\r\n vin: new FormControl('')\r\n });\r\n // this.activeRoute.params.subscribe((params: Params) => {\r\n // this.dataCntrl.application.id = params['appID'];\r\n // //console.log(params['id']);\r\n \r\n \r\n // });\r\n this.getApplicationDetails(this.dataCntrl.compID);\r\n // if(localStorage.getItem(\"oldAppId\")!=undefined && localStorage.getItem(\"oldAppId\")!=null){\r\n // this.oldAppId=localStorage.getItem(\"oldAppId\");\r\n // this.getApplicationDetails(this.dataCntrl.compID);\r\n // }\r\n }\r\n\r\n onSubmit() {\r\n // TODO: Use EventEmitter with form value\r\n console.log(this.profileForm.value);\r\n }\r\n \r\n getApplicationDetails(compID){\r\n this.isLoading= true;\r\n this.complianceService.GetComplianceById(compID).subscribe(data => {\r\n //console.log(this.dataCntrl.accNum);\r\n this.currentComplianceDetail = data['complianceDetails'];\r\n var num = data['accountNum'];\r\n var town = data['addressTown'];\r\n var postalCode = data['postalCode'];\r\n if(data != null)\r\n {\r\n this.profileForm.controls['accNum'].setValue(num);\r\n this.profileForm.controls['accName'].setValue(data['carrier_name']);\r\n this.profileForm.controls['adress1'].setValue(data['physical_address_1']);\r\n this.profileForm.controls['adress2'].setValue(town);\r\n this.profileForm.controls['adress3'].setValue(postalCode);\r\n this.profileForm.controls['permitNum'].setValue(data['permit_num']);\r\n this.profileForm.controls['faceVNum'].setValue(data['face_value_num']);\r\n // this.profileForm.controls['issueDate'].setValue(data['application_id']);\r\n this.profileForm.controls['issueNum'].setValue(data['permit_issue_number']);\r\n this.profileForm.controls['permitType'].setValue(data['permit_type']);\r\n this.profileForm.controls['startDate'].setValue(this.datepipe.transform(data['date_valid_from'], 'dd/MM/yyyy'));\r\n this.profileForm.controls['expiryDate'].setValue(this.datepipe.transform(data['date_valid_to'], 'dd/MM/yyyy'));\r\n this.profileForm.controls['duration'].setValue(data['duration']);\r\n this.profileForm.controls['status'].setValue(data['status_description']);\r\n this.profileForm.controls['route'].setValue(data['route_summary']);\r\n this.profileForm.controls['passengers'].setValue(data['number_passengers']);\r\n this.profileForm.controls['registration'].setValue(data['registration_number']);\r\n this.profileForm.controls['vin'].setValue(data['vin']);\r\n this.isLoading = false;\r\n }\r\n });\r\n this.isLoading = false;\r\n }\r\n\r\n onActive(tab){\r\n\r\n var compDetailId = 0; \r\n if(this.currentComplianceDetail != null && this.currentComplianceDetail.compliance_status != 2) //If status NOT 'Resolved'\r\n {\r\n compDetailId = this.currentComplianceDetail.id;\r\n }\r\n \r\n this.complianceService.createComplianceCertificateTransaction( this.dataCntrl.compID, compDetailId).subscribe(res => {\r\n console.log(res);\r\n this.dataCntrl.complianceDetail = res;\r\n this.applicationService.setTab(tab);\r\n });\r\n \r\n }\r\n \r\n continueRoute() {\r\n if (this.router.url.indexOf('change') > 0) {\r\n this.activeRoute.params.subscribe((params: Params) => {\r\n this.dataCntrl.application.id = params['appID'];\r\n const ctrlType = params['ctrlType'];\r\n if (ctrlType != 'vehicle' && this.router.url.indexOf('correction') < 0) {\r\n return this.applicationService.setTab(3);\r\n }\r\n if (ctrlType === 'vehicle') {\r\n return this.applicationService.setTab(2);\r\n }\r\n if (this.router.url.indexOf('correction') > 0) {\r\n return this.applicationService.setTab(1);\r\n }\r\n });\r\n\r\n }\r\n if (this.router.url.indexOf('duplicate') > 0)\r\n return this.applicationService.setTab(5);\r\n }\r\n}\r\n","
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n

Carrier Details

\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n

Permit Details

\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n

Vehicle Details

\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Continue\r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ApplicationService } from 'app/services/application.service';\r\nimport { StatusService } from 'app/services/status.service';\r\nimport { AuthWebService } from 'app/services/authweb.service';\r\nimport { UtilityServiceService } from 'app/services/utility-service.service';\r\nimport { ActivatedRoute, Params, Router } from '@angular/router';\r\nimport { CompliancereturnsService } from 'app/services/compliancereturns.service';\r\nimport { CalendarService } from '../../services/calendar.service';\r\nimport { ToastrService } from \"ngx-toastr\";\r\nimport { CarrierService } from 'app/services/carrier.service';\r\nimport { accounting } from 'accounting';\r\n\r\n@Component({\r\n selector: 'app-compliance-return-list',\r\n templateUrl: './compliance-return-list.component.html',\r\n styleUrls: ['./compliance-return-list.component.css']\r\n})\r\nexport class ComplianceReturnListComponent implements OnInit {\r\n\r\n pageSize: number = 10;\r\n \r\n count: number = 0;\r\n isEmpty: boolean = false;\r\n carrierpermitlist: any;\r\n carrierid: number;\r\n calendarid: number =0;\r\n isView: boolean = false;\r\n applicationId: number = 0;\r\n calendarList: any = [];\r\n lastSixMonths: any = [];z\r\n page: number = 0;\r\n isLoading: boolean = false;\r\n Carrier : any;\r\n \r\n constructor(public utility: UtilityServiceService,private router: Router, public complianceservice: CompliancereturnsService, public _calandarService: CalendarService, private activeRoute: ActivatedRoute, private toastr: ToastrService,private carrierService : CarrierService) { }\r\n\r\n ngOnInit() {\r\n\r\n // this._calandarService.getFirstMonths().subscribe(data => {\r\n // this.calendarList = data;\r\n // const dt = new Date();\r\n // const thisMothCal = this.calendarList.find(x => dt.getMonth() + 1 == new Date(x.calendar_date).getMonth() + 1 && dt.getFullYear() == new Date(x.calendar_date).getFullYear());\r\n // this.lastSixMonths = this.calendarList.slice(Math.max(this.calendarList.length - 6, 0));\r\n\r\n \r\n \r\n \r\n // });\r\n this.activeRoute.params.subscribe((params: Params) => {\r\n\r\n this.carrierid = params['carrierid'];\r\n this.calendarid = params['calendarid'];\r\n this.isView = params['action'];\r\n this.applicationId = params['appId'];\r\n this.getCarrier(this.carrierid,);\r\n this.getCarrierList(this.carrierid, this.calendarid);\r\n });\r\n \r\n }\r\n\r\n\r\n onChange(): void {\r\n\r\n }\r\n onSearch(): void {\r\n\r\n }\r\n onReset(): void {\r\n\r\n }\r\n\r\n viewComplianceApplication(item)\r\n {\r\n this.router.navigate(['/carrier/compliance/application'] ,{ queryParams: { id:item.carrier_id,appID:item.application_id, compID:item.id,typeId:item.permit_type_id, isView:this.isView} });\r\n }\r\n\r\n showDetails(item){\r\n\r\n if(item.compliance_status.indexOf('Submitted') > 0)\r\n {\r\n return this.toastr.warning('Your Annual Compliance Application is being processed, you will be notified once it is finalised.');\r\n }\r\n else\r\n if(item.compliance_status_id == 3)\r\n {\r\n return this.toastr.warning('Your Annual Compliance Application is being processed, you will be notified once it is finalised.');\r\n }\r\n \r\n var due = new Date(item.compliant_duedate);\r\n var today = new Date();\r\n var dateDif = this.dayDiff(today, due);\r\n \r\n if(due > today && dateDif > 30 && item.compliance_status_id != 4 && item.compliance_status_id != 3)\r\n {\r\n return this.toastr.warning('Permit is still Compliant');\r\n }\r\n else{\r\n this.router.navigate(['/carrier/compliance/application'] ,{ queryParams: { id:item.carrier_id,appID:item.application_id, compID:item.id,typeId:item.permit_type_id} });\r\n }\r\n } \r\n\r\n dayDiff(d1:Date, d2:Date)\r\n {\r\n var diff = Math.abs(d1.getTime() - d2.getTime());\r\n var diffDays = Math.ceil(diff / (1000 * 3600 * 24)); \r\n return diffDays;\r\n }\r\n\r\n getCarrier(carrierid)\r\n {\r\n this.carrierService.getById(carrierid).subscribe(carrier=>{\r\n this.Carrier = carrier;\r\n });\r\n }\r\n\r\n formatCurrency(value) {\r\n return accounting.formatMoney(value, 'R', 2, ' ', '.');\r\n }\r\n\r\n getCarrierList(carrierid , calendarid){\r\n this.isLoading = true;\r\n this.complianceservice.getcarrierpermitlist(carrierid ,calendarid).subscribe((data: any) => {\r\n if (data != undefined || data != null) {\r\n console.log(\"int data\" + JSON.stringify(data));\r\n\r\n this.carrierpermitlist = this.isView ? data.filter(x=>x.application_id==this.applicationId) :data;\r\n this.isLoading = false;\r\n\r\n \r\n }\r\n })\r\n }\r\n\r\n goBack()\r\n {\r\n if(this.isView){\r\n this.router.navigate(['carrier/permit/application/' + this.carrierid]);\r\n }\r\n else{\r\n this.router.navigate(['carrier/accounts/']);\r\n }\r\n }\r\n}\r\n","
\r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n

Annual Compliance Certificates for Account: {{Carrier.name}}\r\n

\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
Account NumberAccount NameTrading NameRegistration NumberAccount Balance
{{Carrier.carrier_code}}{{Carrier.name}}{{Carrier.trading_name}}{{Carrier.registration_number}}{{formatCurrency(Carrier.account_balance * -1)}}
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
CERTIFICATES
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
you have no permits that have annual compliance.
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 10\">\r\n \r\n \r\n \r\n \r\n 10\" style=\"padding-left:0px;margin-left:0px;\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n
Permit Num \r\n Permit Type \r\n Route \r\n Vehicle \r\n Compliance due date \r\n Status\r\n Action \r\n
{{item.permit_num}}{{item.permit_type}} {{item.route}}{{item.VN_num}}{{item.compliant_duedate | date : 'dd/MM/yyyy'}}{{item.compliance_status}}\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n No carrier compliance found.\r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
","import { Component, ElementRef, Input, OnInit, ViewChild } from \"@angular/core\";\r\nimport { ActivatedRoute, Params, Router } from \"@angular/router\";\r\nimport { ApplicationService } from \"app/services/application.service\";\r\nimport { CarrierService } from \"app/services/carrier.service\";\r\nimport { PermitTypeDocumentService } from \"app/services/permit-type-document.service\";\r\nimport { RouteService } from \"app/services/route.service\";\r\nimport { UtilityServiceService } from \"app/services/utility-service.service\";\r\nimport { DatePipe } from '@angular/common';\r\nimport { VehicleService } from \"app/services/vehicle.service\";\r\nimport { environment } from \"environments/environment\";\r\nimport { accounting } from 'accounting';\r\nimport { PermitService } from \"app/services/permit.service\";\r\nimport { PermitTypeService } from \"app/services/permit-type.service\";\r\nimport { CountryService } from \"app/services/country.service\";\r\nimport { PopupService } from \"app/services/shared/popup.service\";\r\nimport { DomSanitizer } from \"@angular/platform-browser\";\r\nimport { CorspdcService } from \"app/services/corspdc.service\";\r\nimport { ToastrService } from \"ngx-toastr\";\r\nimport { VehicleMakeService } from \"app/services/vehicle-make.service\";\r\nimport { AuthWebService } from \"app/services/authweb.service\";\r\nimport { CarrierAccountService } from \"app/services/carrier-account.service\";\r\nimport { AnyMxRecord } from \"dns\";\r\nimport { CompliancereturnsService } from \"app/services/compliancereturns.service\";\r\nimport { ConfirmDialogService } from \"app/services/shared/confirm-dialog/confirm-dialog.service\";\r\nvar jsPDF = require('jspdf');\r\nrequire('jspdf-autotable');\r\ndeclare var $;\r\n\r\n@Component({\r\n selector: 'c-confirmation',\r\n templateUrl: './c-confirmation.component.html',\r\n styleUrls: ['./c-confirmation.component.css'],\r\n providers: [PermitTypeDocumentService, RouteService]\r\n })\r\n\r\n export class CConfirmationComponent implements OnInit {\r\n public isLoading = false;\r\n helphtml;\r\n linkhtml;\r\n @Input() dataCntrl: any;\r\n userDetails: any = null;\r\n totalFee: any = \"\";\r\n termsFlag: boolean = false;\r\n public pageload = false;\r\n\r\n enabledBtnsFlag: boolean = false;\r\n @ViewChild('content', { static: true }) content: ElementRef;\r\n status_id: number;\r\n email_body = \"\";\r\n decl_date = new Date();\r\n vehicles: any = [];\r\n lineTotal: any =\"\";\r\n isProcess: boolean = true;\r\n submissionAmt: any = 0;\r\n paidAmt: any = 0;\r\n invoiceNumber: any = \"\";\r\n invoiceRes: any = null;\r\n dueAmt: any = 0;\r\n chargeInd: any = 0;\r\n renewCrId: any = \"\";\r\n renewFlag: boolean = false;\r\n country\r\n linkedDocs: any = [];\r\n listvehicles: any = [];\r\n myLoader: boolean = false;\r\n list_vehicle_make: any;\r\n selectedVMake: any;\r\n ownRoutes: any = [];\r\n count: any = 0;\r\n carrier_account_id: any = 0;\r\n debtorAccountId: any;\r\n accBalance: any = 0;\r\n permitRenewal: boolean = false;\r\n hasCredit: boolean =false;\r\n inTransaction: boolean= false;\r\n enablePayment: boolean= false;\r\n permitStatus1: number;\r\n permitStatus2: number;\r\n permitStatus6: number;\r\n permitStatus4: number;\r\n permitStatus7: number;\r\n permitStatus10: number;\r\n permitStatus13: number;\r\n permitStatus14: number;\r\n \r\n branch: any = \"X\";\r\n message: any = \"Processing. Please wait...\";\r\n \r\n ptype: any = null;\r\n ptypeDays: any = null;\r\n ptypeMonth: any = null;\r\n ptypeYears: any = null;\r\n isAmmendRoute:boolean=false;\r\n isCompletePayment: boolean=false; \r\n newStatus: number;\r\n permit_Type:any;\r\n permit_fee : any;\r\n application_fee : any;\r\n applicationId : any;\r\n Compliance_PermitType_Id:any = 0;\r\n isView : boolean = false;\r\n //permTypeToUse : any;\r\n @Input('isAnnualCompliance') isAnnualCompliance : boolean = false;\r\n\r\n constructor(private sanitizer: DomSanitizer,private complianceService: CompliancereturnsService, private showModal: PopupService, private toastr: ToastrService,\r\n private applicationService: ApplicationService, public utility: UtilityServiceService, private permitService: PermitService,\r\n private router: Router, private vehicleService: VehicleService, private vehicleMakeService: VehicleMakeService,\r\n private carrierService: CarrierService, private crspdService: CorspdcService, private routeService: RouteService,\r\n private activeRoute: ActivatedRoute,\r\n // public currformat: CurrencyFormat,\r\n private authWebService: AuthWebService,\r\n private countryService: CountryService,\r\n private service: PermitTypeDocumentService,\r\n private carrieraccountserver: CarrierAccountService,\r\n private datePipe: DatePipe, \r\n private permitSevc: PermitService,private permittypeService: PermitTypeService,private confirmDialogService: ConfirmDialogService) {}\r\n\r\n async ngOnInit(){\r\n //alert(this.dataCntrl.compID);\r\n //this.disbledBtn();\r\n this.isView = this.router.url.indexOf('isView') > 0;\r\n\r\n this.userDetails = environment.authWebApi.userData.User;\r\n console.log(this.userDetails)\r\n this.dataCntrl.application.id = this.dataCntrl.appID;\r\n \r\n this.myLoader = true;\r\n this.activeRoute.params.subscribe((params: Params) => {\r\n this.dataCntrl.carrierID = params['carrierid'];\r\n // this.calendarid = params['calendarid'];\r\n });\r\n this.toastr.clear();\r\n this.setHTMLDATA();\r\n //await this.getCarrier();\r\n \r\n if (environment.authWebApi.systemData != null && environment.authWebApi.systemData.Configurations != null) {\r\n this.permitStatus1 = environment.authWebApi.systemData.Configurations.find(p => p.Code == 'PermitStatus1').Value;\r\n this.permitStatus2 = environment.authWebApi.systemData.Configurations.find(p => p.Code == 'PermitStatus2').Value;\r\n this.permitStatus4 = environment.authWebApi.systemData.Configurations.find(p => p.Code == 'PermitStatus4').Value;\r\n this.permitStatus6 = environment.authWebApi.systemData.Configurations.find(p => p.Code == 'PermitStatus6').Value;\r\n this.permitStatus7 = environment.authWebApi.systemData.Configurations.find(p => p.Code == 'PermitStatus7').Value;\r\n this.permitStatus10 = environment.authWebApi.systemData.Configurations.find(p => p.Code == 'PermitStatus10').Value;\r\n this.permitStatus13 = environment.authWebApi.systemData.Configurations.find(p => p.Code == 'PermitStatus13').Value;\r\n this.permitStatus14 = environment.authWebApi.systemData.Configurations.find(p => p.Code == 'PermitStatus14').Value;\r\n }\r\n this.userDetails = environment.authWebApi.userData.User;\r\n this.isCompletePayment = this.router.url.indexOf('completepayment') > 0\r\n if (this.isCompletePayment == true) {\r\n this.utility.confirmCtrl = false\r\n }\r\n this.activeRoute.params.subscribe(async (params: Params) => {\r\n if (params['type']) {\r\n this.renewFlag = true;\r\n this.renewCrId = params['crId'];\r\n }\r\n if(params['ctrlType']=='true'){\r\n this.isAmmendRoute=true;\r\n this.getOldStartDate(); // BUG : 121\r\n }\r\n if (this.dataCntrl.application.id == null || this.dataCntrl.application.id == undefined) {\r\n this.dataCntrl.application.id = params['id'];\r\n } else {\r\n this.dataCntrl.application.id = this.dataCntrl.permits[0].application_id;\r\n }\r\n await this.getApplication();\r\n await this.getCompliancePermitType();\r\n await this.getVehicleMake();\r\n await this.getSavedVehicleByPermit();\r\n \r\n //this.getCarrier();\r\n \r\n \r\n });\r\n this.CheckConfirmDetails();\r\n }\r\n // formatCurrency(value) {\r\n // return \"R\";\r\n // }\r\n // formatCurrency(value) {\r\n // return accounting.formatMoney(value, 'R', 2, ' ', '.');\r\n // }\r\n \r\n checkTerms(event) {\r\n if (event.target.checked) {\r\n this.termsFlag = true;\r\n } else {\r\n this.termsFlag = false;\r\n }\r\n this.disbledBtn();\r\n } \r\n\r\n getPermitType() : Promise\r\n {\r\n //alert('getsomething');\r\n return this.permittypeService.getById(this.dataCntrl.permittype.Compliance_PermitType_Id).toPromise();\r\n }\r\n async getCompliancePermitType()\r\n {\r\n //alert('getCompliancePermitType');\r\n if(this.isAnnualCompliance)\r\n {\r\n \r\n ////alert(this.dataCntrl.permittype.Compliance_PermitType_Id);\r\n //this.permittypeService.getById(this.dataCntrl.permittype.Compliance_PermitType_Id).subscribe(permType=>{\r\n //this.permTypeToUse = permType; \r\n var permType = await this.getPermitType(); \r\n this.permit_Type = permType;\r\n //alert(\"permType returned\");\r\n this.permit_fee = permType.current_fee;\r\n this.application_fee = permType.current_application_fee;\r\n this.lineTotal = this.permit_fee + this.application_fee;\r\n \r\n //});\r\n }\r\n }\r\n\r\n getApplicationById() : Promise\r\n {\r\n let perm_num:any = this.dataCntrl.permits[0].permit_num;\r\n return this.applicationService.getByIdForComplianceApp(this.dataCntrl.appID, perm_num).toPromise();\r\n }\r\n \r\n async getApplication() {\r\n //alert(\"getApplication\");\r\n this.pageload = true;\r\n \r\n if (this.dataCntrl.appID !== null && this.dataCntrl.appID !== undefined) {\r\n //this.applicationService.getById(this.dataCntrl.appID).subscribe(data => {\r\n var data = await this.getApplicationById();\r\n //alert(JSON.stringify(data));\r\n //this.dataCntrl = data;\r\n this.isProcess = true;\r\n this.CheckConfirmDetails();\r\n this.dataCntrl.permittype = data.permit_type;\r\n this.utility.timetableActive = data.permit_type.timetable_reqd;\r\n if (data.permit_type.timetable_reqd) {\r\n this.utility.sequenceNumbers.permitNum = 1;\r\n this.utility.sequenceNumbers.vehicleNum = 2;\r\n this.utility.sequenceNumbers.routesNum = 3;\r\n this.utility.sequenceNumbers.motivationNum = 4;\r\n this.utility.sequenceNumbers.timeTableNum = 5;\r\n this.utility.sequenceNumbers.uploadsNum = 6;\r\n this.utility.sequenceNumbers.cnfNum = 7;\r\n this.utility.activeTab = 7;\r\n } else {\r\n this.utility.sequenceNumbers.permitNum = 1;\r\n this.utility.sequenceNumbers.vehicleNum = 2;\r\n this.utility.sequenceNumbers.routesNum = 3;\r\n this.utility.sequenceNumbers.motivationNum = 4;\r\n this.utility.sequenceNumbers.uploadsNum = 5;\r\n this.utility.sequenceNumbers.cnfNum = 6;\r\n }\r\n this.userDetails = environment.authWebApi.userData.User;\r\n //console.log(this.userDetails)\r\n this.application_fee = data.permits[0].application_fee;\r\n this.permit_fee = data.permits[0].permit_fee\r\n this.lineTotal = (this.application_fee + this.permit_fee );\r\n // this.lineTotal = this.lineTotal;\r\n // this.totalFee = this.totalFee;\r\n this.pageload = false;\r\n //await this.getCarrier();\r\n \r\n // this.dataCntrl.permits[0].permit_fee = this.dataCntrl.permittype.current_fee;\r\n // this.dataCntrl.permits[0].application_fee = this.dataCntrl.permittype.current_application_fee;\r\n // this.vehicles = [];\r\n this.dataCntrl.application = data;\r\n this.applicationId = data.id;\r\n this.dataCntrl.carrierID = data.carrier_id;\r\n this.dataCntrl.permit_type_id =data.permit_type.Compliance_PermitType_Id;\r\n // this.dataCntrl.permit=data.permit;\r\n this.dataCntrl.permittype = data.permit_type;\r\n //this.dataCntrl.vehicles=this.dataCntrl.application.vehicle;\r\n this.carrier_account_id = data.carrier_account_id;\r\n \r\n \r\n await this.getCarrier();\r\n //this.getSavedVehicleByPermit();\r\n //this.getCompliancePermitType();\r\n \r\n // }, error => {\r\n // this.pageload = false;\r\n // })\r\n } else {\r\n this.getCarrier();\r\n }\r\n this.pageload = false;\r\n this.getCorrectionPermitType();\r\n }\r\n\r\n getCarrierById() : Promise\r\n {\r\n //alert(this.dataCntrl.carrierID);\r\n return this.carrierService.getById(this.dataCntrl.carrierID).toPromise();\r\n }\r\n async getCarrier() {\r\n //alert('getCarrier');\r\n this.pageload = true;\r\n\r\n //this.carrierService.getById(this.dataCntrl.carrierID).subscribe(result => {\r\n var result = await this.getCarrierById();\r\n this.setDebtorAccount(result.carrier_account_id);\r\n this.setCarrierData(result);\r\n //alert(1);\r\n this.pageload = false;\r\n // }, error => {\r\n // this.pageload = false;\r\n // });\r\n }\r\n\r\n setDebtorAccount(carrierAccountId) {\r\n this.carrierService.getDebtorAccount(carrierAccountId).subscribe((result:any) => {\r\n this.debtorAccountId = result.customer_code;\r\n }, error => {\r\n });\r\n }\r\n \r\n listCountries(id) {\r\n this.countryService.listCountries().subscribe((result:any) => {\r\n if (id != null) {\r\n this.country = result.find(x => x.id == id);\r\n this.country = this.country.desc;\r\n }\r\n }, error => {\r\n this.isLoading = false;\r\n });\r\n }\r\n getCorrectionPermitType(){\r\n this.permittypeService.getById(this.dataCntrl.permit_type_id).subscribe((type:any) =>{\r\n this.ptype = type;\r\n if(type.permit_days > 0){\r\n this.ptypeDays = type.permit_days;\r\n }\r\n if(type.permit_months > 0){\r\n this.ptypeMonth = type.permit_months;\r\n }\r\n if(type.permit_years > 0){\r\n this.ptypeYears = type.permit_years;\r\n }\r\n })\r\n }\r\n setCarrierData(data) {\r\n if (data.account_balance != null) {\r\n this.accBalance = data.account_balance * -1;\r\n if (!data.account_balance.toString().includes(\"R\")) {\r\n if (parseFloat(data.account_balance) != 0) {\r\n data.account_balance = -(parseFloat(data.account_balance));\r\n }\r\n data.account_balance = data.account_balance != 0 ? parseFloat(data.account_balance) : 'R 0.00';\r\n }\r\n }\r\n this.dataCntrl.carrier = data;\r\n $(\"#carrierName\").html(data.name);\r\n this.listCountries(data.country_id);\r\n }\r\n \r\n saveConfirmation(permitStatus) { \r\n this.updateConfm(permitStatus); \r\n }\r\n \r\n PermitDetailsConfirmation() {\r\n if (this.branch == 'C') {\r\n this.UpdatepermitStatus(this.permitStatus14);\r\n }\r\n \r\n if (this.branch == 'F') {\r\n this.UpdatepermitStatus(this.permitStatus10);\r\n this.carrieraccountserver.ResendAccountLinkingOTP(this.dataCntrl.person, this.dataCntrl.person_id);\r\n }\r\n }\r\n \r\n \r\n \r\n CheckConfirmDetails() {\r\n //changes and owes money\r\n this.activeRoute.params.subscribe((params: Params) => {\r\n if(params['constatus'] == 2){\r\n if ((this.dataCntrl.permits[0].application_invoice_link == null || this.dataCntrl.permits[0].permit_invoice_link == null) && (this.applicationService.documentsChanged || this.applicationService.motivationChanged || this.applicationService.vehicleAdded)) {\r\n this.branch = \"A\";\r\n this.isProcess = true;\r\n \r\n }\r\n \r\n //changes and dont owe money\r\n if (this.dataCntrl.permits[0].application_invoice_link == null && this.dataCntrl.permits[0].permit_invoice_link == null && (!this.applicationService.documentsChanged || !this.applicationService.motivationChanged || !this.applicationService.vehicleAdded)) {\r\n this.branch = \"C\";\r\n }\r\n \r\n //No change and owes money\r\n if (this.dataCntrl.permits[0].application_invoice_link == null || this.dataCntrl.permits[0].permit_invoice_link == null && (!this.applicationService.documentsChanged || !this.applicationService.motivationChanged || !this.applicationService.vehicleAdded)) {\r\n this.branch = \"E\";\r\n this.isProcess = true;\r\n }\r\n \r\n //No Changes and dont owe money\r\n if (this.dataCntrl.permits[0].application_invoice_link != null && this.dataCntrl.permits[0].permit_invoice_link != null && (!this.applicationService.documentsChanged && !this.applicationService.motivationChanged && !this.applicationService.vehicleAdded)) {\r\n this.branch = \"F\";\r\n }\r\n } \r\n });\r\n }\r\n \r\n //Update Permit Status\r\n UpdatepermitStatus(status_id) {\r\n this.dataCntrl.permits[0].status_id = status_id;\r\n this.permitService.upadatePermit(this.dataCntrl.permit).subscribe(result => {\r\n this.dataCntrl.permit = result;\r\n // this.toastr.success('Updated Permit Type Successfully','Permit Type');\r\n // this.applicationService.setTab(2);\r\n \r\n })\r\n }\r\n \r\n updateConfm1() {\r\n this.pageload = true;\r\n if (!this.termsFlag && !this.isCompletePayment) {\r\n this.pageload = false;\r\n return this.toastr.warning('Please agree the terms');\r\n }\r\n\r\n \r\n this.permitService.saveToCorspdc(this.dataCntrl.carrier.id, this.userDetails.FirstName).subscribe(result => {\r\n this.pageload = false;\r\n this.isLoading = false;\r\n \r\n if (result == true) {\r\n this.retrieveSubmitStatus();\r\n \r\n this.sendCorr(1);\r\n \r\n \r\n //this.dialogService.addDialog(AlertComponent, { title: `Carrier Account Submission`, message: `Carrier Account with registration number ${this.caConfirmObj.registration_number} submitted successfully.`, bold: `${this.caConfirmObj.registration_number}` });\r\n //this.utility.activeTab = 1;\r\n } else {\r\n this.sendCorr(0)\r\n this.pageload = false;\r\n this.toastr.error(`Submission for failed.Please contact the system administrator if the problem persists.`);\r\n }\r\n }, error => {\r\n this.pageload = false;\r\n this.isLoading = false;\r\n this.toastr.error(`Submission for failed.Please contact the system administrator if the problem persists.`);\r\n //this.dialogService.addDialog(AlertComponent, { title: `Carrier Account Submission`, message: `Submission for ${this.caConfirmObj.registration_number} failed.Please contact the system administrator if the problem persists.`, bold: `${obj.registered_name}` });\r\n \r\n });\r\n }\r\n setHTMLDATA() {\r\n \r\n if (environment.authWebApi.systemData != null) {\r\n this.linkhtml = environment.authWebApi.systemData.Configurations.find(p => p.Code == 'HTMLDec2');\r\n // this.linkhtml = this.sanitizer.bypassSecurityTrustHtml(link.Value);\r\n }\r\n }\r\n retrieveSubmitStatus() {\r\n if (this.authWebService.userData) {\r\n \r\n if (this.branch == \"A\" || this.branch == \"C\") {\r\n this.status_id = this.permitStatus14\r\n }\r\n else if (this.branch == \"E\") {\r\n this.status_id = this.permitStatus7;\r\n }\r\n else if (this.branch == \"F\") {\r\n this.status_id = this.permitStatus10;\r\n }\r\n else {\r\n this.status_id = + environment.authWebApi.systemData.Configurations.find(config => config.Code == \"AccountStatus2\").Value;\r\n }\r\n \r\n this.dataCntrl.application.status_id = this.status_id;\r\n this.dataCntrl.application.submission_date = new Date();\r\n // if(this.vehicles==null || this.vehicles.length==0){\r\n // this.dataCntrl.application.total_fees=parseInt(this.dataCntrl['permits'][0].application_fee.replace(\"R\",\"\"));\r\n // }\r\n this.applicationService.putApplication(this.dataCntrl.application)\r\n .subscribe(result => {\r\n this.updatePermit(this.status_id);\r\n if (this.renewFlag) {\r\n this.toastr.success(`Your Permit Renewal has been submitted successfully.`, `Permit Renewal`);\r\n } else {\r\n this.toastr.success(`Your permit application was submitted successfully`, 'Permit Application');\r\n }\r\n if (this.renewFlag) {\r\n this.router.navigate(['carrier/permit/application/' + this.renewCrId]);\r\n } else {\r\n this.router.navigate(['/carrier/permit/application/' + this.dataCntrl.carrierID]);\r\n }\r\n this.pageload = false;\r\n },\r\n error => {\r\n this.pageload = false;\r\n \r\n // this.toastr.error('Failed to save application. If the problem persist, please contact system administrator.','Save Application')\r\n \r\n // this.showModal.showError('Save Application','Failed to save application. If the problem persist, please contact system administrator.',error);\r\n return;\r\n });\r\n }\r\n }\r\n updatePermit(status_id) {\r\n this.dataCntrl.permits[0].status_id = status_id;\r\n if (this.vehicles == null || this.vehicles.length == 0) {\r\n this.dataCntrl['permits'][0].application_fee = parseFloat(this.dataCntrl['permits'][0].application_fee.replace(/[^\\d\\.]*/g, ''));\r\n // this.dataCntrl['permits'][0].permit_fee = parseFloat(this.dataCntrl['permits'][0].permit_fee.replace( /[^\\d\\.]*/g, ''));\r\n this.dataCntrl['permits'][0].permit_fee = 0;\r\n }\r\n this.permitService.upadatePermit(this.dataCntrl.permit).subscribe(result => {\r\n this.dataCntrl.permit = result;\r\n // this.toastr.success('Updated Permit Type Successfully','Permit Type');\r\n // this.applicationService.setTab(2);\r\n \r\n })\r\n \r\n }\r\n downloadPdf() {\r\n var img = new Image()\r\n img.src = '/assets/banner1.png';\r\n let doc = new jsPDF('p', 'pt');\r\n // doc.addImage(img, 'png', 0, 0, 220, 50);\r\n // doc.fromHTML($(\"#confirm-content-1\").html(), 10, 50, {\r\n // width: 500\r\n // });\r\n let header: any = [\"\", \"\"];\r\n let createdDate: any = this.dataCntrl['application'].date_created.split(\"T\")[0];\r\n let content = [\r\n [\"Proforma Invoice and Confirmation\", \"\"],\r\n [\"Invoice:\", this.invoiceNumber],\r\n [\"Permit Application No:\", this.dataCntrl.carrier.carrier_code],\r\n [\"Application Date:\", createdDate],\r\n [\"Applicant:\", this.userDetails.FirstName + \" \" + this.userDetails.LastName],\r\n [\"Email:\", this.dataCntrl['carrier'].email]\r\n ];\r\n let content1 = [\r\n [\"Physical Address\", \"\"],\r\n [\"Address Line:\", this.dataCntrl['carrier'].physical_address_1],\r\n [\"Town:\", this.dataCntrl['carrier'].physical_address_town],\r\n [\"Post Codee:\", this.dataCntrl['carrier'].physical_post_code],\r\n [\"Country:\", this.dataCntrl['carrier'].country]\r\n ];\r\n let content2 = [\r\n [\"Account Balance\", this.dataCntrl['carrier'].account_balance]\r\n ];\r\n let header2: any = [\"\", \"\", \"\"]\r\n let header1: any = [\"Vehicle Registration\", \"Vehicl Type\", \"Start Date\", \"Permit Type\", \"Duration\", \"Application Fee\", \"Permit Fee\", \"Line Total\"]\r\n let content3 = [];\r\n let content4 = [[\"\", \"Total\", this.totalFee]];\r\n let content5 = [[\"Fees shown in red are due on submission of the application. The remaining fee(s) if any will be payable before any permit is issued.These fees could change latter\", \"Payable on submission\", this.submissionAmt]];\r\n let content6 = [[\"\", \"Amount Paid\", this.paidAmt]];\r\n let content7 = [[\"\", \"Amount Due now\", this.dueAmt]];\r\n for (let list of this.vehicles) {\r\n let duration: any = \"\";\r\n if (this.dataCntrl['permittype'].permit_years > 0) {\r\n duration = this.dataCntrl['permittype'].permit_years + (this.dataCntrl['permittype'].permit_years == 1? \"- year\" : \"- years\");\r\n }\r\n if (this.dataCntrl['permittype'].permit_months > 0) {\r\n duration = this.dataCntrl['permittype'].permit_months + (this.dataCntrl['permittype'].permit_months == 1? \"- month\" : \"- months\");\r\n }\r\n if (this.dataCntrl['permittype'].permit_days > 0) {\r\n duration = this.dataCntrl['permittype'].permit_dayss + (this.dataCntrl['permittype'].permit_dayss == 1? \"- day\" : \"- days\");\r\n }\r\n let obj: any = [list.registration_number, list.vehicle_type, list.start_date, this.dataCntrl['permittype'].description, duration, this.dataCntrl['permits'][0].application_fee,\r\n this.dataCntrl['permits'][0].permit_fee, this.lineTotal];\r\n content3.push(obj);\r\n }\r\n let startingpage = doc.internal.getCurrentPageInfo().pageNumber;\r\n //doc.text(\"Proforma Invoice and Confirmation\");\r\n doc.setFontSize(10);\r\n doc.autoTable(header, content, {\r\n showHeader: 'firstPage',\r\n avoidPageSplit: true,\r\n theme: 'plain',\r\n margin: { top: 20, right: 305 },\r\n styles: { fontSize: 10, overflow: 'linebreak', columnWidth: 'wrap' },\r\n columnStyles: {\r\n 0: { columnWidth: 165 }\r\n }\r\n });\r\n doc.setPage(startingpage);\r\n doc.autoTable(header, content1, {\r\n showHeader: 'firstPage',\r\n avoidPageSplit: true,\r\n theme: 'plain',\r\n margin: { top: 20, left: 305 },\r\n styles: { fontSize: 10, overflow: 'linebreak', columnWidth: 'wrap' }\r\n });\r\n \r\n doc.autoTable(header, content2, {\r\n showHeader: 'firstPage',\r\n avoidPageSplit: true,\r\n margin: { top: 80 },\r\n theme: 'plain',\r\n startY: doc.autoTableEndPosY() + 20,\r\n styles: { fontSize: 10, overflow: 'linebreak', columnWidth: 'wrap' },\r\n \r\n });\r\n doc.autoTable(header1, content3, {\r\n showHeader: 'firstPage',\r\n avoidPageSplit: true,\r\n theme: 'plain',\r\n margin: { top: 80 },\r\n startY: doc.autoTableEndPosY() + 5,\r\n styles: { fontSize: 10, overflow: 'linebreak', columnWidth: 'wrap' },\r\n columnStyles: {\r\n 0: { columnWidth: 80 },\r\n 1: { columnWidth: 60 },\r\n 2: { columnWidth: 60 },\r\n 3: { columnWidth: 90 },\r\n 4: { columnWidth: 60 },\r\n 5: { columnWidth: 60 },\r\n 6: { columnWidth: 60 },\r\n 7: { columnWidth: 60 }\r\n }\r\n });\r\n doc.autoTable(header2, content4, {\r\n showHeader: 'firstPage',\r\n avoidPageSplit: true,\r\n theme: 'plain',\r\n margin: { top: 80 },\r\n startY: doc.autoTableEndPosY(),\r\n styles: { fontSize: 10, overflow: 'linebreak', columnWidth: 'wrap' },\r\n columnStyles: {\r\n 0: { columnWidth: 370 },\r\n 1: { columnWidth: 100 },\r\n 2: { columnWidth: 100 }\r\n }\r\n });\r\n doc.autoTable(header2, content5, {\r\n showHeader: 'firstPage',\r\n avoidPageSplit: true,\r\n theme: 'plain',\r\n margin: { top: 80 },\r\n startY: doc.autoTableEndPosY(),\r\n styles: { fontSize: 10, overflow: 'linebreak', columnWidth: 'wrap' },\r\n columnStyles: {\r\n 0: { columnWidth: 370 },\r\n 1: { columnWidth: 100 },\r\n 2: { columnWidth: 100 }\r\n }\r\n });\r\n doc.autoTable(header2, content6, {\r\n showHeader: 'firstPage',\r\n avoidPageSplit: true,\r\n theme: 'plain',\r\n margin: { top: 80 },\r\n startY: doc.autoTableEndPosY(),\r\n styles: { fontSize: 10, overflow: 'linebreak', columnWidth: 'wrap' },\r\n columnStyles: {\r\n 0: { columnWidth: 370 },\r\n 1: { columnWidth: 100 },\r\n 2: { columnWidth: 100 }\r\n }\r\n });\r\n doc.autoTable(header2, content7, {\r\n showHeader: 'firstPage',\r\n avoidPageSplit: true,\r\n theme: 'plain',\r\n margin: { top: 80 },\r\n startY: doc.autoTableEndPosY(),\r\n styles: { fontSize: 10, overflow: 'linebreak', columnWidth: 'wrap' },\r\n columnStyles: {\r\n 0: { columnWidth: 370 },\r\n 1: { columnWidth: 100 },\r\n 2: { columnWidth: 100 }\r\n }\r\n });\r\n this.sendConfirmMail(doc);\r\n doc.save('PermitApplication.pdf');\r\n }\r\n \r\n \r\n cancelApplication() {\r\n let prevUrl = localStorage.getItem('previousUrl');\r\n if (prevUrl.search('/permit/approval') != -1) {\r\n this.router.navigate(['/permit/approval/']);\r\n } else if (prevUrl.search('/carrier/permit/application/mypermits') != -1) {\r\n this.router.navigate(['/carrier/permit/application/mypermits/',this.dataCntrl.carrierID]);\r\n } else {\r\n this.router.navigate(['/carrier/permit/application/',this.dataCntrl.carrierID]);\r\n }\r\n }\r\n // if (this.dataCntrl.application.id == undefined && this.dataCntrl.application.id == null) {\r\n // this.router.navigate(['/carrier/permit/application/' + this.dataCntrl.carrierID]);\r\n // } else {\r\n // this.showModal.showYesNo('Delete Application', 'Are you sure you want to delete?', `You're about to delete application`, 'Yes', 'No')\r\n // .subscribe((isConfirmed) => {\r\n // if (isConfirmed) {\r\n // this.deleteApplication()\r\n // } else {\r\n // return;\r\n // }\r\n // });\r\n // }\r\n // }\r\n \r\n deleteApplication() {\r\n this.pageload = true;\r\n \r\n this.permitService.deletePermit(this.dataCntrl.permits[0].id).subscribe(x => {\r\n this.deleteApp(this.dataCntrl.appID);\r\n this.pageload = false;\r\n \r\n this.router.navigate(['/carrier/permit/application/' + this.dataCntrl.carrierID]);\r\n \r\n })\r\n //this.dataCntrl.application.id\r\n //this.dataCntrl.permits[0].id\r\n }\r\n deletePermit(id) {\r\n this.permitService.deletePermit(id).subscribe(x => {\r\n })\r\n \r\n }\r\n formatCurrency(value) {\r\n return accounting.formatMoney(value, 'R', 2, ' ', '.');\r\n }\r\n deleteApp(id) {\r\n this.applicationService.deleteApplication(id).subscribe(x => {\r\n })\r\n }\r\n disbledBtn() {\r\n let dueAmt: any = 0;\r\n if (!this.termsFlag && !this.isCompletePayment) {\r\n this.hasCredit= true;\r\n } else {\r\n // if (this.vehicles.length > 0) {\r\n let acntBal: any = 0;\r\n if (this.dataCntrl['carrier'].account_balance != null) {\r\n acntBal = (this.dataCntrl['carrier'].account_balance).toString().replace(/\\s+/g, \"\");\r\n acntBal = acntBal.replace(\"R\", \"\");\r\n //acntBal = parseFloat(acntBal.replace(\"-\", \"\"));\r\n }\r\n //\r\n if (this.dueAmt != null && this.dueAmt != undefined && this.dueAmt != \"\") {\r\n dueAmt = this.dueAmt.replace(\" \", \"\");\r\n dueAmt = parseFloat(dueAmt.replace(\"R\", \"\"));\r\n }\r\n //alert(acntBal + ' < ' + dueAmt);\r\n if (acntBal < dueAmt) {\r\n this.hasCredit= false;\r\n \r\n } else {\r\n this.hasCredit= true;\r\n }\r\n }\r\n \r\n if(this.dueAmt < 1){\r\n this.hasCredit= false;\r\n }\r\n // else{\r\n // this.hasCredit= true;\r\n // }\r\n \r\n }\r\n \r\n\r\n UpdateComplianceTransactions(){\r\n // alert(this.dataCntrl.application.compliance.id);\r\n // alert(this.dataCntrl.application.complianceDetail.id);\r\n this.complianceService.updateComplianceCertificateTransaction(this.dataCntrl.application.compliance.id, this.dataCntrl.application.complianceDetail.id).subscribe(res =>{\r\n console.log(\"compliance updated \" + res);\r\n });\r\n\r\n }\r\n \r\n \r\n \r\n sendConfirmMail(pdfDoc) {\r\n let payload: any = Object();\r\n payload['carrier_id'] = this.dataCntrl.carrierID;\r\n payload['application_id'] = this.dataCntrl.application.id;\r\n payload['document_id1'] = null;\r\n payload['document_id2'] = null;\r\n payload['document_id3'] = null;\r\n payload['corspdc_type_ind'] = 2;\r\n payload['body_text'] = null;\r\n payload['notes'] = null;\r\n payload['attachment'] = pdfDoc.output('datauri');\r\n payload['subject'] = 'Permit Application';\r\n payload['send_receive_ind'] = 1;\r\n payload['comm_type_ind'] = 1;\r\n payload['num_bookmarks'] = 1;\r\n payload['date_created'] = new Date();\r\n payload['date_modified'] = new Date();\r\n payload['user_created'] = new Date();\r\n payload['user_modified'] = new Date();\r\n payload['bookmark1_value'] = null;\r\n payload['bookmark2_value'] = null;\r\n payload['bookmark3_value'] = null;\r\n payload['bookmark4_value'] = null;\r\n payload['bookmark5_value'] = null;\r\n payload['bookmark6_value'] = null;\r\n payload['from_person_id'] = this.dataCntrl.carrier.person_id;\r\n payload['correspondence_person'] = [this.dataCntrl.carrier.person_id];\r\n payload['file_name'] = 'PrmitAppliaction';\r\n this.crspdService.sendMail(payload).subscribe(res => {\r\n this.toastr.success(`Your permit application was submitted successfully`, 'Permit Application');\r\n if (this.renewFlag) {\r\n this.router.navigate(['carrier/permit/application/renew/' + this.renewCrId]);\r\n } else {\r\n this.router.navigate(['/carrier/permit/application/' + this.dataCntrl.carrierID]);\r\n }\r\n })\r\n }\r\n \r\n getUpdateBalance() {\r\n this.carrierService.getUpdateBalance(this.dataCntrl.carrier.carrier_account_id).subscribe(res => {\r\n \r\n })\r\n }\r\n sendCorr(ind) {\r\n let body_text = environment.authWebApi.systemData.Configurations.find(config => config.Code == \"SubmitEmail2\").Value;\r\n \r\n let payload: any = Object();\r\n payload['carrier_id'] = this.dataCntrl.carrierID;\r\n payload['application_id'] = this.dataCntrl.application.id;\r\n payload['permit_id'] = this.dataCntrl.permits[0].id;\r\n payload['document_id1'] = null;\r\n payload['document_id2'] = null;\r\n payload['document_id3'] = null;\r\n payload['corspdc_type_ind'] = 2;\r\n payload['body_text'] = body_text;\r\n payload['notes'] = null;\r\n payload['attachment'] = null;\r\n payload['subject'] = 'Permit Application';\r\n if (ind === 0) {\r\n payload['send_receive_ind'] = 11;\r\n \r\n } else {\r\n payload['send_receive_ind'] = ind;\r\n }\r\n payload['comm_type_ind'] = 1;\r\n payload['num_bookmarks'] = 0;\r\n payload['date_created'] = new Date();\r\n payload['date_modified'] = new Date();\r\n payload['user_created'] = this.userDetails.FirstName;\r\n payload['user_modified'] = this.userDetails.FirstName;\r\n payload['bookmark1_value'] = null;\r\n payload['bookmark2_value'] = null;\r\n payload['bookmark3_value'] = null;\r\n payload['bookmark4_value'] = null;\r\n payload['bookmark5_value'] = null;\r\n payload['bookmark6_value'] = null;\r\n payload['from_person_id'] = this.dataCntrl.carrier.person_id;\r\n payload['correspondence_person'] = [this.dataCntrl.carrier.person_id];\r\n payload['file_name'] = null;\r\n this.crspdService.sendMail(payload).subscribe(data => {\r\n \r\n }, error => {\r\n \r\n })\r\n \r\n }\r\n\r\n getAllPermitsByApplicationId(): Promise\r\n {\r\n //alert(this.applicationId)\r\n return this.permitSevc.getAllPermitsByApplicationId(this.applicationId).toPromise();\r\n }\r\n getPermitsAppVecle() : Promise\r\n {\r\n return this.vehicleService.getPermitsAppVecle(this.applicationId).toPromise();\r\n }\r\n\r\n async getSavedVehicleByPermit() {\r\n //alert('getSavedVehicleByPermit');\r\n this.myLoader = true;\r\n this.pageload = true;\r\n this.listvehicles = [];\r\n this.vehicles=[];\r\n\r\n this.vehicleService.getByPermitId(this.dataCntrl['permits'][0].id).subscribe(vehicles =>{\r\n //alert(JSON.stringify(vehicles));\r\n let vehicle:any = vehicles;\r\n let object = {\r\n id: vehicle.id,\r\n vehicle_type_id: vehicle.vehicle_type_id,\r\n vehicle_make_id: vehicle.vehicle_make_id,\r\n vehicle_make: vehicle.vehicle_make,\r\n vehicle_type: vehicle.vehicle_type,\r\n is_current: false,\r\n registration_number: vehicle.registration_number,\r\n // seating_capacity:vehicle.seating_capacity,\r\n number_passengers: vehicle.number_passengers,\r\n gvn: vehicle.gvn,\r\n vin: vehicle.vin,\r\n date_license_expiry: this.datePipe.transform(vehicle.date_license_expiry, 'dd/MM/yyyy'),\r\n start_date: this.datePipe.transform(new Date(), 'dd/MM/yyyy'),\r\n editMode: false\r\n }\r\n \r\n // alert(JSON.stringify(object));\r\n this.listvehicles.push(object);\r\n this.pageload = false;\r\n \r\n \r\n \r\n this.pageload = false;\r\n this.dataCntrl.vehicles = this.vehicles = this.listvehicles;\r\n \r\n \r\n this.populateData();\r\n // this.count = this.count++;\r\n this.myLoader = false;\r\n \r\n // }, 4000);\r\n //}\r\n \r\n return true;\r\n \r\n \r\n \r\n });\r\n }\r\n async populateData() {\r\n //alert('populateData');\r\n //if (this.count == 0) {\r\n this.pageload = true;\r\n \r\n this.count = this.count + 1;\r\n this.paidAmt = 0;\r\n this.dueAmt = 0;\r\n this.submissionAmt = 0;\r\n \r\n if (this.dataCntrl.vehicles == null || this.dataCntrl.vehicles == undefined) {\r\n this.dataCntrl.vehicles = [];\r\n }\r\n \r\n // Paid Amount\r\n // No Paid Amount\r\n // alert(this.isView);\r\n if(this.isView == true)\r\n {\r\n if (this.dataCntrl['permits'][0].application_invoice_link != null && (this.dataCntrl['permits'][0].application_invoice_link).substring(0,3) == \"INV\") {\r\n \r\n if (this.dataCntrl.vehicles.length == 0) {\r\n this.paidAmt = this.application_fee\r\n } else {\r\n this.paidAmt = this.application_fee * this.dataCntrl.vehicles.length;\r\n } \r\n }\r\n if (this.dataCntrl['permits'][0].permit_invoice_link != null && (this.dataCntrl['permits'][0].permit_invoice_link).substring(0,3) == \"INV\") {\r\n \r\n if (this.dataCntrl.vehicles.length == 0) {\r\n this.paidAmt = this.paidAmt + this.permit_fee\r\n } else {\r\n this.paidAmt = this.paidAmt + this.permit_fee * this.dataCntrl.vehicles.length;\r\n }\r\n }\r\n }\r\n \r\n // Total Fee\r\n this.totalFee = (this.application_fee + this.permit_fee);\r\n if (this.vehicles == null || this.vehicles.length == 0) {\r\n this.totalFee = this.application_fee;\r\n this.lineTotal = this.application_fee;\r\n }\r\n //console.log(this.dataCntrl['permits'][0].application_fee + 'fee')\r\n \r\n this.lineTotal = (parseFloat(this.application_fee + parseFloat(this.permit_fee)));\r\n this.lineTotal = this.formatCurrency(this.lineTotal);\r\n \r\n // charge_when_ind\r\n if (this.isCompletePayment == true && this.dataCntrl['permits'][0].renewal_num > 0) {\r\n this.chargeInd = 2;\r\n } else {\r\n this.chargeInd = this.dataCntrl['permittype'].charge_when_ind;\r\n }\r\n \r\n if ((this.vehicles == null || this.vehicles.length == 0) && (this.chargeInd == 1)) {\r\n this.dueAmt = this.application_fee - this.paidAmt;\r\n this.submissionAmt = this.application_fee;\r\n\r\n }\r\n this.totalFee = this.formatCurrency(this.totalFee);\r\n // Application Fee Only\r\n if ((this.chargeInd == 1) && this.vehicles.length > 0) {\r\n\r\n this.submissionAmt = this.application_fee * this.vehicles.length\r\n if (this.dataCntrl['application'].status_id == this.permitStatus13 || this.dataCntrl['application'].status_id == this.permitStatus14) {\r\n this.dueAmt = this.permit_fee * this.vehicles.length;\r\n } \r\n else if (this.dataCntrl['permits'][0].permit_invoice_link != null && (this.dataCntrl['permits'][0].permit_invoice_link).substring(0,3) == \"INV\") {\r\n if(this.dataCntrl.compID == null || this.dataCntrl.compID == undefined)\r\n {\r\n this.dueAmt = this.submissionAmt + this.permit_fee;\r\n }else{\r\n this.dueAmt = this.permit_fee;\r\n }\r\n this.paidAmt = 0\r\n } \r\n else {\r\n //console.log(this.dueAmt + \" \" + \" \" + this.dataCntrl['permits'][0].permit_fee);\r\n this.dueAmt = this.submissionAmt - this.paidAmt;\r\n }\r\n }\r\n // Application & Permit Fee\r\n if (this.chargeInd == 2 && this.vehicles.length > 0) {\r\n this.submissionAmt = (this.application_fee * this.vehicles.length) + (this.permit_fee * this.vehicles.length);\r\n this.dueAmt = this.submissionAmt - this.paidAmt;\r\n }\r\n this.application_fee = this.formatCurrency(this.application_fee);\r\n this.permit_fee = this.formatCurrency(this.permit_fee)\r\n\r\n this.submissionAmt = this.formatCurrency(this.submissionAmt);\r\n this.paidAmt = this.formatCurrency(this.paidAmt);\r\n this.dueAmt = this.formatCurrency(this.dueAmt);\r\n\r\n this.pageload = false;\r\n //alert(\"pop done\");\r\n }\r\n getVehicleMake() {\r\n this.vehicleMakeService.getAll().subscribe((result: any) => {\r\n this.list_vehicle_make = result\r\n this.selectedVMake = result.find(x => x.code == 'Unknown');\r\n }, error => {\r\n \r\n });\r\n }\r\n\r\n SubmitApplication()\r\n {\r\n\r\n\r\n // this.showModal.showYesNo('Confirm Application', `Are you sure you want to submit application for a Permit ?. A confirmation email will be sent to '${this.userDetails.EmailAddress}'.`, `Please access your Portal for next steps.`, 'Ok', 'Cancel')\r\n // .subscribe((isConfirmed) => {\r\n // if(isConfirmed) {\r\n // //this.determineStatus();\r\n // this.newStatus = 74;\r\n // this.saveConfirmation(this.newStatus); \r\n // }\r\n // else\r\n // {\r\n // return;\r\n // }\r\n // }\r\n // );\r\n this.confirmDialogService.confirmThis(`Are you sure you want to submit application for a Permit ?. A confirmation email will be sent to '${this.userDetails.EmailAddress}'.`, () => { \r\n \r\n this.newStatus = 74;\r\n this.saveConfirmation(this.newStatus);\r\n \r\n }, () => { \r\n return;\r\n }) \r\n }\r\n\r\n\r\n saveApplication() {\r\n let object: any = Object();\r\n object['date_modified'] = this.dataCntrl.application.date_modified;\r\n object['user_modified'] = this.dataCntrl.application.user_modified;\r\n object['reference_num'] = this.dataCntrl.application.reference_num;\r\n object['permit_type_id'] = this.dataCntrl.application.permit_type_id;\r\n object['person_id'] = this.dataCntrl.application.person_id;\r\n object['carrier_id'] = this.dataCntrl.application.carrier_id;\r\n object['date_created'] = this.dataCntrl.application.date_created;\r\n object['user_created'] = this.dataCntrl.application.user_created;\r\n let oldResult: any = this.dataCntrl.application;\r\n this.applicationService.postApplication(object)\r\n .subscribe(result => {\r\n this.savePermit(result);\r\n });\r\n }\r\n updatePermitRenew() {\r\n if (this.dataCntrl.permits[0].renewal_num == null) {\r\n this.dataCntrl.permits[0].renewal_num = 1;\r\n } else {\r\n this.dataCntrl.permits[0].renewal_num = parseInt(this.dataCntrl.permits[0].renewal_num) + 1;\r\n }\r\n this.permitService.upadatePermit(this.dataCntrl.permit)\r\n .subscribe((result:any) => {\r\n result.renewal_num = this.dataCntrl.permits[0].renewal_num;\r\n this.dataCntrl.permit = result;\r\n });\r\n }\r\n savePermit(data) {\r\n\r\n this.updatePermitRenew();\r\n let permitObject: any = JSON.parse(JSON.stringify(this.dataCntrl.permit));\r\n permitObject.permit_type_id = this.Compliance_PermitType_Id;\r\n if (this.dataCntrl.compID != null || this.dataCntrl.compID != undefined)\r\n {\r\n permitObject.application_id = this.dataCntrl.application.id;\r\n }\r\n else{\r\n permitObject.application_id = data.id;\r\n }\r\n permitObject.date_modified = this.dataCntrl.permits[0].date_created = new Date();\r\n permitObject.user_modified = this.dataCntrl.permits[0].user_created = environment.authWebApi.userData.User.FirstName;\r\n permitObject.permit_fee = this.dataCntrl.permittype.current_fee == null ? 0 : this.dataCntrl.permittype.current_fee;\r\n permitObject.application_fee = this.dataCntrl.permittype.current_application_fee == null ? 0 : this.dataCntrl.permittype.current_application_fee;\r\n permitObject.status_id = 11;\r\n permitObject.date_11 = null;\r\n //permitObject.renewal_num=0;\r\n // permitObject.date_11=newDate2;\r\n permitObject.date_valid_from = null;\r\n permitObject.date_valid_to = null;\r\n permitObject.number_passengers = this.vehicles[0].number_passengers;\r\n this.permitService.postPermit(permitObject)\r\n .subscribe(result => {\r\n this.saveVehicles(result, data);\r\n });\r\n }\r\n saveVehicles(data, application) {\r\n let count: any = 0;\r\n for (let item of this.vehicles) {\r\n let newDate1;\r\n if (!item.date_license_expiry) {\r\n item.date_license_expiry = null;\r\n }\r\n if (!item.start_date) {\r\n item.start_date = null;\r\n }\r\n if (item.date_license_expiry != null) {\r\n let date = item.date_license_expiry.split('/');\r\n let day = parseInt(date[0], 10);\r\n let month = parseInt(date[1], 10);\r\n let year = parseInt(date[2], 10);\r\n let newDate = year + '/' + month + '/' + day;\r\n newDate1 = new Date(newDate);\r\n newDate1.setDate(newDate1.getDate() + 1);\r\n }\r\n let newDate2;\r\n if (item.start_date != null) {\r\n let date2 = item.start_date.split('/');\r\n let day2 = parseInt(date2[0], 10);\r\n let month2 = parseInt(date2[1], 10);\r\n let year2 = parseInt(date2[2], 10);\r\n let newDate10 = year2 + '/' + month2 + '/' + day2;\r\n newDate2 = new Date(newDate10);\r\n newDate2.setDate(newDate2.getDate() + 1);\r\n \r\n }\r\n let newDatepm: any = null;\r\n if (this.dataCntrl.permits[0].date_valid_to != null) {\r\n let parseDate: any = this.dataCntrl.permits[0].date_valid_to.split(\"T\")[0];\r\n newDatepm = new Date(Date.parse(parseDate + \" EDT\"));\r\n newDatepm.setDate(newDatepm.getDate() + 1);\r\n newDatepm = newDatepm.toISOString();\r\n }\r\n \r\n \r\n let object = {\r\n id: \"-1\",\r\n vehicle_type_id: item.vehicle_type_id,\r\n vehicle_type: item.vehicle_type,\r\n vehicle_make_id: this.selectedVMake.id,\r\n vehicle_make: this.selectedVMake.description,\r\n is_current: true,\r\n registration_number: item.registration_number,\r\n number_passengers: item.number_passengers,\r\n gvn: item.gvn,\r\n vin: item.vin,\r\n permit_id: 0,\r\n date_license_expiry: newDate1,\r\n start_date: newDate2,\r\n date_modified: new Date(),\r\n date_created: new Date(),\r\n user_modified: item.user_created = environment.authWebApi.userData.User.FirstName,\r\n editMode: true\r\n }\r\n if (count == 0) {\r\n data.date_11 = newDatepm;\r\n this.permitService.upadatePermit(data).subscribe((res:any) => {\r\n object.permit_id = res.id\r\n this.vehicleService.updateVehicle(object).subscribe(result => {\r\n });\r\n });\r\n } else {\r\n data.date_11 = item.start_date;\r\n data.date_valid_to = null;\r\n data.date_valid_from = null;\r\n data.number_passengers = item.number_passengers;\r\n this.permitService.postPermit(data).subscribe((result:any) => {\r\n // this.dataCntrl.permit = result;\r\n object.permit_id = result.id\r\n this.vehicleService.updateVehicle(object).subscribe(result => {\r\n });\r\n });\r\n }\r\n count++;\r\n }\r\n this.saveRoutes(data, application);\r\n }\r\n getRoutes() {\r\n this.routeService.getDoNotBelong().subscribe((rts: any) => {\r\n this.ownRoutes = rts.filter(x => x.user_created == environment.authWebApi.userData.User.FirstName);\r\n });\r\n }\r\n saveRoutes(data, app) {\r\n this.routeService.getMyRoute(this.dataCntrl.application.route_id).subscribe((route: any) => {\r\n \r\n let id = this.ownRoutes.filter((map) => { return map.description == route.description });\r\n let routes: any = {\r\n id: id[0].id,\r\n code: route.code.split(\"-\")[0] + \"-\" + app.id,\r\n route_detail: route.route_detail,\r\n description: route.description,\r\n route_summary: route.route_summary,\r\n // num_countries:this.form.value.num_countries,\r\n // num_border_crossings:this.form.value.num_border_crossings,\r\n user_created: environment.authWebApi.userData.User.FirstName,\r\n user_modified: environment.authWebApi.userData.User.FirstName,\r\n date_created: new Date(),\r\n date_modified: new Date(),\r\n }\r\n this.routeService.saveRouteAndRouteLeg(routes).subscribe((x: any) => {\r\n data.route_id = x.id;\r\n this.permitService.upadatePermit(data)\r\n .subscribe(result => {\r\n app.route_id = x.id;\r\n app.route_summary = this.dataCntrl.application.route_summary;\r\n app.route_detail = this.dataCntrl.application.route_detail;\r\n app.motivation_detail = this.dataCntrl.application.motivation_detail;\r\n this.applicationService.putApplication(app)\r\n .subscribe(result => {\r\n this.dataCntrl.application = result;\r\n this.dataCntrl.carrier.id = this.renewCrId;\r\n this.updateConfm(this.permitStatus6);\r\n });\r\n });\r\n });\r\n });\r\n }\r\n backToTab() {\r\n const tabNum = this.utility.tabPosition(this.utility.sequenceNumbers.cnfNum);\r\n this.applicationService.setTab(1);\r\n //this.applicationService.setTab(5);\r\n }\r\n backtoApp(){\r\n this.applicationService.setTab(1);\r\n // this.router.navigate(['/carrier/permit/application/',this.dataCntrl.carrierID]);\r\n // let prevUrl = localStorage.getItem('previousUrl');\r\n // if (prevUrl.search('/permit/approval') != -1) {\r\n // this.router.navigate(['/permit/approval/']);\r\n // } else if (prevUrl.search('/carrier/permit/application/mypermits') != -1) {\r\n // this.router.navigate(['/carrier/permit/application/mypermits/',this.dataCntrl.carrierID]);\r\n // } else {\r\n // this.router.navigate(['/carrier/permit/application/',this.dataCntrl.carrierID]);\r\n // }\r\n }\r\n \r\n //New updateConfirm\r\n updateConfm(permitStatus) {\r\n this.pageload = true;\r\n if (!this.termsFlag) {\r\n this.pageload = false;\r\n return this.toastr.warning('Please agree the terms', 'Terms');\r\n }\r\n const config: any = environment.authWebApi.systemData.Configurations.find(config => config.Code == \"SubmitEmail2\");\r\n \r\n let payload: any = Object();\r\n payload['carrier_id'] = this.dataCntrl.carrierID;\r\n payload['application_id'] = this.dataCntrl.application.id;\r\n payload['permit_id'] = this.dataCntrl.permits[0].id;\r\n payload['document_id1'] = null;\r\n payload['document_id2'] = null;\r\n payload['document_id3'] = null;\r\n payload['corspdc_type_ind'] = 3;\r\n payload['body_text'] = config.Value;\r\n payload['notes'] = null;\r\n payload['attachment'] = null;\r\n payload['subject'] = config.Description;\r\n payload['send_receive_ind'] = 11;\r\n payload['comm_type_ind'] = 3;\r\n payload['num_bookmarks'] = 0;\r\n payload['date_created'] = new Date();\r\n payload['date_modified'] = new Date();\r\n payload['user_created'] = this.userDetails.FirstName;\r\n payload['user_modified'] = this.userDetails.FirstName;\r\n payload['bookmark1_value'] = null;\r\n payload['bookmark2_value'] = null;\r\n payload['bookmark3_value'] = null;\r\n payload['bookmark4_value'] = null;\r\n payload['bookmark5_value'] = null;\r\n payload['bookmark6_value'] = null;\r\n //payload['from_person_id'] = this.dataCntrl.carrier.person_id;\r\n //payload['correspondence_person'] = [this.dataCntrl.carrier.person_id];\r\n payload['file_name'] = null;\r\n payload['action'] = 'SaveComplianceApp';\r\n ////console.log('Application data : ', payload)\r\n // this.permitService.UpdatePermitNum(this.dataCntrl.permits[0].id).subscribe(data => {\r\n // });\r\n let oldAppID = this.dataCntrl.application.id;\r\n if (this.permitRenewal == false) {\r\n if(localStorage.getItem(\"oldAppId\")){\r\n if(this.router.url.indexOf('correction') > 0 || this.router.url.indexOf('duplicate') > 0 || this.router.url.indexOf('vehicle') > 0 || this.router.url.indexOf('change') > 0){\r\n oldAppID = parseInt(localStorage.getItem(\"oldAppId\"));\r\n //console.log(oldAppID)\r\n }\r\n }\r\n }\r\n if(this.dataCntrl.compID != null || this.dataCntrl.compID != undefined)\r\n {\r\n oldAppID = this.dataCntrl.appID;\r\n }\r\n this.crspdService.savePermitCorrespondence(payload,oldAppID,permitStatus, true).subscribe((data:any) => {\r\n // alert(100);\r\n this.pageload = false;\r\n //this.isLoading = false;\r\n ////console.log('Correspondence : ', data);\r\n if (data.isSaved == \"Success\") {\r\n this.toastr.success(`Your permit application was submitted successfully`, 'Permit Application');\r\n this.router.navigate(['/carrier/compliance/return/list/' + this.dataCntrl.carrierID + '/0']);\r\n \r\n } else {\r\n this.toastr.error(`Error during permit confirmation. The server error response message : ${data.isSaved}`, `ERROR : Confirmation`);\r\n }\r\n }, error => {\r\n this.pageload = false;\r\n //this.isLoading = false;\r\n this.toastr.error(`Error during permit confirmation. The server responded with error code \"${error.status} : ${error.statusText}\"\"`, `ERROR : Confirmation`);\r\n // this.toastr.error(`Submission for ${this.dataCntrl['carrier'].name} failed.Please contact the system administrator if the problem persists.`, `Confirmation`);\r\n })\r\n \r\n \r\n }\r\n \r\n getOldStartDate() {\r\n // BUG : 121\r\n // all we have to work with is he old application number from local storage\r\n let appId: string = localStorage.getItem(\"oldAppId\");\r\n let perm_num:any = this.dataCntrl.permits[0].permit_num;\r\n // ...so we retieve all the vehicles for this application\r\n this.vehicleService.getPermitsAppVecle(this.dataCntrl.appID).subscribe((result:any) => {\r\n // ...then we loop through them all\r\n result.forEach(perm => {\r\n this.permitService.getById(perm.permit_id).subscribe((vehcle:any) => {\r\n if (perm_num == vehcle.permit_num) {\r\n this.dataCntrl.oldPermitStartDate=perm.start_date;\r\n }\r\n });\r\n });\r\n });\r\n }\r\n \r\n}","
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n PROFORMA INVOICE AND CONFIRMATION\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Account Id : {{debtorAccountId}}
Application No : {{dataCntrl['application'].id}}
Application Date : {{dataCntrl['application'].date_created | date :'dd/MM/yyyy'}}
Applicant : {{dataCntrl['carrier'].name}}
Email Address : {{userDetails.EmailAddress}}
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n Physical Address\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Address : {{dataCntrl['carrier'].physical_address_1}}
Town : {{dataCntrl['carrier'].physical_address_town}}
Post Code : {{dataCntrl['carrier'].physical_post_code}}
Country : {{country}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Account Balance : {{dataCntrl['carrier'].account_balance==null ? ' R 0.00' : formatCurrency(dataCntrl['carrier'].account_balance)}}
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 0\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Vehicle Registration Vehice TypeStart DatePermit TypeDurationApplication FeePermit FeeLine Total
{{list.registration_number}}{{list.vehicle_type}}{{list.start_date}}{{permit_Type.description}}{{dataCntrl['permittype'].permit_years}} - Year 1\">{{dataCntrl['permittype'].permit_years}} - Years{{dataCntrl['permittype'].permit_months}} - Month 1\">{{dataCntrl['permittype'].permit_months}} - Months{{dataCntrl['permittype'].permit_days}} - Day 1\">{{dataCntrl['permittype'].permit_days}} - Days{{ptypeYears}} - Year 1\">{{ptypeYears}} - Years{{ptypeMonth}} - Month 1\">{{ptypeMonth}} - Months{{ptypeDays}} - Day 1\">{{ptypeDays}} - Days{{application_fee}}{{permit_fee}}{{lineTotal}}
{{dataCntrl['permittype'].description}}{{dataCntrl['permittype'].permit_years}} - Year 1\">{{dataCntrl['permittype'].permit_years}} - Years{{dataCntrl['permittype'].permit_months}} - Month 1\">{{dataCntrl['permittype'].permit_months}} - Months{{dataCntrl['permittype'].permit_days}} - Days 1\">{{dataCntrl['permittype'].permit_days}} - Days{{dataCntrl['permits'][0].application_fee}}{{dataCntrl['permits'][0].application_fee}}
Total {{totalFee }}
\r\n Fees shown in red are due on submission of the application. The remaining fee(s) if any will be payable before any permit is issued. These fees could change later\r\n Payable on submission {{submissionAmt }}
Amount paid {{paidAmt }}
Amount due now {{dueAmt }}
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Declaration by {{userDetails.FirstName}} {{userDetails.LastName}} on {{decl_date|date : 'dd/MM/yyyy'}}\r\n You declare that you agree with the declaration above by checking the box:\r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n ","export enum Account {\r\n First = 0,\r\n Second = 1,\r\n Third = 2,\r\n Fourth = 3,\r\n Fifth = 4\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { CarrierAccountService } from 'app/services/carrier-account.service';\r\nimport { AuthWebService } from 'app/services/authweb.service';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { DatePipe } from '@angular/common';\r\nimport { CorspdcService } from 'app/services/corspdc.service';\r\nimport { PopupService } from 'app/services/shared/popup.service';\r\nimport { DialogService } from 'ng2-bootstrap-modal';\r\nimport { AssignRolePopupComponent } from './popups/assign-role-popup.component';\r\nimport { CarrierService } from 'app/services/carrier.service';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { ConfirmDialogService } from 'app/services/shared/confirm-dialog/confirm-dialog.service';\r\nimport { Console } from 'console';\r\n\r\n@Component({\r\n selector: 'app-consultant',\r\n templateUrl: './consultant.component.html',\r\n styleUrls: ['./consultant.component.css']\r\n})\r\nexport class ConsultantComponent implements OnInit {\r\n\r\n carrierData: any = null;\r\n\r\n carrierID: number;\r\n\r\n isLoading: boolean = false;\r\n isEmpty: boolean = false;\r\n consultants: any = [];\r\n user: any = {};\r\n page = 1\r\n user_email: string = \"\";\r\n user_number: string = \"\";\r\n user_name: any;\r\n username: string = \"\";\r\n status: any = \"0\";\r\n role: any = \"0\";\r\n count: number = 0;\r\n utility: any;\r\n message = \"Submitting your request, please wait...\";\r\n person_id: string;\r\n carrier_name: string;\r\n person: any;\r\n proceedDisabled = true;\r\n roleServedInd: number;\r\n edit: boolean;\r\n title: string;\r\n roles: any = [\r\n { role: 1, desc: \"Lead User\" },\r\n { role: 2, desc: \"Editor User\" },\r\n { role: 6, desc: \"Read User\" },\r\n { role: 11, desc: \"Owner\" },\r\n { role: 12, desc: \"Consultant\" },\r\n { role: 21, desc: \"Main Contact\" }\r\n ];\r\n\r\n\r\n constructor(private carrierService: CarrierService, \r\n private carrierAccountService: CarrierAccountService, private authWebService: AuthWebService, private router: Router,\r\n private toaster: ToastrService, private datepipe: DatePipe, private activeRoute: ActivatedRoute, private crspdService: CorspdcService, private showModal: PopupService,private confirmDialogService: ConfirmDialogService) {\r\n this.user = (this.authWebService.userData) ? this.authWebService.userData.User : null;\r\n }\r\n\r\n\r\n ngOnInit() {\r\n this.activeRoute.params.subscribe(params => {\r\n this.carrierID = params['id'];\r\n this.carrierService.getCarrierById(this.carrierID).subscribe(result => {\r\n this.carrierData = result;\r\n this.carrier_name = this.carrierData.name\r\n });\r\n });\r\n\r\n this.getConsultantsList(this.carrierID);\r\n }\r\n\r\n linkUser() {\r\n if (this.carrierData != null && (this.user_email.length > 0 || this.username.length > 0)) {\r\n this.isLoading = true;\r\n this.carrierAccountService.getUserToLink(this.user_email.length > 0 ? this.user_email.toLowerCase() : null, this.username.length > 0 ? this.username.toLowerCase() : null, this.carrierID).subscribe((result:any) => {\r\n this.isLoading = false;\r\n if (result == null) {\r\n this.toaster.warning('The user does not exist. Please ensure you have captured the correct email/username.');\r\n }\r\n else if(result.person_id == -1){\r\n this.toaster.warning(result.first_name + \" \" + result.last_name + ' is already linked to ' + this.carrierData.name + ' account and cannot be linked again.');\r\n }\r\n else {\r\n // document.getElementById('secretButton').click();\r\n //this.title = \"Link user\";\r\n //this.person = result;\r\n //this.edit= false;\r\n // this.dialogService.addDialog(AssignRolePopupComponent, {\r\n // title: \"Link user\",\r\n // message: result.first_name + ' ' + result.last_name + ' retrieved succesfully.',\r\n // comment: `Please select role you want to give user before proceeding.`,\r\n // confirmButtonText: \"Proceed\",\r\n // cancelButtonText: \"Cancel\",\r\n // person: result,\r\n // carrierID: this.carrierID,\r\n // carrierData: this.carrierData,\r\n // edit: false\r\n // }).subscribe((isConfirmed) => {\r\n // if (isConfirmed) {\r\n // this.getConsultantsList(this.carrierID);\r\n // } else {\r\n // return;\r\n // }\r\n // });\r\n\r\n this.confirmDialogService.confirmThis(\"You have selected '\" + this.roles.find(r => r.role == this.roleServedInd).desc + \" Role' for user \" + this.person.first_name + \" \" + this.person.last_name +\". Do you want to send user a One time Password to link them to \" + this.carrierData.name + \" account?\", () => { \r\n if (this.edit) {\r\n this.carrierAccountService.changeRoleForCarrierPerson(this.carrierID, this.person.person_id, this.roleServedInd, this.authWebService.userData.User.UserName).subscribe(result => {\r\n this.toaster.success('The role for ' + this.person.first_name + \" \" + this.person.last_name + ' has been changed succesfully.');\r\n this.getConsultantsList(this.carrierID);\r\n });\r\n }\r\n else {\r\n this.carrierAccountService.linkCarrrierPerson(this.carrierID, this.person.person_id, this.roleServedInd, this.authWebService.userData.User.UserName).subscribe(result => {\r\n if (result == \"Person already linked.\") {\r\n this.toaster.warning(this.person.first_name + \" \" + this.person.last_name + ' is already linked to ' + this.carrierData.name + ' account and cannot be linked again.');\r\n }\r\n else if (result == \"success\") {\r\n this.toaster.success(this.person.first_name + \" \" + this.person.last_name + ' has been sent an OTP to link your Account: ' + this.carrierData.name +' . Please check your email.');\r\n } else {\r\n }\r\n \r\n });\r\n }\r\n \r\n \r\n }, () => { \r\n }) \r\n }\r\n }, error => {\r\n this.isLoading = false;\r\n this.toaster.error(\"Unexpected error occured. Please contact the system administrator if the problem persists.\", \"\");\r\n });\r\n }\r\n }\r\n\r\n cancel() {\r\n //Takes back to the previous page\r\n this.router.navigate(['carrier/accounts/']);\r\n }\r\n\r\n onReset() {\r\n //Reset the filters\r\n this.role = \"0\";\r\n this.user_name = null;\r\n this.status = \"0\";\r\n this.getConsultantsList(this.carrierID);\r\n }\r\n\r\n onSearch() {\r\n //Search based on the filters \r\n this.getConsultantsList(this.carrierID, this.user_name, this.status, this.role);\r\n }\r\n\r\n resendOTP(carrier_person_id) {\r\n this.isLoading = true;\r\n this.carrierAccountService.ResendAccountLinkingOTP(this.authWebService.userData.User.UserName, carrier_person_id).subscribe(result => {\r\n this.isLoading = false;\r\n this.toaster.success('OTP sent succesfully.');\r\n });\r\n }\r\n\r\n\r\n //Update the role and the status\r\n updateConsultant(consultant: any) {\r\n\r\n this.message = \"Updating carrier account's person details,please wait...\";\r\n this.isLoading = true;\r\n this.carrierService.putConsultant(consultant).subscribe(result => {\r\n\r\n this.isLoading = false;\r\n\r\n this.toaster.success(\"Carrier Account's details updated successfully.\", \"Carrier Account's details\", { timeOut: 1000 });\r\n this.getConsultantsList(this.carrierID);\r\n }, error => {\r\n this.isLoading = false;\r\n this.toaster.error(\"Carrier Account's details could not be updated.Please contact the system administrator if the problem persists.\", \"Carrier Account's details\")\r\n });\r\n\r\n }\r\n\r\n\r\n getConsultantsList(id: number, username?: string, user_status?: string, role?: number) {\r\n this.isLoading = true;\r\n\r\n this.carrierService.getConsultantByAccount(id, username, user_status, role).subscribe((result:any) => {\r\n this.consultants = result;\r\n this.count = result.Count;\r\n this.isEmpty = (this.count == 0) ? true : false;\r\n console.dir(this.consultants);\r\n this.isLoading = false;\r\n\r\n }, error => {\r\n this.isLoading = false;\r\n this.isEmpty = true;\r\n //console.log('Error occured: ' + error);\r\n\r\n })\r\n }\r\n\r\n selectOptionList(selectedvalue, cons) {\r\n //console.log(cons);\r\n switch (selectedvalue) {\r\n case \"0\":\r\n //Mark as Inactive\r\n \r\n cons.status = \"Inactive\";\r\n this.updateConsultant(cons);\r\n \r\n\r\n break;\r\n case \"1\":\r\n //Change role\r\n this.ChangeUserRole(cons);\r\n break;\r\n\r\n case \"2\":\r\n //Resend OTP\r\n this.resendOTP(cons.carrier_person_id);\r\n\r\n break;\r\n\r\n default:\r\n break;\r\n\r\n }\r\n }\r\n\r\n ChangeUserRole(person) {\r\n //document.getElementById('secretButton').click();\r\n //this.title = \"Change User Role\";\r\n //this.person = person;\r\n //this.edit = true;\r\n // this.dialogService.addDialog(AssignRolePopupComponent, {\r\n // title: \"Change User Role\",\r\n // message: \"Change user role for \" + person.first_name + ' ' + person.last_name + '.',\r\n // comment: `Please select role you want to give user before proceeding.`,\r\n // confirmButtonText: \"Proceed\",\r\n // cancelButtonText: \"Cancel\",\r\n // person: person,\r\n // carrierID: this.carrierID,\r\n // carrierData: this.carrierData,\r\n // edit: true\r\n // }).subscribe((isConfirmed) => {\r\n // if (isConfirmed) {\r\n // this.getConsultantsList(this.carrierID);\r\n // } else {\r\n // return;\r\n // }\r\n // });\r\n this.confirmDialogService.confirmThis(\"You have selected '\" + this.roles.find(r => r.role == this.roleServedInd).desc + \" Role' for user \" + this.person.first_name + \" \" + this.person.last_name +\". Do you want to send user a One time Password to link them to \" + this.carrierData.name + \" account?\", () => { \r\n if (this.edit) {\r\n this.carrierAccountService.changeRoleForCarrierPerson(this.carrierID, this.person.person_id, this.roleServedInd, this.authWebService.userData.User.UserName).subscribe(result => {\r\n this.toaster.success('The role for ' + this.person.first_name + \" \" + this.person.last_name + ' has been changed succesfully.');\r\n this.getConsultantsList(this.carrierID);\r\n });\r\n }\r\n else {\r\n this.carrierAccountService.linkCarrrierPerson(this.carrierID, this.person.person_id, this.roleServedInd, this.authWebService.userData.User.UserName).subscribe(result => {\r\n if (result == \"Person already linked.\") {\r\n this.toaster.warning(this.person.first_name + \" \" + this.person.last_name + ' is already linked to ' + this.carrierData.name + ' account and cannot be linked again.');\r\n }\r\n else if (result == \"success\") {\r\n this.toaster.success(this.person.first_name + \" \" + this.person.last_name + ' has been sent an OTP to link your Account: ' + this.carrierData.name +' . Please check your email.');\r\n } else {\r\n }\r\n\r\n });\r\n }\r\n\r\n \r\n }, () => { \r\n })\r\n }\r\n\r\n cancelRoleChange() {\r\n //this.result = false;\r\n //this.close();\r\n }\r\n roleChange(roleServed) {\r\n this.proceedDisabled = false;\r\n this.roleServedInd = roleServed.value;\r\n }\r\n\r\n\r\n confirm(thisModal) {\r\n thisModal.style.display = \"none\";\r\n this.confirmDialogService.confirmThis(\"You have selected '\" + this.roles.find(r => r.role == this.roleServedInd).desc + \" Role' for user \" + this.person.first_name + \" \" + this.person.last_name +\". Do you want to send user a One time Password to link them to \" + this.carrierData.name + \" account?\", () => { \r\n if (this.edit) {\r\n this.carrierAccountService.changeRoleForCarrierPerson(this.carrierID, this.person.person_id, this.roleServedInd, this.authWebService.userData.User.UserName).subscribe(result => {\r\n this.toaster.success('The role for ' + this.person.first_name + \" \" + this.person.last_name + ' has been changed succesfully.');\r\n this.getConsultantsList(this.carrierID);\r\n return true;\r\n });\r\n }\r\n else {\r\n this.carrierAccountService.linkCarrrierPerson(this.carrierID, this.person.person_id, this.roleServedInd, this.authWebService.userData.User.UserName).subscribe(result => {\r\n if (result == \"Person already linked.\") {\r\n this.toaster.warning(this.person.first_name + \" \" + this.person.last_name + ' is already linked to ' + this.carrierData.name + ' account and cannot be linked again.');\r\n return false;\r\n }\r\n else if (result == \"success\") {\r\n this.toaster.success(this.person.first_name + \" \" + this.person.last_name + ' has been sent an OTP to link your Account: ' + this.carrierData.name +' . Please check your email.');\r\n this.getConsultantsList(this.carrierID);\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n\r\n });\r\n }\r\n\r\n \r\n }, () => { \r\n //this.result = false;\r\n }) \r\n }\r\n\r\n\r\n}\r\n","
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
My Account : Consultant Management
\r\n
\r\n
\r\n {{user?.UserName}}\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n\r\n\r\n
\r\n
\r\n
link user :
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Or
\r\n
\r\n
\r\n
\r\n
link user :
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n
Username :
\r\n
\r\n
Status :
\r\n
\r\n \r\n
Role :
\r\n
\r\n \r\n \r\n \r\n\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n\r\n \r\n \r\n 0\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n
UsernameEmailMobile NumberPhone NumberStatusRole
{{cons.username}}{{cons.email}}{{cons.mobile}}{{cons.phone}}{{cons.status}}Lead UserEditor UserRead UserOwnerConsultantMain Contact\r\n \r\n
\r\n \r\n
\r\n No Consultants Available for this account.\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n

{{title || 'Confirmation'}}

\r\n {{message}}
\r\n {{'Please select role you want to give user before proceeding'}}\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, ViewChild, AfterViewInit, ElementRef } from '@angular/core';\r\nimport { DialogComponent, DialogService } from 'ng2-bootstrap-modal';\r\nimport { CarrierAccountService } from 'app/services/carrier-account.service';\r\nimport { AuthWebService } from 'app/services/authweb.service';\r\nimport { PopupService } from 'app/services/shared/popup.service';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { ConfirmDialogService } from 'app/services/shared/confirm-dialog/confirm-dialog.service';\r\n\r\nexport interface YesNoModel {\r\n title: string;\r\n message: string;\r\n comment: string;\r\n confirmButtonText: string;\r\n cancelButtonText: string;\r\n person: any;\r\n carrierID: number;\r\n carrierData: any;\r\n edit: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'yesno',\r\n template: `
\r\n
\r\n
\r\n

{{title || 'Confirmation'}}

\r\n {{message}}
\r\n {{comment}} \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
`,\r\n styles: [`\r\n .bgd-c{background:rgb(57, 50,118 )!important;}\r\n .ft-c{color: rgb(253, 207,76 )!important;} \r\n `]\r\n})\r\nexport class AssignRolePopupComponent extends DialogComponent implements YesNoModel {\r\n title: string;\r\n message: string;\r\n comment: string;\r\n confirmButtonText: string;\r\n cancelButtonText: string;\r\n person: any;\r\n carrierID: number;\r\n roleServedInd: number;\r\n carrierData: any;\r\n edit: boolean;\r\n roles: any = [\r\n { role: 1, desc: \"Lead User\" },\r\n { role: 2, desc: \"Editor User\" },\r\n { role: 6, desc: \"Read User\" },\r\n { role: 11, desc: \"Owner\" },\r\n { role: 12, desc: \"Consultant\" },\r\n { role: 21, desc: \"Main Contact\" }\r\n ];\r\n proceedDisabled = true;\r\n constructor(dialogService: DialogService, private carrierAccountService: CarrierAccountService, private authWebService: AuthWebService, private showModal: PopupService, private toaster: ToastrService,private confirmDialogService: ConfirmDialogService) {\r\n super(dialogService);\r\n }\r\n\r\n confirm(thisModal) {\r\n thisModal.style.display = \"none\";\r\n // this.showModal.showYesNo(this.edit ? 'Change User Role' : 'Link user', \"You have selected '\" + this.roles.find(r => r.role == this.roleServedInd).desc + \" Role' for user \" + this.person.first_name + \" \" + this.person.last_name,\r\n // \"Do you want to send user a One time Password to link them to \" + this.carrierData.name + \" account?\", 'Yes', 'No').subscribe((isConfirmed) => {\r\n // if (isConfirmed) {\r\n // if (this.edit) {\r\n // this.carrierAccountService.changeRoleForCarrierPerson(this.carrierID, this.person.person_id, this.roleServedInd, this.authWebService.userData.User.UserName).subscribe(result => {\r\n // this.toaster.success('The role for ' + this.person.first_name + \" \" + this.person.last_name + ' has been changed succesfully.');\r\n // this.result = true;\r\n // this.close();\r\n // });\r\n // }\r\n // else {\r\n // this.carrierAccountService.linkCarrrierPerson(this.carrierID, this.person.person_id, this.roleServedInd, this.authWebService.userData.User.UserName).subscribe(result => {\r\n // if (result == \"Person already linked.\") {\r\n // this.toaster.warning(this.person.first_name + \" \" + this.person.last_name + ' is already linked to ' + this.carrierData.name + ' account and cannot be linked again.');\r\n // this.result = false;\r\n // this.close();\r\n // }\r\n // else if (result == \"success\") {\r\n // this.toaster.success(this.person.first_name + \" \" + this.person.last_name + ' has been sent an OTP to link your Account: ' + this.carrierData.name +' . Please check your email.');\r\n // this.result = true;\r\n // this.close();\r\n // } else {\r\n // this.result = false;\r\n // this.close();\r\n // }\r\n\r\n // });\r\n // }\r\n // } else {\r\n // this.result = false;\r\n // this.close();\r\n // }\r\n\r\n // });\r\n this.confirmDialogService.confirmThis(\"You have selected '\" + this.roles.find(r => r.role == this.roleServedInd).desc + \" Role' for user \" + this.person.first_name + \" \" + this.person.last_name +\". Do you want to send user a One time Password to link them to \" + this.carrierData.name + \" account?\", () => { \r\n if (this.edit) {\r\n this.carrierAccountService.changeRoleForCarrierPerson(this.carrierID, this.person.person_id, this.roleServedInd, this.authWebService.userData.User.UserName).subscribe(result => {\r\n this.toaster.success('The role for ' + this.person.first_name + \" \" + this.person.last_name + ' has been changed succesfully.');\r\n this.result = true;\r\n this.close();\r\n });\r\n }\r\n else {\r\n this.carrierAccountService.linkCarrrierPerson(this.carrierID, this.person.person_id, this.roleServedInd, this.authWebService.userData.User.UserName).subscribe(result => {\r\n if (result == \"Person already linked.\") {\r\n this.toaster.warning(this.person.first_name + \" \" + this.person.last_name + ' is already linked to ' + this.carrierData.name + ' account and cannot be linked again.');\r\n this.result = false;\r\n }\r\n else if (result == \"success\") {\r\n this.toaster.success(this.person.first_name + \" \" + this.person.last_name + ' has been sent an OTP to link your Account: ' + this.carrierData.name +' . Please check your email.');\r\n this.result = true;\r\n } else {\r\n this.result = false;\r\n }\r\n\r\n });\r\n }\r\n\r\n \r\n }, () => { \r\n this.result = false;\r\n }) \r\n }\r\n cancel() {\r\n this.result = false;\r\n this.close();\r\n }\r\n roleChange(roleServed) {\r\n this.proceedDisabled = false;\r\n this.roleServedInd = roleServed.value;\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { UtilityServiceService } from 'app/services/utility-service.service';\r\nimport { CorspdcService } from 'app/services/corspdc.service';\r\nimport { Router } from '@angular/router';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\n@Component({\r\n selector: 'app-batch',\r\n templateUrl: './batch.component.html',\r\n styleUrls: ['./batch.component.css']\r\n})\r\nexport class BatchComponent implements OnInit {\r\n\r\n batches = [];\r\n batch:any = {};\r\n direction: boolean = false;\r\n criteria = \"DateSubmitted\"; \r\n isLoading: Boolean = false;\r\n message: string = 'Loading correspondence batches, please wait...'; \r\n currentPage = 1;\r\n isEmpty: boolean = false;\r\n pageSize: number = 10;\r\n count: number = 0;\r\n\r\n\r\n constructor(public utility: UtilityServiceService, private corspdcService: CorspdcService, private router: Router, private toastr: ToastrService) { }\r\n\r\n ngOnInit() { \r\n this.loadBatches();\r\n this.utility.initTooltip();\r\n }\r\n\r\n onNextOrPrevious(page: number = 1) {\r\n this.message = 'Loading correspondence batches, please wait...'; \r\n this.loadBatches(page, this.pageSize);\r\n this.currentPage = page;\r\n return page;\r\n }\r\n\r\n loadBatches(page: number = 1, pageSize: number = 10): void {\r\n this.message = 'Loading correspondence batches, please wait...'; \r\n this.isLoading = true;\r\n this.corspdcService.listBatches(page, pageSize).subscribe((result:any) => {\r\n this.batches = result.Batches;\r\n this.count = result.Count;\r\n this.isEmpty = (this.count == 0) ? true : false; \r\n this.isLoading = false; \r\n }, error => {\r\n this.batches = [];\r\n this.isEmpty = true;\r\n //console.log('Error occured: ' + error);\r\n this.isLoading = false;\r\n });\r\n }\r\n\r\n closeBatches = () => {\r\n this.router.navigateByUrl('/corspdc/list');\r\n }\r\n\r\n send = () => {\r\n this.isLoading = true;\r\n this.message = \"Sending correspondences, please wait...\";\r\n this.corspdcService.runSend().subscribe((result:any) => {\r\n this.batch = result.Batch; \r\n if (this.batch == null) {\r\n this.toastr.info(`No correspondences to send available. `, 'Sending Correspondences');\r\n }\r\n else {\r\n this.toastr.success(` ${this.batch.num_emails_sent} email(s) and ${this.batch.num_sms_sent} SMS(s) sent.`, 'Sending Correspondences');\r\n this.loadBatches();\r\n } \r\n this.isLoading = false;\r\n }, error => { \r\n //console.log('Error occured: ' + error);\r\n this.isLoading = false;\r\n });\r\n }\r\n\r\n onChange = () => {\r\n this.loadBatches(this.utility.page = 1, this.pageSize);\r\n }\r\n\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n

Correspondence Batches

\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n Correspondence Batches\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Date/time startedDate/time completed#Emails sent#SMS sent
{{item.date_created | date:'y/MM/dd HH:mm:ss'}}{{item.date_modified | date:'y/MM/dd HH:mm:ss'}}{{item.num_emails_sent}}{{item.num_sms_sent}}
\r\n
1\">\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n Close\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n Send\r\n
\r\n
\r\n
\r\n No Correspondence Logs found.\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { UtilityServiceService } from 'app/services/utility-service.service';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { CorspdcService } from 'app/services/corspdc.service';\r\nimport { AuthWebService } from 'app/services/authweb.service';\r\nimport { CarrierAccountService } from 'app/services/carrier-account.service';\r\nimport { parse } from 'path';\r\n\r\n@Component({\r\n selector: 'corspdc',\r\n templateUrl: './corspdc.component.html',\r\n styleUrls: ['./corspdc.component.css']\r\n})\r\nexport class CorspdcComponent implements OnInit {\r\n logs: any = [];\r\n statuses: any = [];\r\n flags = { flagAN: 1, flagNM: 1, flagLU: 1, flagCT: 1, flagAP: 1, flagPT: 1, flagST: 1, flagDS: 1 };\r\n ranks = { flagAN: 1, flagNM: 2, flagLU: 3, flagCT: 4, flagAP: 5, flagPT: 6, flagST: 7, flagDS: 8 };\r\n sortLabels = { flagAN: \"AccountNumber\", flagNM: \"Name\", flagLU: \"LeadUser\", flagCT: \"CarrierType\", flagAP: \"ApplicationNumber\", flagPT: \"PermitType\", flagST: \"Status\", flagDS: \"DateSubmitted\" };\r\n direction: boolean = false;\r\n criteria = \"DateSubmitted\";\r\n rankCtrl: number = 8;\r\n isLoading: Boolean = false;\r\n message: string = 'Loading correspondence logs, please wait...'; \r\n keyword: any = {};\r\n currentPage = 1;\r\n isEmpty: boolean = false;\r\n pageSize: number = 10;\r\n count: number = 0;\r\n disabled = false;\r\n ShowFilter = false;\r\n bodyText = \"\";\r\n toCC = \"\";\r\n subject = \"\";\r\n from = \"\";\r\n careerName = \"\";\r\n appCode = \"\";\r\n permNum = \"\";\r\n dateSent = \"\";\r\n dateFrom = \"\";\r\n dateTo = \"\";\r\n filterUSelected='0';\r\n filterTSelected = '0';\r\n selectedCarrier = 0;\r\n carriers: any = [];\r\n isShown: boolean = false;\r\n changeClass: number = 0;\r\n carrierAccountNumber =\"\";\r\n carrier_account_code=\"\";\r\n carrier_id: number = -1;\r\n\r\n filter_one = [\r\n {\r\n key: 'All',\r\n value:0\r\n },\r\n {\r\n key: 'Application',\r\n value: 1\r\n },\r\n {\r\n key: 'Permit',\r\n value: 2\r\n }\r\n ];\r\n\r\n filter_two = [\r\n {\r\n key: 'All',\r\n value: 0\r\n },\r\n {\r\n key: 'Sent',\r\n value: 1\r\n },\r\n {\r\n key: 'Received',\r\n value: 2\r\n }\r\n ,\r\n {\r\n key: 'Note',\r\n value: 3\r\n }\r\n ];\r\n\r\n \r\n constructor(private msg: ToastrService, public utility: UtilityServiceService, private corspdcService: CorspdcService, private authWebService: AuthWebService\r\n ,private caservice: CarrierAccountService) { }\r\n\r\n ngOnInit() {\r\n this.initCarrierDDL();\r\n this.initializeDates();\r\n this.setAccountNumber();\r\n this.initKeyword(); \r\n this.loadAccounts(this.currentPage, this.pageSize);\r\n this.utility.initTooltip();\r\n }\r\n\r\n\r\n\r\n loadAccounts = (page: number = 1, pageSize: number = 10, isDef: boolean = true) => {\r\n this.isLoading = true; \r\n console.log('keyword: ', this.keyword)\r\n this.corspdcService.searchCorrespondenceLogs(this.keyword, page, pageSize).subscribe((result:any) => {\r\n this.logs = result.Items;\r\n this.count = result.Count;\r\n this.isEmpty = (this.count == 0) ? true : false;\r\n //this.onExcuteSort(this.rankCtrl);\r\n this.isLoading = false; \r\n ////console.log('Logs: ', this.logs)\r\n }, error => {\r\n this.logs = [];\r\n this.isEmpty = true;\r\n //console.log('Error occured: ' + error);\r\n this.isLoading = false;\r\n });\r\n\r\n }\r\n\r\n initKeyword = () => {\r\n //need to get carrier id based on the account number entered\r\n //console.log(\"account number \" + this.carrierAccountNumber);\r\n //console.log((this.carrierAccountNumber.replace(/\\s/g, \"\") != \"\") ? this.carrierAccountNumber.replace(/\\s/g, \"\") : \"ALL\");\r\n \r\n \r\n this.keyword = {\r\n carrier_id : this.selectedCarrier,\r\n filter_one: parseInt(this.filterUSelected),\r\n filter_two: parseInt(this.filterTSelected),\r\n date_from: this.dateFrom,\r\n date_to: this.dateTo\r\n }; \r\n }\r\n \r\n onReset = () => {\r\n this.isShown = false;\r\n this.filterUSelected = '0';\r\n this.filterTSelected = '0';\r\n this.selectedCarrier = 0;\r\n this.carrierAccountNumber =\"\";\r\n this.initializeDates();\r\n this.setAccountNumber();\r\n this.initKeyword();\r\n this.utility.page = 1;\r\n this.message = 'Loading correspondence logs, please wait...';\r\n this.loadAccounts(this.utility.page, this.pageSize);\r\n }\r\n\r\n initCarrierDDL = () => {\r\n /* this.corspdcService.listCarrier().subscribe(\r\n result => {\r\n this.carriers = result;\r\n },\r\n error => {\r\n //console.log('Error = ', error)\r\n }); */\r\n \r\n }\r\n setAccountNumber() {\r\n this.carrier_account_code = (this.carrierAccountNumber.replace(/\\s/g, \"\") != \"\") ? this.carrierAccountNumber.replace(/\\s/g, \"\") : \"ALL\";\r\n console.log(\"Carrier Account Number typed: \" + this.carrier_account_code);\r\n this.caservice.GetCarrierIDByAccountNumber(this.carrier_account_code)\r\n .subscribe((result:any) => {\r\n this.selectedCarrier = result.id;\r\n this.carrier_id = result.id;\r\n }, error => {\r\n console.log(\"Error \" + error)\r\n }); \r\n \r\n \r\n console.log(\"after set number call:\" + this.carrier_account_code + \" the result carrier id returned: \" + this.carrier_id);\r\n }\r\n onQueryChanged() {\r\n this.setAccountNumber();\r\n }\r\n initializeDates() {\r\n //if (this.dateFrom == \"\" || this.dateTo == \"\") {\r\n let g = new Date();\r\n g.setDate(g.getDate() - 90);\r\n\r\n let mm = (g.getMonth() + 1).toString();\r\n if (mm.length == 1) {\r\n mm = \"0\" + mm;\r\n }\r\n let dd = (g.getDate()).toString();\r\n if (dd.length == 1)\r\n dd = \"0\" + dd;\r\n\r\n this.dateFrom = g.getFullYear().toString() + \"-\" + mm + \"-\" + dd;\r\n\r\n let m = (new Date().getMonth() + 1).toString();\r\n if (m.length == 1)\r\n m = \"0\" + m;\r\n let d = (new Date().getDate()).toString();\r\n if (d.length == 1)\r\n d = \"0\" + d;\r\n this.dateTo = new Date().getFullYear() + \"-\" + m + \"-\" + d;\r\n //}\r\n }\r\n\r\n\r\n onSearch = () => {\r\n this.isShown = false;\r\n console.log(\"what has been typed:\"+ this.carrierAccountNumber);\r\n this.setAccountNumber();\r\n console.log(\"on search pressed and setAccounNumber called :\" + this.selectedCarrier);\r\n this.setAccountNumber();\r\n console.log(\"after second call \" + this.selectedCarrier);\r\n this.initKeyword(); \r\n //console.log('Saved values = ', this.keyword);\r\n this.utility.page = 1;\r\n this.message = \"Searching for correspondence logs, please wait...\";\r\n this.loadAccounts(this.utility.page, this.pageSize);\r\n }\r\n\r\n preview = (item: any) => { \r\n this.toCC = item.persons_to.toString().split(',').join('; ');\r\n this.bodyText = item.body_text\r\n this.subject = item.subject;\r\n this.dateSent = item.date_sent;\r\n this.from = item.person_from;\r\n this.careerName = item.carrierName;\r\n this.permNum = item.permit_num;\r\n this.appCode = item.app_id_permit_type_code;\r\n this.isShown = true;\r\n this.changeClass = item.id; \r\n this.utility.initTooltip();\r\n }\r\n\r\n closeBody = () => {\r\n this.isShown = false;\r\n this.changeClass = 0;\r\n }\r\n\r\n onNextOrPrevious(page: number = 1) {\r\n this.message = 'Loading permit applications, please wait...';\r\n this.initKeyword(); \r\n this.loadAccounts(page, this.pageSize);\r\n this.currentPage = page;\r\n return page;\r\n }\r\n onChange = () => {\r\n this.loadAccounts(this.utility.page = 1, this.pageSize);\r\n }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
⊄Search Correspondence Log
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n Filters\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
    \r\n
  • \r\n \r\n {{item.key}}\r\n
  • \r\n
\r\n
\r\n
    \r\n
  • \r\n \r\n {{item.key}}\r\n
  • \r\n
\r\n
\r\n
\r\n
Date From : 
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
Date To : 
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n Correspondence Log\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 1\" style=\"padding-left:0px;margin-left:0px;\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n
Sent/RcvdCarrierSubjectDateToApplicationPermitType
{{item.sent_rcvd}}{{item.carrierName}}{{item.subject}}{{item.date_sent?.toLocaleString() | date:'y/MM/dd HH:mm:ss'}}{{item.persons_to}}{{item.app_id_permit_type_code}}{{item.permit_num}}{{item.comm_type}}
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n No Correspondence Logs found.\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n Message Preview\r\n
\r\n
\r\n

{{subject}}

\r\n
{{from}}
\r\n
{{dateSent | date:'y/MM/dd HH:mm:ss'}}
\r\n
To/CC:{{toCC}}
\r\n
Carrier : {{careerName||'None'}}
\r\n
Application : {{appCode ||'None'}}
\r\n
Permit : {{permNum||'None'}}
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n Close\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Component({\r\n selector: 'app-add-data-extract',\r\n templateUrl: './add-data-extract.component.html',\r\n styleUrls: ['./add-data-extract.component.css']\r\n})\r\nexport class AddDataExtractComponent implements OnInit {\r\n public iframeUrl: any = null;\r\n constructor(public sanitizer: DomSanitizer) { }\r\n\r\n ngOnInit() {\r\n this.iframeUrl = this.sanitizer.bypassSecurityTrustResourceUrl(environment.extractToView.url + \"App_config/dcDataExport.aspx\");\r\n }\r\n back(){\r\n this.iframeUrl = this.sanitizer.bypassSecurityTrustResourceUrl(environment.extractToView.url + \"App_config/dcDataExport.aspx\");\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n
Data Extracts: Setup extracts
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n Back\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-extract-views',\r\n templateUrl: './extract-views.component.html',\r\n styleUrls: ['./extract-views.component.css']\r\n})\r\nexport class ExtractViewsComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Select an option
\r\n \r\n \r\n \r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { AuthWebService } from 'app/services/authweb.service';\r\n\r\n@Component({\r\n selector: 'app-run-extracts',\r\n templateUrl: './run-extracts.component.html',\r\n styleUrls: ['./run-extracts.component.css']\r\n})\r\nexport class RunExtractsComponent implements OnInit {\r\n \r\n public iframeUrl: any = null;\r\n public user: any = null;\r\n\r\n constructor(public sanitizer: DomSanitizer, private authWebService: AuthWebService) {\r\n this.user = (this.authWebService.userData) ? this.authWebService.userData.User : null;\r\n }\r\n\r\n ngOnInit() {\r\n console.log(JSON.stringify(this.user));\r\n console.log('VTE URl', environment.extractToView.url + \"dataexport/ifrmExportListing.aspx?UserID=\" + this.user.Id);\r\n this.iframeUrl = this.sanitizer.bypassSecurityTrustResourceUrl(environment.extractToView.url + \"dataexport/ifrmExportListing.aspx?UserID=\" + this.user.Id);\r\n }\r\n back(){\r\n this.iframeUrl = this.sanitizer.bypassSecurityTrustResourceUrl(environment.extractToView.url + \"dataexport/ifrmExportListing.aspx?UserID=\" + this.user.Id + \" \");\r\n console.log('VTE URl', environment.extractToView.url + \"dataexport/ifrmExportListing.aspx?UserID=\" + this.user.Id);\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n
Data Extracts: Run extracts
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n Back\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-facebookpolicy',\r\n templateUrl: './facebookpolicy.component.html',\r\n styleUrls: ['./facebookpolicy.component.css']\r\n})\r\nexport class FacebookpolicyComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","\r\n\r\n\r\n\r\n Privacy Policy for Cross Easy - FreePrivacyPolicy.com\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n

Privacy Policy for Cross Easy

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Privacy Policy

\r\n

Last updated: October 05, 2022

\r\n

This Privacy Policy describes Our policies and procedures on the collection, use and disclosure of Your information when You use the Service and tells You about Your privacy rights and how the law protects You.

\r\n

We use Your Personal data to provide and improve the Service. By using the Service, You agree to the collection and use of information in accordance with this Privacy Policy. This Privacy Policy has been created with the help of the\r\n Free Privacy Policy Generator.

\r\n

Interpretation and Definitions

\r\n

Interpretation

\r\n

The words of which the initial letter is capitalized have meanings defined under the following conditions. The following definitions shall have the same meaning regardless of whether they appear in singular or in plural.

\r\n

Definitions

\r\n

For the purposes of this Privacy Policy:

\r\n
    \r\n
  • \r\n

    Account means a unique account created for You to access our Service or parts of our Service.

    \r\n
  • \r\n
  • \r\n

    Company (referred to as either \"the Company\", \"We\", \"Us\" or \"Our\" in this Agreement) refers to Corporation, The Atrium on 5th, 5th St, Sandhurst, Sandton, 2196.

    \r\n
  • \r\n
  • \r\n

    Cookies are small files that are placed on Your computer, mobile device or any other device by a website, containing the details of Your browsing history on that website among its many uses.

    \r\n
  • \r\n
  • \r\n

    Country refers to: South Africa

    \r\n
  • \r\n
  • \r\n

    Device means any device that can access the Service such as a computer, a cellphone or a digital tablet.

    \r\n
  • \r\n
  • \r\n

    Personal Data is any information that relates to an identified or identifiable individual.

    \r\n
  • \r\n
  • \r\n

    Service refers to the Website.

    \r\n
  • \r\n
  • \r\n

    Service Provider means any natural or legal person who processes the data on behalf of the Company. It refers to third-party companies or individuals employed by the Company to facilitate the Service, to provide\r\n the Service on behalf of the Company, to perform services related to the Service or to assist the Company in analyzing how the Service is used.

    \r\n
  • \r\n
  • \r\n

    Usage Data refers to data collected automatically, either generated by the use of the Service or from the Service infrastructure itself (for example, the duration of a page visit).

    \r\n
  • \r\n
  • \r\n

    Website refers to Cross Easy, accessible from https://icbmsdev.cbrta.co.za/

    \r\n
  • \r\n
  • \r\n

    You means the individual accessing or using the Service, or the company, or other legal entity on behalf of which such individual is accessing or using the Service, as applicable.

    \r\n
  • \r\n
\r\n

Collecting and Using Your Personal Data

\r\n

Types of Data Collected

\r\n

Personal Data

\r\n

While using Our Service, We may ask You to provide Us with certain personally identifiable information that can be used to contact or identify You. Personally identifiable information may include, but is not limited to:

\r\n
    \r\n
  • \r\n

    Email address

    \r\n
  • \r\n
  • \r\n

    First name and last name

    \r\n
  • \r\n
  • \r\n

    Usage Data

    \r\n
  • \r\n
\r\n

Usage Data

\r\n

Usage Data is collected automatically when using the Service.

\r\n

Usage Data may include information such as Your Device's Internet Protocol address (e.g. IP address), browser type, browser version, the pages of our Service that You visit, the time and date of Your visit, the time spent on those\r\n pages, unique device identifiers and other diagnostic data.

\r\n

When You access the Service by or through a mobile device, We may collect certain information automatically, including, but not limited to, the type of mobile device You use, Your mobile device unique ID, the IP address of Your mobile\r\n device, Your mobile operating system, the type of mobile Internet browser You use, unique device identifiers and other diagnostic data.

\r\n

We may also collect information that Your browser sends whenever You visit our Service or when You access the Service by or through a mobile device.

\r\n

Tracking Technologies and Cookies

\r\n

We use Cookies and similar tracking technologies to track the activity on Our Service and store certain information. Tracking technologies used are beacons, tags, and scripts to collect and track information and to improve and analyze\r\n Our Service. The technologies We use may include:

\r\n
    \r\n
  • Cookies or Browser Cookies. A cookie is a small file placed on Your Device. You can instruct Your browser to refuse all Cookies or to indicate when a Cookie is being sent. However, if You do not accept Cookies,\r\n You may not be able to use some parts of our Service. Unless you have adjusted Your browser setting so that it will refuse Cookies, our Service may use Cookies.
  • \r\n
  • Web Beacons. Certain sections of our Service and our emails may contain small electronic files known as web beacons (also referred to as clear gifs, pixel tags, and single-pixel gifs) that permit the Company, for\r\n example, to count users who have visited those pages or opened an email and for other related website statistics (for example, recording the popularity of a certain section and verifying system and server integrity).
  • \r\n
\r\n

Cookies can be \"Persistent\" or \"Session\" Cookies. Persistent Cookies remain on Your personal computer or mobile device when You go offline, while Session Cookies are deleted as soon as You close Your web browser. Learn more about cookies\r\n on the Free Privacy Policy website article.

\r\n

We use both Session and Persistent Cookies for the purposes set out below:

\r\n
    \r\n
  • \r\n

    Necessary / Essential Cookies

    \r\n

    Type: Session Cookies

    \r\n

    Administered by: Us

    \r\n

    Purpose: These Cookies are essential to provide You with services available through the Website and to enable You to use some of its features. They help to authenticate users and prevent fraudulent use of user accounts. Without\r\n these Cookies, the services that You have asked for cannot be provided, and We only use these Cookies to provide You with those services.

    \r\n
  • \r\n
  • \r\n

    Cookies Policy / Notice Acceptance Cookies

    \r\n

    Type: Persistent Cookies

    \r\n

    Administered by: Us

    \r\n

    Purpose: These Cookies identify if users have accepted the use of cookies on the Website.

    \r\n
  • \r\n
  • \r\n

    Functionality Cookies

    \r\n

    Type: Persistent Cookies

    \r\n

    Administered by: Us

    \r\n

    Purpose: These Cookies allow us to remember choices You make when You use the Website, such as remembering your login details or language preference. The purpose of these Cookies is to provide You with a more personal experience\r\n and to avoid You having to re-enter your preferences every time You use the Website.

    \r\n
  • \r\n
\r\n

For more information about the cookies we use and your choices regarding cookies, please visit our Cookies Policy or the Cookies section of our Privacy Policy.

\r\n

Use of Your Personal Data

\r\n

The Company may use Personal Data for the following purposes:

\r\n
    \r\n
  • \r\n

    To provide and maintain our Service, including to monitor the usage of our Service.

    \r\n
  • \r\n
  • \r\n

    To manage Your Account: to manage Your registration as a user of the Service. The Personal Data You provide can give You access to different functionalities of the Service that are available to You as a registered\r\n user.\r\n

    \r\n
  • \r\n
  • \r\n

    For the performance of a contract: the development, compliance and undertaking of the purchase contract for the products, items or services You have purchased or of any other contract with Us through the Service.

    \r\n
  • \r\n
  • \r\n

    To contact You: To contact You by email, telephone calls, SMS, or other equivalent forms of electronic communication, such as a mobile application's push notifications regarding updates or informative communications\r\n related to the functionalities, products or contracted services, including the security updates, when necessary or reasonable for their implementation.

    \r\n
  • \r\n
  • \r\n

    To provide You with news, special offers and general information about other goods, services and events which we offer that are similar to those that you have already purchased or enquired about unless You\r\n have opted not to receive such information.

    \r\n
  • \r\n
  • \r\n

    To manage Your requests: To attend and manage Your requests to Us.

    \r\n
  • \r\n
  • \r\n

    For business transfers: We may use Your information to evaluate or conduct a merger, divestiture, restructuring, reorganization, dissolution, or other sale or transfer of some or all of Our assets, whether\r\n as a going concern or as part of bankruptcy, liquidation, or similar proceeding, in which Personal Data held by Us about our Service users is among the assets transferred.

    \r\n
  • \r\n
  • \r\n

    For other purposes: We may use Your information for other purposes, such as data analysis, identifying usage trends, determining the effectiveness of our promotional campaigns and to evaluate and improve our\r\n Service, products, services, marketing and your experience.

    \r\n
  • \r\n
\r\n

We may share Your personal information in the following situations:

\r\n
    \r\n
  • With Service Providers: We may share Your personal information with Service Providers to monitor and analyze the use of our Service, to contact You.
  • \r\n
  • For business transfers: We may share or transfer Your personal information in connection with, or during negotiations of, any merger, sale of Company assets, financing, or acquisition of all or a portion of Our\r\n business to another company.
  • \r\n
  • With Affiliates: We may share Your information with Our affiliates, in which case we will require those affiliates to honor this Privacy Policy. Affiliates include Our parent company and any other subsidiaries,\r\n joint venture partners or other companies that We control or that are under common control with Us.
  • \r\n
  • With business partners: We may share Your information with Our business partners to offer You certain products, services or promotions.
  • \r\n
  • With other users: when You share personal information or otherwise interact in the public areas with other users, such information may be viewed by all users and may be publicly distributed outside.
  • \r\n
  • With Your consent: We may disclose Your personal information for any other purpose with Your consent.
  • \r\n
\r\n

Retention of Your Personal Data

\r\n

The Company will retain Your Personal Data only for as long as is necessary for the purposes set out in this Privacy Policy. We will retain and use Your Personal Data to the extent necessary to comply with our legal obligations (for\r\n example, if we are required to retain your data to comply with applicable laws), resolve disputes, and enforce our legal agreements and policies.

\r\n

The Company will also retain Usage Data for internal analysis purposes. Usage Data is generally retained for a shorter period of time, except when this data is used to strengthen the security or to improve the functionality of Our\r\n Service, or We are legally obligated to retain this data for longer time periods.

\r\n

Transfer of Your Personal Data

\r\n

Your information, including Personal Data, is processed at the Company's operating offices and in any other places where the parties involved in the processing are located. It means that this information may be transferred to — and\r\n maintained on — computers located outside of Your state, province, country or other governmental jurisdiction where the data protection laws may differ than those from Your jurisdiction.

\r\n

Your consent to this Privacy Policy followed by Your submission of such information represents Your agreement to that transfer.

\r\n

The Company will take all steps reasonably necessary to ensure that Your data is treated securely and in accordance with this Privacy Policy and no transfer of Your Personal Data will take place to an organization or a country unless\r\n there are adequate controls in place including the security of Your data and other personal information.

\r\n

Delete Your Personal Data

\r\n

You have the right to delete or request that We assist in deleting the Personal Data that We have collected about You.

\r\n

Our Service may give You the ability to delete certain information about You from within the Service.

\r\n

You may update, amend, or delete Your information at any time by signing in to Your Account, if you have one, and visiting the account settings section that allows you to manage Your personal information. You may also contact Us to\r\n request access to, correct, or delete any personal information that You have provided to Us.

\r\n

Please note, however, that We may need to retain certain information when we have a legal obligation or lawful basis to do so.

\r\n

Disclosure of Your Personal Data

\r\n

Business Transactions

\r\n

If the Company is involved in a merger, acquisition or asset sale, Your Personal Data may be transferred. We will provide notice before Your Personal Data is transferred and becomes subject to a different Privacy Policy.

\r\n

Law enforcement

\r\n

Under certain circumstances, the Company may be required to disclose Your Personal Data if required to do so by law or in response to valid requests by public authorities (e.g. a court or a government agency).

\r\n

Other legal requirements

\r\n

The Company may disclose Your Personal Data in the good faith belief that such action is necessary to:

\r\n
    \r\n
  • Comply with a legal obligation
  • \r\n
  • Protect and defend the rights or property of the Company
  • \r\n
  • Prevent or investigate possible wrongdoing in connection with the Service
  • \r\n
  • Protect the personal safety of Users of the Service or the public
  • \r\n
  • Protect against legal liability
  • \r\n
\r\n

Security of Your Personal Data

\r\n

The security of Your Personal Data is important to Us, but remember that no method of transmission over the Internet, or method of electronic storage is 100% secure. While We strive to use commercially acceptable means to protect Your\r\n Personal Data, We cannot guarantee its absolute security.

\r\n

Children's Privacy

\r\n

Our Service does not address anyone under the age of 13. We do not knowingly collect personally identifiable information from anyone under the age of 13. If You are a parent or guardian and You are aware that Your child has provided\r\n Us with Personal Data, please contact Us. If We become aware that We have collected Personal Data from anyone under the age of 13 without verification of parental consent, We take steps to remove that information from Our servers.

\r\n

If We need to rely on consent as a legal basis for processing Your information and Your country requires consent from a parent, We may require Your parent's consent before We collect and use that information.

\r\n

Links to Other Websites

\r\n

Our Service may contain links to other websites that are not operated by Us. If You click on a third party link, You will be directed to that third party's site. We strongly advise You to review the Privacy Policy of every site You\r\n visit.\r\n

\r\n

We have no control over and assume no responsibility for the content, privacy policies or practices of any third party sites or services.

\r\n

Changes to this Privacy Policy

\r\n

We may update Our Privacy Policy from time to time. We will notify You of any changes by posting the new Privacy Policy on this page.

\r\n

We will let You know via email and/or a prominent notice on Our Service, prior to the change becoming effective and update the \"Last updated\" date at the top of this Privacy Policy.

\r\n

You are advised to review this Privacy Policy periodically for any changes. Changes to this Privacy Policy are effective when they are posted on this page.

\r\n

Contact Us

\r\n

If you have any questions about this Privacy Policy, You can contact us:

\r\n
    \r\n
  • By email: amukelanih@praxis.co.za
  • \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n

Generated using Free Privacy Policy Generator

\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n","import { Component, OnInit,Injectable, Input, Output } from '@angular/core';\r\nimport { Router, ActivatedRoute } from \"@angular/router\";\r\nimport { environment } from 'environments/environment';\r\nimport { StorageService } from 'app/services/storage.service';\r\nimport { AuthWebService } from 'app/services/authweb.service';\r\n\r\n@Component({\r\n selector: 'app-forgot',\r\n templateUrl: './forgot.component.html',\r\n styleUrls: ['./forgot.component.css']\r\n})\r\nexport class ForgotComponent implements OnInit {\r\n params: any = {};\r\n loginUser: any = { };\r\n\tsystemCode: String = null;\r\n\r\n constructor(private authWebservice: AuthWebService, private storageService: StorageService,\r\n\t\tprivate router: Router) { }\r\n\r\n ngOnInit() {\r\n this.systemCode = environment.authWebApi.systemCode\r\n }\r\n sendPassword(){\r\n \r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n

\r\n \r\n \r\n \r\n Forgot Password?\r\n

\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
","import { Component, OnInit,Injectable, Input, Output } from '@angular/core';\r\nimport { Router, ActivatedRoute } from \"@angular/router\";\r\nimport { environment } from '../../../environments/environment';\r\n\r\nimport { StorageService } from 'app/services/storage.service';\r\nimport { AuthWebService } from 'app/services/authweb.service';\r\n\r\n@Component({\r\n selector: 'app-username',\r\n templateUrl: './username.component.html',\r\n styleUrls: ['./username.component.css']\r\n})\r\nexport class UsernameComponent implements OnInit {\r\n params: any = {};\r\n loginUser: any = { };\r\n\tsystemCode: String = null;\r\n\r\n constructor(private authWebservice: AuthWebService, private storageService: StorageService,\r\n\t\tprivate router: Router) { }\r\n\r\n ngOnInit() {\r\n this.systemCode = environment.authWebApi.systemCode\r\n }\r\n sendUsername(){\r\n \r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n

\r\n \r\n \r\n \r\n Forgot Username?\r\n

\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
","import { Component, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { Router, ActivatedRoute, Params } from '@angular/router';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { AuthenticationService } from '../services/authentication.service';\r\nimport { AuthWebService } from 'app/services/authweb.service';\r\nimport { environment } from '../../environments/environment';\r\nimport { StorageService } from 'app/services/storage.service';\r\n\r\n\r\n@Component({\r\n selector: 'home',\r\n templateUrl: 'home.component.html',\r\n styleUrls: ['home.component.css'],\r\n encapsulation: ViewEncapsulation.None,\r\n })\r\n\r\nexport class HomeComponent implements OnInit {\r\n title = 'Praxis iCBMS Base System';\r\n\r\n url: string ;\r\n pagehtml;\r\n\r\n constructor(private sanitizer: DomSanitizer, private authWebService: AuthWebService,\r\n private router: Router,private storageService:StorageService,\r\n private activRoute: ActivatedRoute) {}\r\n\r\n ngOnInit() {\r\n this.isUserLoggedIn(); \r\n this.setPageHTML()\r\n }\r\n\r\n isUserLoggedIn() {\r\n if (this.authWebService.authenticated === true) {\r\n if(this.storageService.isLogged){\r\n this.storageService.isLogged=false;\r\n (this.isExternal()) ? this.router.navigate(['carrier/accounts']) : this.router.navigate(['home']);\r\n }else{\r\n (this.isExternal()) ? this.router.navigate(['carrier/accounts/NEWAPP']) : this.router.navigate(['home']);\r\n }\r\n \r\n }\r\n }\r\n\r\n isExternal = () => { \r\n return ((this.authWebService.userData.Roles.length == 1) && (this.authWebService.userData.Roles[0].Code == \"GUEST\")) ? true : false;\r\n }\r\n\r\n setPageHTML(){\r\n this.authWebService.webrequest(\"GET\",'ConfigurationService', 'SystemConfig',JSON.stringify({\r\n systemCode: environment.authWebApi.systemCode\r\n })).then((data) => {\r\n environment.authWebApi.systemData = data;\r\n let html = environment.authWebApi.systemData.Configurations.find(p => p.Code == 'iCBMS_Land1');\r\n if (html) {\r\n this.pagehtml = this.sanitizer.bypassSecurityTrustHtml(html.Value);\r\n } else {\r\n this.pagehtml = \"CBRTA - Integrated Cross Border Management System\";\r\n }\r\n\r\n //console.log( environment.authWebApi.userData )\r\n }, (error) => {\r\n //console.log(error)\r\n });\r\n }\r\n\r\n}\r\n","\r\n

\r\n","import { Component, OnInit, Injectable, Input, Output, NgZone } from '@angular/core';\r\nimport { Router, ActivatedRoute, NavigationEnd } from \"@angular/router\";\r\n\r\nimport { environment } from '../../environments/environment';\r\nimport { StorageService } from 'app/services/storage.service';\r\nimport { AuthWebService } from 'app/services/authweb.service';\r\nimport { AlertComponent } from 'app/popup/alert.component';\r\nimport { DialogService } from 'ng2-bootstrap-modal';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { SocialloginService } from '../services/sociallogin.service';\r\nimport { Socialusers } from '../models/socialusers';\r\nimport { MsalService } from '@azure/msal-angular';\r\nimport { AuthenticationResult } from '@azure/msal-browser';\r\n\r\nimport { ViewChild } from '@angular/core';\r\nimport { ElementRef } from '@angular/core';\r\n\r\n\r\nimport {\r\n\tGoogleLoginProvider,\r\n\tFacebookLoginProvider,\r\n\tSocialAuthService,\r\n\tSocialUser,\r\n } from 'angular12-social-login';\r\nimport { timer } from 'rxjs';\r\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\r\nimport { IdleManagerService } from 'app/services/idle-manager.service';\r\nimport { SignalrService } from 'app/services/signalr.service';\r\nimport { CredentialResponse } from 'google-one-tap';\r\n\r\ndeclare var async: any;\r\ndeclare var jQuery: any;\r\n\r\n@Component({\r\n\tselector: 'app-login',\r\n\ttemplateUrl: './login.component.html',\r\n\tstyleUrls: ['./login.component.css'],\r\n})\r\nexport class LoginComponent implements OnInit {\r\n\tloadingpage: boolean = true;\r\n\tauth2: any;\r\n\t@ViewChild('loginRef', { static: true }) loginElement!: ElementRef;\r\nreCaptcha: string = null;\r\n\tparams: any = {};\r\n loginUser: any = { };\r\n aUser: any = {};\r\n\tsystemCode: String = null;\r\n\tbuildVersion : String = null;\r\n\tenvironment:string = null;\r\n\tuser = \"Haddad\";\r\n\tsKey: string = null;\r\n\thide: boolean = true;\r\n\tshowCaptcha:boolean=false;\r\n\tcorrespondenceType:string = null;\r\n\tpublic isLoading = false;\r\n\tmessage = null;\r\n\tsocialusers = new Socialusers();\r\n\tusergoogle: SocialUser;\r\n\tisreloaded: false;\r\n\tloggedIn: boolean;\r\n\r\n\tgoogleLoginOptions = {\r\n\t\tscope: 'profile email'\r\n\t }; // https://developers.google.com/api-client-library/javascript/reference/referencedocs#gapiauth2clientconfig\r\n\t \tdnnForm:any;\r\n\t\r\n\r\n\tconstructor(public authWebservice: AuthWebService, private storageService: StorageService, private signalrService: SignalrService,\r\n\t\tprivate router: Router,private toastr: ToastrService,public OAuth: SocialAuthService, private SocialloginService: SocialloginService,\r\n\t\tprivate msalService:MsalService,private idleSrvc: IdleManagerService,\r\n\t\t//private helper: HelperService,\r\n\t\tprivate zone: NgZone\r\n\t\t//private route: ActivatedRoute\r\n\t)\r\n\t{\r\n\t\t\r\n\t}\r\n\r\n\tngOnInit() {\r\n\t\tconsole.log(\"THe User Details old\");\r\n\r\n\t\tif(this.signalrService.Isterminated || this.authWebservice.isloggedout ){\r\n\t\t\tlocation.reload();\r\n\r\n\t\t}\r\n\r\n\t\t\r\n\r\n\t\t// this.OAuth.initState.subscribe(value => {\r\n\t\t// \tthis.OAuth.signIn(GoogleLoginProvider.PROVIDER_ID).then(user => {\r\n\t\t// \t console.log('GoogleContainerComponent.ngOnInit user:', user)\r\n\t\t// \t});\r\n\t\t// })\r\n\t\t // @ts-ignore\r\n\t\t \r\n\t\t\r\n\t\t// this.OAuth.authState.subscribe((user) => {\r\n\t\t// \tconsole.log(\"Auth User\");\r\n\t\t// \tconsole.log(user);\r\n\t\t// });\r\n\t\t\r\n\t\t// this.OAuth.authState.subscribe((user) => {\r\n\t\t// \tconsole.log(user);\r\n\t\t// \tthis.loggedIn = (user != null);\r\n\t\t// \tthis.OAuth.refreshAuthToken(GoogleLoginProvider.PROVIDER_ID)\r\n\t\t// });\r\n\r\n\t\t/*this.OAuth.initState.subscribe((user) => {\r\n\t\t\t\r\n\t\t\tthis.loggedIn = (user != null);\r\n\t\t\tconsole.log(\"THe User Details\");\r\n\t\t\tconsole.log(user);\r\n\t\t\tthis.OAuth.signOut(true);\r\n\t\t\tthis.OAuth.signOut();\r\n\t\t\t\r\n\t\t });*/\r\n\r\n\t\tthis.systemCode = environment.authWebApi.systemCode\r\n\t\tthis.buildVersion = environment.name + '-' + environment.version;\r\n\t\tthis.environment = environment.name;\r\n\t\tthis.sKey = environment.captcha.siteKey;\r\n\r\n\t\t//this.OAuth.signOut();\r\n\r\n\t\t// this.googleAuthSDK();\r\n\t\t\tthis.intialDnnForm();\r\n\r\n\t\t\tthis.googleAuthSDK(); \r\n\r\n\r\n\t}\r\n\r\n\tasync handleCredentialResponse(response: CredentialResponse) {\r\n\t\tdebugger;\r\n\t\tconsole.log(response.toString());\r\n\t}\r\n\r\n\tsignOut(): void {\r\n\t\tthis.OAuth.signOut();\r\n\t }\r\nngAfterViewInit(){\r\n\tsetTimeout(()=>{this.showCaptcha=true;},500); \r\n}\r\nintialDnnForm(){\r\n\tthis.dnnForm = new FormGroup({\r\n\t\tDnnUsername: new FormControl(),\r\n\t\tDnnPassword: new FormControl(),\r\n\t\t\r\n\t});\r\n}\r\nsubmit(){\r\n\tthis.isLoading = true;\r\n var form = document.getElementsByClassName('needs-validation')[0] as HTMLFormElement;\r\n if (form.checkValidity() === false) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }\r\n form.classList.add('was-validated');\r\n\t\tvar data ={\r\n\t\t\tusername: this.dnnForm.value.DnnUsername,\r\n\t\t\tpassword: this.dnnForm.value.DnnPassword,\r\n\t\t\tsystemcode: environment.authWebApi.systemCode\r\n\t\t}\r\n\t\tif(data.username === \"\" && data.password === \"\"){\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tdocument.getElementById('closeModal').click();\r\n\t\tthis.authWebservice.loginWithDNN(data).subscribe((data:any) => {\r\n\t\t\tthis.isLoading = false;\r\n       if (data.IsAuthenticated) {\r\n         environment.authWebApi.userData = data;\r\n         this.storageService.setID(data.User.Id);\r\n         this.storageService.setSessionId(data.User.Id);\r\n         this.idleSrvc.setLoggedIn(data.IsAuthenticated);\r\n         localStorage.setItem('isLogged','true');\r\n         this.storageService.isLogged=true;\r\n         let role:any=null;\r\n         let userRoles:any=data.Roles.filter((map=>{return map.Code=='ADMIN'}));\r\n         if(userRoles!=null && userRoles.length>0){\r\n            role='ADMIN'; \r\n         }else{\r\n           role='GUEST'\r\n         }\r\n \r\n         let previousUrl:any=localStorage.getItem(\"previousUrl\")!=undefined ? localStorage.getItem(\"previousUrl\") : sessionStorage.getItem(\"previousUrl\")!=undefined ? sessionStorage.getItem(\"previousUrl\") : undefined;\r\n         if(previousUrl!=undefined && (previousUrl.indexOf('process')>0 || previousUrl.indexOf('approval')>0) && role!=null && role=='ADMIN'){\r\n           this.router.navigate([previousUrl]);\r\n           localStorage.removeItem('previousUrl');\r\n         }else{\r\n\t\t\t\t\tthis.router.navigate(['home']);\r\n         }\r\n\t\t}\r\n\t\telse{\r\n\t\t\treturn this.toastr.error('This user is not authenticated to use Cross Easy','Login failed');\r\n\t\t }\r\n\t\t\t\r\n\t\t}, (error) => {\r\n\t\t\t//console.log(error);\r\n\t\t\tthis.isLoading = false;\r\n\t\t\t// this.dialogService.addDialog(AlertComporrnent, { title: 'Registration failed', message: 'Contact the administrator if the problem persists.' });\r\n\t\t\tthis.toastr.error('Contact the administrator if the problem persists.\\n'+'\\nTel : 012 471 2121'+'\\nEmail: helpdesk@cbrta.co.za','Login failed');\r\n\t\t });\r\n }\r\n\r\npublic callLogin() {\r\n\r\n\r\n\t// console.log(\"testing\");\r\n // this.auth2.signOut().then(function () {\r\n // console.log('User signed out.');\r\n // });\r\n\t// googleAuthUser.signOut().then(function () {\r\n\t// \tconsole.log('User signed out.');\r\n\t// });\r\n\t\r\n this.auth2.attachClickHandler(this.loginElement.nativeElement, {},\r\n (googleAuthUser: any) => {\r\n\r\n //Print profile details in the console logs\r\n\t\t// googleAuthUser.signOut().then(function () {\r\n\t\t// \tconsole.log('User signed out.');\r\n\t\t// });\r\n\t\r\n\r\n\r\n let profile = googleAuthUser.getBasicProfile();\r\n console.log('Token || ' + googleAuthUser.getAuthResponse().id_token);\r\n console.log('ID: ' + profile.getId());\r\n console.log('Name: ' + profile.getName());\r\n console.log('Image URL: ' + profile.getImageUrl());\r\n console.log('Email: ' + profile.getEmail());\r\n\r\n\t\tthis.aUser.DateCreated = this.aUser.DateUpdated = new Date();\r\n\t\t// this.aUser.UserCreated = this.aUser.UserUpdated = this.user;\r\n\t\tthis.aUser.ActiveYN = true;\r\n\t\t// this.isLoading = true;\r\n\t\t //console.dir(this.aUser);\r\n\t\tthis.aUser.UserName=profile.getEmail().toLowerCase();\r\n\t\tthis.aUser.EmailAddress=profile.getEmail().toLowerCase();\r\n\t\tvar SplittedName = profile.getName().split(\" \");\r\n\r\n\t\tthis.aUser.FirstName = SplittedName[1];\r\n\t\tthis.aUser.LastName = SplittedName[0];\r\n\t\tthis.aUser.Authenticator = \"Google\";\r\n\tconsole.log(\"User Data\")\r\n\t\tconsole.log(this.aUser)\r\n\t\t\r\n\t\tthis.zone.run(() => this.authWebservice.registersociallogin(this.aUser))\r\n\r\n }, (error: any) => {\r\n //alert(JSON.stringify(error, undefined, 2));\r\n });\r\n\r\n }\r\npublic googleAuthSDK() {\r\nconsole.log(\"GOOGLE IN\");\r\n (window)['googleSDKLoaded'] = () => {\r\n (window)['gapi'].load('auth2', () => {\r\n this.auth2 = (window)['gapi'].auth2.getAuthInstance({\r\n //client_id: '42235825666-vl4kgsvsl4lvh7986v1dl2ifspe351tk.apps.googleusercontent.com',\r\n\t\t client_id: '922769349816-o4sujaq5m0gs033ilvneqj8taffa71qs.apps.googleusercontent.com',\r\n plugin_name:'login',\r\n cookiepolicy: 'single_host_origin',\r\n scope: 'profile email'\r\n });\r\n\r\n this.callLogin();\r\n\t\t\r\n });\r\n }\r\n\r\n (function (d, s, id) {\r\n var js, fjs = d.getElementsByTagName(s)[0];\r\n if (d.getElementById(id)) { return; }\r\n js = d.createElement('script');\r\n js.id = id;\r\n js.src = \"https://apis.google.com/js/platform.js?onload=googleSDKLoaded\";\r\n fjs?.parentNode?.insertBefore(js, fjs);\r\n }(document, 'script', 'google-jssdk'));\r\n }\r\n\r\n\tlogin() {\r\n\t\tif(this.reCaptcha === null && this.environment != 'qa' && this.environment != 'dev' && this.environment != 'cbrtauat'){\t\t\t\r\n\t\t\treturn\tthis.toastr.warning('Are you a robot?','Recaptcha Warning');\r\n\t\t}\r\n if(this.loginUser.UserName.toLowerCase().includes('@cbrta.co.za')){\r\n\t\t\treturn this.azureLogin();\r\n\t\t}\r\n\t\tthis.loginUser.UserName=this.loginUser.UserName.toLowerCase();\r\n\t\tthis.authWebservice.login(this.loginUser.UserName, this.loginUser.Password);\r\n\t}\r\n\t\r\n\r\n regiser() {\r\n\tthis.router.navigateByUrl('/register');\r\n }\r\n\r\n forgot() {\r\n\tthis.router.navigateByUrl('/reset');\r\n }\r\n\r\n getSiteKey(){\r\n\t \t return this.sKey\r\n }\r\n\r\n\tresolved(captchaResponse: string){\r\n\t\t//console.log(captchaResponse)\r\n\t\tthis.reCaptcha = captchaResponse;\r\n\t}\r\n\r\n\tshowPassword() {\r\n\t\tthis.hide = !this.hide;\r\n\t }\r\n\r\n\r\n\t googlelogin(){\r\n\r\n\t\t//this.auth2.getAuthInstance().signOut();\r\n // this.auth2.signOut().then(function () {\r\n // console.log('User signed out.');\r\n // });\r\n\r\n\t this.auth2.attachClickHandler(this.loginElement.nativeElement, {},\r\n (googleAuthUser: any) => {\r\n\r\n //Print profile details in the console logs\r\n\t\t// googleAuthUser.signOut().then(function () {\r\n\t\t// \tconsole.log('User signed out.');\r\n\t\t// });\r\n\t\r\n\t\tconsole.log(\"testing\");\r\n \tthis.auth2.signOut(true);\r\n\t\t\r\n\t\tlocalStorage.clear();\r\n \tconsole.log('User signed out.');\r\n \r\n\r\n\r\n let profile = googleAuthUser.getBasicProfile();\r\n console.log('Token || ' + googleAuthUser.getAuthResponse().id_token);\r\n console.log('ID: ' + profile.getId());\r\n console.log('Name: ' + profile.getName());\r\n console.log('Image URL: ' + profile.getImageUrl());\r\n console.log('Email: ' + profile.getEmail());\r\n\r\n\t\tthis.aUser.DateCreated = this.aUser.DateUpdated = new Date();\r\n\t\t// this.aUser.UserCreated = this.aUser.UserUpdated = this.user;\r\n\t\tthis.aUser.ActiveYN = true;\r\n\t\t// this.isLoading = true;\r\n\t\t //console.dir(this.aUser);\r\n\t\tthis.aUser.UserName=profile.getEmail().toLowerCase();\r\n\t\tthis.aUser.EmailAddress=profile.getEmail().toLowerCase();\r\n\t\tvar SplittedName = profile.getName().split(\" \");\r\n\r\n\t\tthis.aUser.FirstName = SplittedName[1];\r\n\t\tthis.aUser.LastName = SplittedName[0];\r\n\t\tthis.aUser.Authenticator = \"Google\";\r\n\tconsole.log(\"User Data\")\r\n\t\tconsole.log(this.aUser)\r\n\t\t\r\n\t\tthis.zone.run(() => this.authWebservice.registersociallogin(this.aUser))\r\n\r\n }, (error: any) => {\r\n //alert(JSON.stringify(error, undefined, 2));\r\n });\r\n\t \r\n\t\t}\r\n\t\t\r\n\t \r\n\r\n\r\n\t signInWithGoogle(): void {\r\n\t\t// const googleLoginOptions = {\r\n\t\t// \tscope: 'profile email'\r\n\t\t// }; // https://developers.google.com/api-client-library/javascript/reference/referencedocs#gapiauth2clientconfig\r\n\t\t \r\n\t\t// this.OAuth.signIn(GoogleLoginProvider.PROVIDER_ID,googleLoginOptions);\r\n\t\tthis.OAuth.signIn(GoogleLoginProvider.PROVIDER_ID, this.googleLoginOptions).then(data =>{\r\n\t\t\tconsole.log(data)\r\n\t\t });\r\n\t }\r\n\t\r\n\t signInWithFB(): void {\r\n\t\tthis.OAuth.signOut();\r\n\t\tthis.OAuth.signIn(FacebookLoginProvider.PROVIDER_ID);\r\n\t }\r\n\r\n\t public socialSignIn(socialProvider: string) {\r\n\t\tlet authenticator = \"\";\r\n\t\tlet socialPlatformProvider = '';\r\n\t\tif (socialProvider === 'facebook') {\r\n\t\t socialPlatformProvider = FacebookLoginProvider.PROVIDER_ID;\r\n\t\t authenticator = \"Facebook\";\r\n\t\t} else if (socialProvider === 'google') {\r\n\t\t socialPlatformProvider = GoogleLoginProvider.PROVIDER_ID;\r\n\t\t authenticator = \"Google\";\r\n\t\t \r\n\t\t}\r\n\t\r\n\t\tconsole.log(\"social \", socialPlatformProvider)\r\n\t\t// signInWithGoogle(): void {\r\n\t\t// this.authService.signIn(GoogleLoginProvider.PROVIDER_ID);\r\n\t\t// }\r\n\t\r\n\t\t// signInWithFB(): void {\r\n\t\t// this.authService.signIn(FacebookLoginProvider.PROVIDER_ID);\r\n\t\t// }\r\n\t\t\t\t\r\n\t\r\n\t\t// this.OAuth.signIn(GoogleLoginProvider.PROVIDER_ID);\r\n\t\r\n\t\t// this.OAuth.signIn(FacebookLoginProvider.PROVIDER_ID);\r\n\t\t\r\n\t\t\r\n\t\tthis.OAuth.signIn(socialPlatformProvider).then(\r\n\t\t (socialusers: SocialUser) => {\r\n\t\t\tconsole.log(socialProvider, socialusers);\r\n\t\t\tconsole.log(socialusers);\r\n\t\t\t// this.Savesresponse(socialusers);\r\n\t\t\t// this.form.value.FirstName = socialusers.firstName;\r\n\t\t\t// this.OAuth.signOut().then(function () =>{\r\n\r\n\t\t\t// })\r\n\t// this.checkMobileNumber();\r\n\t\r\n\t// if (!this.numberisvalid )\r\n\t// {\r\n\t// return this.toastr.warning('Please check the Mobile Number','Registration failed');\r\n\t// }\r\n\t\t\t \r\n\t\r\n\t\t\r\n\t\tthis.aUser.DateCreated = this.aUser.DateUpdated = new Date();\r\n\t\t// this.aUser.UserCreated = this.aUser.UserUpdated = this.user;\r\n\t\tthis.aUser.ActiveYN = true;\r\n\t\t// this.isLoading = true;\r\n\t\t //console.dir(this.aUser);\r\n\t\t if(socialusers.email != undefined){\r\n\t\tthis.aUser.UserName=socialusers.email.toLowerCase();\r\n\t\tthis.aUser.EmailAddress=socialusers.email.toLowerCase();\r\n\t\t }else{\r\n\t\t\tthis.aUser.UserName=socialusers.id.toLowerCase();\r\n\t\t\tthis.aUser.EmailAddress=socialusers.id.toLowerCase();\r\n\t\t }\r\n\t\tthis.aUser.FirstName = socialusers.firstName;\r\n\t\tthis.aUser.LastName = socialusers.lastName;\r\n\t\tthis.aUser.Authenticator = authenticator;\r\n\t//console.log(\"User Data\")\r\n\t//\tconsole.log(this.aUser)\r\n\t\tthis.authWebservice.registersociallogin(this.aUser);\r\n\t\t\r\n\t\t this.isLoading = false;\r\n\t\t \r\n\t\t }\r\n\t\t).catch(data => {\r\n\t\t\tthis.OAuth.signOut();\r\n\t\t\tthis.router.navigate(['login']);\r\n\t\t });\r\n\t }\r\n\t azureLogin(){\r\n\t\t this.message = \"Loading...\";\r\n\t\tthis.aUser.UserName=this.loginUser.UserName.toLowerCase();\r\n\t\t this.aUser.CommunicationType = this.correspondenceType === \"2\" ? \"SMS\" : \"EMAIL\";\r\n\t\t\tthis.isLoading = true;\r\n\t\t //console.log(this.aUser);\r\n\t\t\tthis.aUser.Password = this.loginUser.Password\r\n\r\n\t\t this.authWebservice.registerAzure(this.aUser);\r\n\t\t this.isLoading = false;\r\n\t }\r\n}\r\n","\"iCBMS\"\r\n
\r\n \r\n
\r\n
\r\n

Convenient, Effective and Secure way to apply and manage your Permits Online\r\n
\r\n \r\n \r\n {{buildVersion}}\r\n \r\n
\r\n
\r\n
\r\n

\r\n\r\n
\r\n
\r\n

LOGIN

\r\n \r\n
\r\n \r\n
\r\n Email is required\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n\r\n
\r\n Password is required\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
OR
\r\n
\r\n \r\n \r\n \r\n\r\n
\r\n \r\n\r\n
\r\n \r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Please click HERE to access the\r\n CrossEasy User Manual.       \r\n
\r\n
\r\n Login with CBRTA Info Portal \r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n

CBRTA Information Portal Login

\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n
Username from CBRTA Info Portal is required.
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
Password from CBRTA Info Portal is required.
\r\n
\r\n\r\n \r\n
\r\n\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { PermitTypeService } from 'app/services/permit-type.service';\r\nimport { AlertComponent } from 'app/popup/alert.component';\r\nimport { FormControl, Validators, FormGroup, FormBuilder } from '@angular/forms';\r\nimport { UtilityServiceService } from 'app/services/utility-service.service';\r\nimport { DialogService } from 'ng2-bootstrap-modal';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { StatusService } from 'app/services/status.service';\r\nimport { AuthWebService } from 'app/services/authweb.service';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { CarrierTypeService } from 'app/services/carrier-type.service';\r\nimport { CountryService } from 'app/services/country.service';\r\nimport { PlaceService } from 'app/services/place.service';\r\n\r\n@Component({\r\n selector: 'app-add-new-place',\r\n templateUrl: './add-new-place.component.html',\r\n styleUrls: ['./add-new-place.component.css']\r\n})\r\nexport class AddNewPlaceComponent implements OnInit {\r\n form: FormGroup;\r\n pStatus: any = {};\r\n sub: any;\r\n lblHeading = '';\r\n btnActionLabel = '';\r\n isEdit: boolean;\r\n isCodeDup = false;\r\n isIdDup = false;\r\n selectedDisplay = 3;\r\n selectedSUI = 3;\r\n message = null;\r\n public isLoading = false;\r\n now = new Date();\r\n audit = { created: '', updated: '' };\r\n user = { LastName: '' };\r\n countryList: any = [];\r\n provinceList: any = [];\r\n placeList: any = [];\r\n selectedList: any;\r\n placeId: any = \"\";\r\n editFlag: boolean = false;\r\n constructor(private statusService: StatusService, private authWebService: AuthWebService,\r\n private router: Router,\r\n private route: ActivatedRoute, private countryService: CountryService,\r\n private carrierTypeService: CarrierTypeService, private formBuilder: FormBuilder,\r\n public utility: UtilityServiceService, private toastr: ToastrService,\r\n private placeService: PlaceService) {\r\n this.form = this.formBuilder.group({\r\n code: [''],\r\n name: [''],\r\n country_id: [''],\r\n border_country1_id: ['0'],\r\n border_country2_id: ['0'],\r\n province_id: [''],\r\n parent_place_id: [''],\r\n longitude: [''],\r\n latitude: [''],\r\n coordinates: [''],\r\n is_town: [true],\r\n is_border_post: [true],\r\n is_taxi_rank: [true],\r\n is_terminus: [true],\r\n type: [''],\r\n sort_order: [''],\r\n group_code: [''],\r\n display_ind: [''],\r\n is_active: [true],\r\n date_created: [new Date()],\r\n date_modified: [new Date()]\r\n\r\n });\r\n }\r\n\r\n\r\n ngOnInit() {\r\n this.isEdit = false;\r\n this.lblHeading = 'New Place';\r\n this.btnActionLabel = 'Save';\r\n let id: any = this.route.params['_value'].id;\r\n this.user.LastName = (this.authWebService.userData) ? this.authWebService.userData.User.LastName : '';\r\n id = atob(id);\r\n this.getCountries();\r\n this.getPlaces(id);\r\n this.getProvinces();\r\n this.placeId = btoa(id);\r\n this.audit = this.utility.setAuditAttributes(this.now, this.user.LastName, this.now, this.user.LastName);\r\n if (this.router.url.includes('edit')) {\r\n let placeId: any = this.route.params['_value'].placeId;\r\n placeId = atob(placeId);\r\n //this.placeId=placeId;\r\n this.getSelectedPlace(placeId);\r\n this.editFlag = true;\r\n }\r\n }\r\n getCountries() {\r\n this.countryService.listAllCountries().subscribe(res => {\r\n this.countryList = res;\r\n })\r\n }\r\n getProvinces() {\r\n this.countryService.listAllProvinces().subscribe(res => {\r\n this.provinceList = res;\r\n })\r\n }\r\n getPlaces(id) {\r\n this.placeService.getAllCountryPlaces(id).subscribe(res => {\r\n this.placeList = res;\r\n })\r\n }\r\n savePlace() {\r\n let body: any = this.form.value;\r\n if (!body.is_border_post) {\r\n body.border_country1_id = null;\r\n body.border_country2_id = null;\r\n }\r\n if (this.editFlag) {\r\n body.id = this.selectedList.id;\r\n this.placeService.updatePlace(body).subscribe(res => {\r\n this.toastr.success('Place updated successfully');\r\n this.router.navigate(['/countries/list/' + this.placeId]);\r\n })\r\n } else {\r\n this.placeService.savePlace(body).subscribe(res => {\r\n this.toastr.success('New Place added successfully');\r\n this.router.navigate(['/countries/list/' + this.placeId]);\r\n })\r\n }\r\n\r\n }\r\n getSelectedPlace(id) {\r\n this.placeService.getPlaceById(id).subscribe(res => {\r\n this.selectedList = res;\r\n this.mergeData(res);\r\n this.lblHeading = this.selectedList.name;\r\n })\r\n }\r\n borderPostChange(isBorderCrossingRef) {\r\n let form = this.form.value;\r\n form.border_country1_id = null;\r\n form.border_country2_id = null;\r\n form.is_border_post = isBorderCrossingRef.checked;\r\n this.mergeData(form);\r\n }\r\n mergeData(list) {\r\n this.form.get('code').setValue(list.code);\r\n this.form.get('country_id').setValue(list.country_id);\r\n this.form.get('border_country1_id').setValue(list.border_country1_id == null ? 0 : list.border_country1_id);\r\n this.form.get('border_country2_id').setValue(list.border_country2_id == null ? 0 : list.border_country2_id);\r\n this.form.get('name').setValue(list.name);\r\n this.form.get('province_id').setValue(list.province_id);\r\n this.form.get('type').setValue(list.type);\r\n this.form.get('parent_place_id').setValue(list.parent_place_id);\r\n this.form.get('longitude').setValue(list.longitude);\r\n this.form.get('latitude').setValue(list.latitude);\r\n this.form.get('coordinates').setValue(list.coordinates);\r\n this.form.get('is_town').setValue(list.is_town);\r\n this.form.get('is_border_post').setValue(list.is_border_post);\r\n this.form.get('is_terminus').setValue(list.is_terminus);\r\n this.form.get('is_taxi_rank').setValue(list.is_taxi_rank);\r\n this.form.get('is_active').setValue(list.is_active);\r\n this.form.get('sort_order').setValue(list.sort_order);\r\n this.form.get('group_code').setValue(list.group_code);\r\n this.form.get('display_ind').setValue(list.display_ind);\r\n this.form.get('date_created').setValue(list.date_created);\r\n this.form.get('date_modified').setValue(list.date_modified);\r\n this.audit = this.utility.setAuditAttributes(list.date_created, this.user.LastName, list.date_modified, this.user.LastName);\r\n }\r\n\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n
\r\n

Place: {{lblHeading}}

\r\n
\r\n
\r\n
\r\n A Place is any geographic location that the CBRTA or a carrier can use in describing a route. A place can be the\r\n start, rest, stop, landmark, destination, border-crossing, etc. of a route. Routes are made up of route-legs and each\r\n route-leg is from one place to another place.\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n (Please select the south or east country in the first field by convention.)\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
Created
\r\n
\r\n
Updated
\r\n
\r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { AuthWebService } from 'app/services/authweb.service';\r\nimport { ScannerService } from 'app/services/scanner.service';\r\nimport { UtilityServiceService } from 'app/services/utility-service.service';\r\nimport { VehicleTypeService } from 'app/services/vehicle-type.service';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\n@Component({\r\n selector: 'app-add-scanner',\r\n templateUrl: './add-scanner.component.html',\r\n styleUrls: ['./add-scanner.component.css']\r\n})\r\nexport class AddScannerComponent implements OnInit {\r\n form;\r\n vType: any = {};\r\n sub: any;\r\n lblHeading = '';\r\n btnActionLabel = '';\r\n isEdit: boolean; \r\n isDup = false; \r\n selectedDisplay = 3;\r\n message = null;\r\n now = new Date();\r\n audit = { created: '', updated: '' };\r\n user = { LastName: '' };\r\n \r\n \r\n public isLoading = false;\r\n\r\n constructor(private service: ScannerService, private authWebService: AuthWebService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n public utility: UtilityServiceService,private toastr:ToastrService) { }\r\n\r\n ngOnInit() {\r\n\r\n this.initForm();\r\n this.user.LastName = (this.authWebService.userData) ? this.authWebService.userData.User.LastName : '';\r\n this.sub = this.route.params.subscribe(params => {\r\n if (this.router.url.indexOf('edit') != -1) {\r\n this.isEdit = true;\r\n this.lblHeading = 'Edit Scanner';\r\n this.btnActionLabel = 'Update';\r\n const id = +params['id'];\r\n this.isLoading = true;\r\n this.service.getScannerByID(id).subscribe(result => {\r\n console.log(result)\r\n this.vType = result;\r\n this.isLoading = false;\r\n (this.form)\r\n .setValue({\r\n id: this.vType.id\r\n , device_id: this.vType.device_id\r\n , scanner_alias: this.vType.scanner_alias\r\n , scanner_ip_address: this.vType.scanner_ip_address\r\n ,date_modified:this.vType.date_created\r\n ,user_created:this.vType.user_created\r\n ,user_modified:this.vType.user_created\r\n ,date_created:this.vType.date_created\r\n ,status_id:this.vType.status_id\r\n ,pc_ip_address:this.vType.pc_ip_address\r\n ,scanner_status:this.vType.status_id\r\n\r\n\r\n }, { onlySelf: true });\r\n this.audit = this.utility.setAuditAttributes(this.vType.date_created, this.vType.user_created, this.vType.date_created, this.vType.user_modified);\r\n });\r\n } else {\r\n this.isEdit = false;\r\n this.lblHeading = 'Add New';\r\n this.btnActionLabel = 'Save';\r\n this.audit = this.utility.setAuditAttributes(this.now, this.user.LastName, this.now, this.user.LastName); \r\n }\r\n });\r\n }\r\n\r\n\r\n initForm() {\r\n this.form = new FormGroup({\r\n id: new FormControl()\r\n , device_id: new FormControl(this.vType.device_id)\r\n , scanner_alias: new FormControl(this.vType.scanner_alias)\r\n , scanner_ip_address: new FormControl(this.vType.scanner_ip_address)\r\n , date_created: new FormControl()\r\n , date_modified: new FormControl()\r\n , user_created: new FormControl()\r\n , user_modified: new FormControl()\r\n ,status_id: new FormControl()\r\n , scanner_status: new FormControl(this.vType.scanner_id)\r\n ,pc_ip_address: new FormControl(this.vType.pc_ip_address)\r\n });\r\n this.form.patchValue(this.utility.defaults);\r\n\r\n }\r\n\r\n ngOnDestroy() {\r\n this.sub.unsubscribe();\r\n }\r\n\r\n onSubmit(obj: any) { \r\n this.vType = obj;\r\n this.vType.status_id = this.form.controls['scanner_status'].value;\r\n this.message = (this.isEdit) ? \"Updating Scanner...\" : \"Adding a new Scanner...\";\r\n if (this.isEdit) {\r\n this.vType.date_modified = new Date().toLocaleString();\r\n this.vType.user_modified = this.user.LastName;\r\n this.isLoading = true;\r\n //console.log(JSON.stringify(obj));\r\n this.service.update(this.vType).subscribe(result => {\r\n this.vType = result;\r\n this.isLoading = false;\r\n //this.dialogService.addDialog(AlertComponent, { title: 'Update Scanner', message: `Scanner ${this.vType.device_id} updated succesfully.`, bold: `${this.vType.device_id}` });\r\n this.toastr.success(`Scanner ${this.vType.device_id} updated succesfully.`,'Update Scanner');\r\n this.navigate();\r\n }, error => {\r\n this.isLoading = false;\r\n // this.dialogService.addDialog(AlertComponent, { title: `Update Scanner`, message: `Failed to update Scanner with ${this.vType.device_id}.Please contact the system administrator if the problem persists.`, bold: `${this.vType.device_id}` });\r\n this.toastr.error(`Failed to update Scanner with ${this.vType.device_id}.Please contact the system administrator if the problem persists.`,'Update Scanner');\r\n });\r\n } else {\r\n this.vType.date_modified = this.vType.date_created = new Date().toLocaleString();\r\n this.vType.user_modified = this.vType.user_created = this.user.LastName;\r\n\r\n this.isLoading = true;\r\n //console.log(JSON.parse(JSON.stringify(obj)));\r\n console.dir(this.vType);\r\n this.service.add(this.vType).subscribe(result => {\r\n this.vType = result;\r\n this.isLoading = false;\r\n // this.dialogService.addDialog(AlertComponent, { title: 'New Scanner', message: `New Scanner ${this.vType.device_id} added successfully.`, bold: `${this.vType.device_id}` });\r\n this.toastr.success(`New Scanner ${this.vType.device_id} added successfully.`,'New Scanner');\r\n this.navigate();\r\n }, error => {\r\n this.isLoading = false;\r\n // this.dialogService.addDialog(AlertComponent, { title: `New Scanner`, message: `Failed to add New Scanner with ${this.vType.device_id}.Please contact the system administrator if the problem persists.`, bold: `${this.vType.device_id}` });\r\n this.toastr.error(`Failed to add New Scanner with ${this.vType.device_id}.Please contact the system administrator if the problem persists.`,'New Scanner');\r\n });\r\n }\r\n }\r\n\r\n navigate() {\r\n this.router.navigateByUrl('/scanner/list');\r\n }\r\n\r\n onDuplicates(control) {\r\n\r\n\r\n }\r\n\r\n\r\n \r\n onChangeValue() {\r\n \r\n }\r\n\r\n onSelectChange() {\r\n\r\n }\r\n \r\n}\r\n","
\r\n
\r\n
\r\n
Scanner {{lblHeading}}
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
Created
\r\n
\r\n
Updated
\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { FormGroup, FormControl, Validators } from '@angular/forms'\r\n\r\n//Popup Components\r\nimport { AlertComponent } from '../../popup/alert.component';\r\nimport { DialogService } from 'ng2-bootstrap-modal';\r\nimport { CarrierTypeDocumentService } from 'app/services/carrier-type-document.service';\r\nimport { UtilityServiceService } from 'app/services/utility-service.service';\r\nimport { AuthWebService } from 'app/services/authweb.service';\r\nimport { CarrierTypeService } from 'app/services/carrier-type.service';\r\nimport {DocumenttypeService} from 'app/services/documenttype.service';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\n@Component({\r\n selector: 'app-carrier-type-document',\r\n templateUrl: './carrier-type-document.component.html',\r\n styleUrls: ['./carrier-type-document.component.css']\r\n})\r\nexport class CarrierTypeDocumentComponent implements OnInit {\r\n\r\n form;\r\n vCDocType: any = {};\r\n carrierTypes:any =[];\r\n docuTypes:any=[];\r\n sub: any;\r\n lblHeading = '';\r\n btnActionLabel = '';\r\n isEdit: boolean; \r\n isDup = false; \r\n selectedDisplay = 3;\r\n message = null;\r\n now = new Date();\r\n audit = { created: '', updated: '' };\r\n user = { LastName: '' };\r\n \r\n public isLoading = false;\r\n\r\n constructor(private service: CarrierTypeDocumentService,private carrierTypeService: CarrierTypeService,\r\n private docutypeservice: DocumenttypeService,\r\n private authWebService: AuthWebService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n public utility: UtilityServiceService,private toastr: ToastrService) { }\r\n\r\n ngOnInit() {\r\n //get list of carrier types\r\n //console.log(\"Fetch Carrier Types\");\r\n this.carrierTypeService.getAll().subscribe(result => {\r\n this.carrierTypes = result;\r\n \r\n }, error => {\r\n \r\n });\r\n //console.log(this.carrierTypes);\r\n //get list of document types\r\n //console.log(\"Fetch Document Types\");\r\n \r\n this.docutypeservice.getAll().subscribe(result => {\r\n this.docuTypes = result;\r\n \r\n }, error => {\r\n \r\n });\r\n //console.log(this.docuTypes);\r\n \r\n //set value to the ids that come with the object\r\n\r\n\r\n this.initForm();\r\n \r\n this.user.LastName = (this.authWebService.userData) ? this.authWebService.userData.User.LastName : '';\r\n this.sub = this.route.params.subscribe(params => {\r\n if (this.router.url.indexOf('edit') != -1) {\r\n this.isEdit = true;\r\n this.lblHeading = 'Edit Carried Document Type';\r\n this.btnActionLabel = 'Update';\r\n const id = +params['id'];\r\n this.isLoading = true;\r\n this.service.getById(id).subscribe(result => {\r\n this.vCDocType = result;\r\n this.isLoading = false;\r\n (this.form)\r\n .setValue({\r\n id: this.vCDocType.id\r\n , carrier_type_id: this.vCDocType.carrier_type_id\r\n , carriertype: this.vCDocType.carriertype\r\n , document_type_id: this.vCDocType.document_type_id\r\n , doctype: this.vCDocType.doctype\r\n , is_active: this.vCDocType.is_active\r\n , date_created: this.vCDocType.date_created\r\n , date_modified: this.vCDocType.date_modified\r\n , user_created: this.vCDocType.user_created\r\n , user_modified: this.vCDocType.user_modified\r\n \r\n }, { onlySelf: true });\r\n this.audit = this.utility.setAuditAttributes(this.vCDocType.date_created, this.vCDocType.user_created, this.vCDocType.date_modified, this.vCDocType.user_modified);\r\n });\r\n } else {\r\n this.isEdit = false;\r\n this.lblHeading = 'Add New';\r\n this.btnActionLabel = 'Save';\r\n this.audit = this.utility.setAuditAttributes(this.now, this.user.LastName, this.now, this.user.LastName); \r\n }\r\n });\r\n }\r\n initForm(){\r\n this.form = new FormGroup({\r\n id: new FormControl()\r\n , carrier_type_id: new FormControl(this.vCDocType.carrier_type_id, Validators.required)\r\n , carriertype: new FormControl(this.vCDocType.carriertype, Validators.required)\r\n , document_type_id: new FormControl(this.vCDocType.document_type_id, Validators.required)\r\n , doctype: new FormControl(this.vCDocType.doctype, Validators.required)\r\n , is_active: new FormControl(this.vCDocType.is_active,Validators.required)\r\n , date_created: new FormControl()\r\n , date_modified: new FormControl()\r\n , user_created: new FormControl()\r\n , user_modified: new FormControl()\r\n , vehicle: new FormControl()\r\n });\r\n this.form.patchValue(this.utility.defaults);\r\n\r\n } \r\n navigate() {\r\n this.router.navigateByUrl('carrier/documenttype/list');\r\n }\r\n ngOnDestroy() {\r\n this.sub.unsubscribe();\r\n }\r\n onSelectChange(){\r\n\r\n }\r\n onSubmit(obj: any) { \r\n if (this.isDup) { return; }\r\n this.vCDocType = obj;\r\n this.message = (this.isEdit) ? \"Updating Carried Document Type...\" : \"Adding a new Carried Document Type...\";\r\n if (this.isEdit) {\r\n this.vCDocType.date_modified = new Date();\r\n this.vCDocType.user_modified = this.user.LastName;\r\n this.isLoading = true;\r\n //console.log(JSON.stringify(obj));\r\n this.service.update(this.vCDocType).subscribe(result => {\r\n this.vCDocType = result;\r\n this.isLoading = false;\r\n // this.dialogService.addDialog(AlertComponent, { title: 'Update Carried Document Type', message: `Carried Document Type ${this.vCDocType.carriertype} updated succesfully.`, bold: `${this.vCDocType.carriertype}` });\r\n this.toastr.success(`Carried Document Type ${this.vCDocType.carriertype} updated succesfully.`,'Update Carried Document Type');\r\n\r\n this.navigate();\r\n });\r\n } else {\r\n this.vCDocType.date_modified = this.vCDocType.date_created = new Date();\r\n this.vCDocType.user_modified = this.vCDocType.user_created = this.user.LastName;\r\n \r\n this.isLoading = true;\r\n //console.log(JSON.parse(JSON.stringify(obj)));\r\n console.dir(this.vCDocType);\r\n this.service.add(this.vCDocType).subscribe(result => {\r\n this.vCDocType = result;\r\n this.isLoading = false;\r\n // this.dialogService.addDialog(AlertComponent, { title: 'New Carried Document Type', message: `New Carried Document Type ${this.vCDocType.carriertype} added successfully.`, bold: `${this.vCDocType.carriertype}` });\r\n this.toastr.success(`New Carried Document Type ${this.vCDocType.carriertype} added successfully.`,'New Carried Document Type');\r\n\r\n this.navigate();\r\n });\r\n }\r\n } \r\n}\r\n","

Link Carrier Type to Document Types
\r\n Probable design Carrier Type then a grid of document Types
\r\n Select Carrier Type and changes the grid below
\r\n Save\r\n\r\n

\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { CarrierTypeService } from 'app/services/carrier-type.service';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { DialogService } from 'ng2-bootstrap-modal';\r\nimport { UtilityServiceService } from 'app/services/utility-service.service';\r\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\r\nimport { AlertComponent } from 'app/popup/alert.component';\r\nimport { DatePipe } from '@angular/common';\r\nimport { AuthWebService } from 'app/services/authweb.service';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\n\r\n@Component({\r\n selector: 'app-carrier-type',\r\n templateUrl: './carrier-type.component.html',\r\n styleUrls: ['./carrier-type.component.css']\r\n})\r\nexport class CarrierTypeComponent implements OnInit {\r\n\r\n form;\r\n cType: any = {};\r\n sub: any;\r\n lblHeading = '';\r\n btnActionLabel = '';\r\n isEdit: boolean;\r\n user = { LastName: '' };\r\n isDup = false;\r\n selectedGroupCode: any = {};\r\n selectedDisplay = 3;\r\n defaultExtras = { id_type_required_ind: 3, display_demog_frame: true, is_local_carrier: true, is_individual: false };\r\n public isLoading = false;\r\n message = null;\r\n now = new Date();\r\n audit = { created: '', updated: '' };\r\n\r\n constructor(private carrierTypeService: CarrierTypeService, public authWebService: AuthWebService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n public utility: UtilityServiceService, private toastr: ToastrService) { }\r\n\r\n ngOnInit() {\r\n\r\n this.initForm();\r\n this.onChanges();\r\n this.user.LastName = (this.authWebService.userData) ? this.authWebService.userData.User.LastName : '';\r\n this.sub = this.route.params.subscribe(params => {\r\n if (this.router.url.indexOf('edit') != -1) {\r\n this.isEdit = true;\r\n this.lblHeading = 'Edit Carrier Type';\r\n this.btnActionLabel = 'Update';\r\n const id = +params['id'];\r\n this.isLoading = true;\r\n this.carrierTypeService.getById(id).subscribe(result => {\r\n this.cType = result;\r\n this.isLoading = false;\r\n (this.form)\r\n .setValue({\r\n id: this.cType.id\r\n , code: this.cType.code\r\n , description: this.cType.description\r\n , group_code: this.cType.group_code\r\n , sort_order: this.cType.sort_order\r\n , is_individual: this.cType.is_individual\r\n , is_NPO: this.cType.is_NPO\r\n , is_active: this.cType.is_active\r\n , display_ind: this.cType.display_ind\r\n , date_created: this.cType.date_created\r\n , date_modified: this.cType.date_modified\r\n , user_created: this.cType.user_created\r\n , user_modified: this.cType.user_modified\r\n , id_type_required_ind: this.cType.id_type_required_ind\r\n , display_demog_frame: this.cType.display_demog_frame\r\n , is_local_carrier: this.cType.is_local_carrier\r\n , carriers: (this.cType.carriers) ? this.cType.carriers : null\r\n }, { onlySelf: true });\r\n this.audit = this.utility.setAuditAttributes(this.cType.date_created, this.cType.user_created, this.cType.date_modified, this.cType.user_modified);\r\n });\r\n } else {\r\n this.isEdit = false;\r\n this.lblHeading = 'New Carrier Type';\r\n this.btnActionLabel = 'Save';\r\n this.audit = this.utility.setAuditAttributes(this.now, this.user.LastName, this.now, this.user.LastName);\r\n }\r\n\r\n\r\n\r\n });\r\n }\r\n\r\n\r\n initForm() {\r\n this.form = new FormGroup({\r\n id: new FormControl()\r\n , code: new FormControl(this.cType.code, Validators.compose([Validators.required, Validators.maxLength(12), Validators.pattern('[\\\\w\\-\\\\s\\\\/]+')]))\r\n , description: new FormControl(this.cType.description, Validators.maxLength(100))\r\n , group_code: new FormControl(this.cType.group_code, Validators.compose([Validators.required, Validators.maxLength(12)]))\r\n , sort_order: new FormControl(this.cType.sort_code, Validators.required)\r\n , is_individual: new FormControl()\r\n , is_NPO: new FormControl()\r\n , is_active: new FormControl()\r\n , display_ind: new FormControl(this.cType.display_ind, Validators.required)\r\n , date_created: new FormControl()\r\n , date_modified: new FormControl()\r\n , user_created: new FormControl()\r\n , user_modified: new FormControl()\r\n , carriers: new FormControl()\r\n , id_type_required_ind: new FormControl()\r\n , display_demog_frame: new FormControl()\r\n , is_local_carrier: new FormControl()\r\n });\r\n this.form.patchValue(this.utility.defaults);\r\n this.form.patchValue(this.defaultExtras);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.sub.unsubscribe();\r\n }\r\n\r\n onSubmit(obj: any) {\r\n if (this.isDup) { return; }\r\n this.cType = obj;\r\n this.message = (this.isEdit) ? \"Updating Carrier Type\" : \"Adding a new Carrier Type\";\r\n if (this.isEdit) {\r\n this.cType.date_modified = new Date().toLocaleString();\r\n this.cType.user_modified = this.user.LastName;\r\n this.isLoading = true;\r\n this.carrierTypeService.update(this.cType).subscribe(result => {\r\n this.cType = result;\r\n this.isLoading = false;\r\n // this.dialogService.addDialog(AlertComponent, { title: 'Update Carrier Type', message: `Carrier Type ${this.cType.code} updated succesfully.`, bold: `${this.cType.code}` });\r\n this.toastr.success(`Carrier Type ${this.cType.code} updated succesfully.`, 'Update Carrier Type');\r\n this.navigate();\r\n });\r\n } else {\r\n this.cType.date_modified = this.cType.date_created = new Date().toLocaleString();\r\n this.cType.user_modified = this.cType.user_created = this.user.LastName;\r\n\r\n this.isLoading = true;\r\n this.carrierTypeService.add(this.cType).subscribe(result => {\r\n this.cType = result;\r\n this.isLoading = false;\r\n // this.dialogService.addDialog(AlertComponent, { title: 'New Carrier Type', message: `New Carrier Type ${this.cType.code} added successfully.`, bold: `${this.cType.code}` });\r\n this.toastr.success(`New Carrier Type ${this.cType.code} added successfully.`, 'New Carrier Type');\r\n\r\n this.navigate();\r\n });\r\n }\r\n }\r\n\r\n navigate() {\r\n this.router.navigateByUrl('/carrier/type/list');\r\n }\r\n\r\n onDuplicates(control) {\r\n\r\n\r\n }\r\n\r\n onChanges(): void {\r\n this.form.get('code').valueChanges.subscribe(code => {\r\n\r\n if (code.length > 3) {\r\n this.carrierTypeService.checkByCode(code.trim()).subscribe((result:any) => {\r\n this.isDup = (result.Status && !this.isEdit) ? true : false;\r\n }, error => {\r\n this.isDup = false;\r\n });\r\n }\r\n });\r\n }\r\n\r\n onChangeValue() {\r\n\r\n }\r\n\r\n onSelectChange() {\r\n console.dir(this.selectedDisplay);\r\n }\r\n\r\n\r\n\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n
\r\n

Carrier Type: {{lblHeading}}

\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n Sorting And Displaying \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n
Created
\r\n
\r\n
Updated
\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { AlertComponent } from 'app/popup/alert.component';\r\nimport { FormControl, Validators, FormGroup } from '@angular/forms';\r\nimport { DialogService } from 'ng2-bootstrap-modal';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport {DocumenttypeService} from 'app/services/documenttype.service';\r\nimport { UtilityServiceService } from 'app/services/utility-service.service';\r\nimport { AuthWebService } from 'app/services/authweb.service';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\n@Component({\r\n selector: 'app-document-type',\r\n templateUrl: './document-type.component.html',\r\n styleUrls: ['./document-type.component.css']\r\n})\r\nexport class DocumentTypeComponent implements OnInit {\r\n form;\r\n vDocType: any = {};\r\n sub: any;\r\n lblHeading = '';\r\n btnActionLabel = '';\r\n isEdit: boolean; \r\n isDup = false; \r\n selectedGroupCode: any = {};\r\n selectedDisplay = 3;\r\n message = null;\r\n now = new Date();\r\n audit = { created: '', updated: '' };\r\n user = { LastName: '' };\r\n \r\n public isLoading = false;\r\n\r\n constructor(private service: DocumenttypeService, private authWebService: AuthWebService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n public utility: UtilityServiceService,private toastr: ToastrService) { }\r\n\r\n ngOnInit() {\r\n this.initForm(); \r\n this.onChanges();\r\n this.user.LastName = (this.authWebService.userData) ? this.authWebService.userData.User.LastName : '';\r\n this.sub = this.route.params.subscribe(params => {\r\n if (this.router.url.indexOf('edit') != -1) {\r\n this.isEdit = true;\r\n this.lblHeading = 'Edit Document Type';\r\n this.btnActionLabel = 'Update';\r\n const id = +params['id'];\r\n this.isLoading = true;\r\n //console.log(this.vDocType.multiple_allowed);\r\n this.service.getById(id).subscribe(result => {\r\n this.vDocType = result;\r\n this.isLoading = false;\r\n (this.form)\r\n .setValue({\r\n id: this.vDocType.id\r\n , code: this.vDocType.code\r\n , description: this.vDocType.description\r\n , document_link: this.vDocType.document_link\r\n , group_code: this.vDocType.group_code\r\n , sort_order: this.vDocType.sort_order\r\n , is_active: this.vDocType.is_active\r\n , multiple_allowed:this.vDocType.multiple_allowed==1 ? 'true' : false\r\n , is_for_vehicle:this.vDocType.is_for_vehicle==1 ? 'true' : false\r\n , is_template: this.vDocType.is_template\r\n , is_download: this.vDocType.is_download\r\n , display_ind: this.vDocType.display_ind\r\n , date_created: this.vDocType.date_created\r\n , date_modified: this.vDocType.date_modified\r\n , user_created: this.vDocType.user_created\r\n , user_modified: this.vDocType.user_modified\r\n \r\n }, { onlySelf: true });\r\n this.audit = this.utility.setAuditAttributes(this.vDocType.date_created, this.vDocType.user_created, this.vDocType.date_modified, this.vDocType.user_modified);\r\n });\r\n } else {\r\n this.isEdit = false;\r\n this.lblHeading = 'New Document Type';\r\n this.btnActionLabel = 'Save';\r\n this.audit = this.utility.setAuditAttributes(this.now, this.user.LastName, this.now, this.user.LastName); \r\n }\r\n\r\n\r\n });\r\n }\r\n initForm() {\r\n this.form = new FormGroup({\r\n id: new FormControl()\r\n , code: new FormControl(this.vDocType.code, Validators.compose([Validators.required, Validators.maxLength(12), Validators.pattern('[\\\\w\\-\\\\s\\\\/]+')]))\r\n , description: new FormControl(this.vDocType.description, Validators.maxLength(100))\r\n , document_link: new FormControl(this.vDocType.description, Validators.maxLength(100))\r\n , group_code: new FormControl(this.vDocType.group_code, Validators.compose([Validators.required, Validators.maxLength(12)]))\r\n , sort_order: new FormControl(this.vDocType.sort_code)\r\n , is_active: new FormControl()\r\n , multiple_allowed: new FormControl()\r\n , is_for_vehicle: new FormControl()\r\n , is_template: new FormControl()\r\n , is_download: new FormControl()\r\n , display_ind: new FormControl(this.vDocType.display_ind)\r\n , date_created: new FormControl()\r\n , date_modified: new FormControl()\r\n , user_created: new FormControl()\r\n , user_modified: new FormControl()\r\n \r\n });\r\n this.form.patchValue(this.utility.defaults);\r\n }\r\n\r\n onChanges(): void {\r\n this.form.get('code').valueChanges.subscribe(code => {\r\n\r\n if (code.length > 1) {\r\n this.service.checkByCode(code.trim()).subscribe((result:any) => {\r\n this.isDup = (result.Status && !this.isEdit) ? true : false;\r\n }, error => {\r\n this.isDup = false;\r\n\r\n });\r\n }\r\n });\r\n }\r\n\r\n navigate() {\r\n this.router.navigateByUrl('/document/type/list');\r\n }\r\n ngOnDestroy() {\r\n this.sub.unsubscribe();\r\n }\r\n\r\n onSubmit(obj: any) {\r\n if (this.isDup) { return; }\r\n this.vDocType = obj;\r\n this.message = (this.isEdit) ? \"Updating Document Type...\" : \"Adding a new Document Type...\";\r\n if (this.isEdit) {\r\n this.vDocType.date_modified = new Date();\r\n this.vDocType.user_modified = this.user.LastName;\r\n this.isLoading = true;\r\n //console.log(JSON.stringify(obj));\r\n this.service.update(this.vDocType).subscribe(result => {\r\n this.vDocType = result;\r\n this.isLoading = false;\r\n // this.dialogService.addDialog(AlertComponent, { title: 'Update Document Type', message: `Document Type ${this.vDocType.code} updated succesfully.`, bold: `${this.vDocType.code}` });\r\n this.toastr.success(`Document Type ${this.vDocType.code} updated succesfully.`,'Update Document Type');\r\n\r\n this.navigate();\r\n });\r\n } else {\r\n this.vDocType.date_modified = this.vDocType.date_created = new Date();\r\n this.vDocType.user_modified = this.vDocType.user_created = this.user.LastName;\r\n\r\n this.isLoading = true;\r\n //console.log(JSON.stringify(this.vDocType));\r\n this.service.add(this.vDocType).subscribe(result => {\r\n this.vDocType = result;\r\n this.isLoading = false;\r\n // this.dialogService.addDialog(AlertComponent, { title: 'New Document Type', message: `New Document Type ${this.vDocType.code} added successfully.`, bold: `${this.vDocType.code}` });\r\n this.toastr.success(`New Document Type ${this.vDocType.code} added successfully.`,'New Document Type');\r\n\r\n this.navigate();\r\n });\r\n }\r\n }\r\n onSelectChange(){\r\n \r\n }\r\n\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n
\r\n

Document Type: {{lblHeading}}

\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n Sorting And Displaying \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n
Created
\r\n
\r\n
Updated
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { FormGroup, FormControl, Validators } from '@angular/forms'\r\n\r\n//Popup Components\r\nimport { AlertComponent } from '../../popup/alert.component';\r\nimport { DialogService } from 'ng2-bootstrap-modal';\r\nimport { FreightTypeService } from 'app/services/freight-type.service';\r\nimport { UtilityServiceService } from 'app/services/utility-service.service';\r\nimport { AuthWebService } from 'app/services/authweb.service';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\n@Component({\r\n selector: 'app-edit-freight-type',\r\n templateUrl: './edit-freight-type.component.html',\r\n styleUrls: ['./edit-freight-type.component.css']\r\n})\r\nexport class EditFreightTypeComponent implements OnInit {\r\n\r\n form;\r\n vType: any = {};\r\n sub: any;\r\n lblHeading = '';\r\n btnActionLabel = '';\r\n isEdit: boolean; \r\n isDup = false; \r\n selectedDisplay = 3;\r\n message = null;\r\n now = new Date();\r\n audit = { created: '', updated: '' };\r\n user = { LastName: '' };\r\n \r\n public isLoading = false;\r\n\r\n constructor(private service: FreightTypeService, private authWebService: AuthWebService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n public utility: UtilityServiceService,private toastr:ToastrService) { }\r\n\r\n ngOnInit() {\r\n\r\n this.initForm();\r\n // this.onChanges();\r\n this.user.LastName = (this.authWebService.userData) ? this.authWebService.userData.User.LastName : '';\r\n this.sub = this.route.params.subscribe(params => {\r\n if (this.router.url.indexOf('edit') != -1) {\r\n this.isEdit = true;\r\n this.lblHeading = 'Edit Freight Type';\r\n this.btnActionLabel = 'Update';\r\n const id = +params['id'];\r\n this.isLoading = true;\r\n this.service.getById(id).subscribe(result => {\r\n this.vType = result;\r\n this.isLoading = false;\r\n (this.form)\r\n .setValue({\r\n id: this.vType.id\r\n , code: this.vType.code\r\n , description: this.vType.description\r\n , group_code: this.vType.group_code\r\n , sort_order: this.vType.sort_order\r\n , is_active: this.vType.is_active\r\n , display_ind: this.vType.display_ind\r\n , date_created: this.vType.date_created\r\n , date_modified: this.vType.date_modified\r\n , user_created: this.vType.user_created\r\n , user_modified: this.vType.user_modified\r\n , vehicle: (this.vType.vehicle) ? this.vType.vehicle:null\r\n }, { onlySelf: true });\r\n this.audit = this.utility.setAuditAttributes(this.vType.date_created, this.vType.user_created, this.vType.date_modified, this.vType.user_modified);\r\n });\r\n } else {\r\n this.isEdit = false;\r\n this.lblHeading = 'Add New';\r\n this.btnActionLabel = 'Save';\r\n this.audit = this.utility.setAuditAttributes(this.now, this.user.LastName, this.now, this.user.LastName); \r\n }\r\n });\r\n }\r\n\r\n\r\n initForm() {\r\n this.form = new FormGroup({\r\n id: new FormControl()\r\n , code: new FormControl(this.vType.code, Validators.compose([Validators.required, Validators.maxLength(12), Validators.pattern('[\\\\w\\-\\\\s\\\\/]+')]))\r\n , description: new FormControl(this.vType.description, Validators.maxLength(100))\r\n , group_code: new FormControl(this.vType.group_code, Validators.compose([Validators.required, Validators.maxLength(12)]))\r\n , sort_order: new FormControl(this.vType.sort_code, Validators.required)\r\n , is_active: new FormControl()\r\n , display_ind: new FormControl(this.vType.display_ind, Validators.required)\r\n , date_created: new FormControl()\r\n , date_modified: new FormControl()\r\n , user_created: new FormControl()\r\n , user_modified: new FormControl()\r\n , vehicle: new FormControl()\r\n });\r\n this.form.patchValue(this.utility.defaults);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.sub.unsubscribe();\r\n }\r\n\r\n onSubmit(obj: any) { \r\n if (this.isDup) { return; }\r\n this.vType = obj;\r\n this.message = (this.isEdit) ? \"Updating Freight Type...\" : \"Adding a new Freight Type...\";\r\n if (this.isEdit) {\r\n this.vType.date_modified = new Date().toLocaleString();\r\n this.vType.user_modified = this.user.LastName;\r\n this.isLoading = true;\r\n //console.log(JSON.stringify(obj));\r\n this.service.update(this.vType).subscribe(result => {\r\n this.vType = result;\r\n this.isLoading = false;\r\n //this.dialogService.addDialog(AlertComponent, { title: 'Update Vehicle Type', message: `Vehicle Type ${this.vType.code} updated succesfully.`, bold: `${this.vType.code}` });\r\n this.toastr.success(`Freight Type ${this.vType.code} updated succesfully.`,'Update Freight Type');\r\n this.navigate();\r\n }, error => {\r\n this.isLoading = false;\r\n // this.dialogService.addDialog(AlertComponent, { title: `Update Vehicle Type`, message: `Failed to update Vehicle Type with ${this.vType.code}.Please contact the system administrator if the problem persists.`, bold: `${this.vType.code}` });\r\n this.toastr.error(`Failed to update Freight Type with ${this.vType.code}.Please contact the system administrator if the problem persists.`,'Update Vehicle Type');\r\n });\r\n } else {\r\n this.vType.date_modified = this.vType.date_created = new Date().toLocaleString();\r\n this.vType.user_modified = this.vType.user_created = this.user.LastName;\r\n\r\n this.isLoading = true;\r\n //console.log(JSON.parse(JSON.stringify(obj)));\r\n console.dir(this.vType);\r\n this.service.add(this.vType).subscribe(result => {\r\n this.vType = result;\r\n this.isLoading = false;\r\n // this.dialogService.addDialog(AlertComponent, { title: 'New Vehicle Type', message: `New Vehicle Type ${this.vType.code} added successfully.`, bold: `${this.vType.code}` });\r\n this.toastr.success(`New Freight Type ${this.vType.code} added successfully.`,'New Freight Type');\r\n this.navigate();\r\n }, error => {\r\n this.isLoading = false;\r\n // this.dialogService.addDialog(AlertComponent, { title: `New Vehicle Type`, message: `Failed to add New Vehicle Type with ${this.vType.code}.Please contact the system administrator if the problem persists.`, bold: `${this.vType.code}` });\r\n this.toastr.error(`Failed to add New Freight Type with ${this.vType.code}.Please contact the system administrator if the problem persists.`,'New Vehicle Type');\r\n });\r\n }\r\n }\r\n\r\n navigate() {\r\n this.router.navigateByUrl('/freight/type/list');\r\n }\r\n\r\n onDuplicates(control) {\r\n\r\n\r\n }\r\n\r\n // onChanges(): void {\r\n // this.form.get('code').valueChanges.subscribe(code => {\r\n\r\n // if (code.length > 3) {\r\n // this.service.checkByCode(code.trim()).subscribe(result => {\r\n // this.isDup = (result.Status && !this.isEdit) ? true : false;\r\n // }, error => {\r\n // this.isDup = false;\r\n\r\n // });\r\n // }\r\n // }); \r\n // }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n

Freight Type: {{lblHeading}}

\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n
\r\n
\r\n Sorting And Displaying \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n
Created
\r\n
\r\n
Updated
\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n","import { Component, OnInit, Input, Injectable, ChangeDetectorRef } from '@angular/core';\r\nimport { ApplicationService } from 'app/services/application.service';\r\nimport { StatusService } from 'app/services/status.service';\r\nimport { AuthWebService } from 'app/services/authweb.service';\r\nimport { UtilityServiceService } from 'app/services/utility-service.service';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { Router, ActivatedRoute, Params } from '@angular/router';\r\nimport { VehicleEntryService } from 'app/services/vehicle-entry.service';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { CountryService } from 'app/services/country.service';\r\nimport { VehicleMakeService } from 'app/services/vehicle-make.service';\r\nimport { VehicleTypeService } from 'app/services/vehicle-type.service';\r\nimport { environment } from '../../../../src/environments/environment';\r\nimport {NgbCalendar, NgbDateAdapter, NgbDateParserFormatter, NgbDateStruct, NgbActiveModal, NgbModal, NgbModalRef} from '@ng-bootstrap/ng-bootstrap';\r\nimport * as moment from 'moment';\r\n\r\nimport { VehicleService } from 'app/services/vehicle.service';\r\nimport { Location, DatePipe } from '@angular/common';\r\nimport { PermitTypeService } from 'app/services/permit-type.service';\r\nimport { VehicleEntryCarrierService } from 'app/services/vehicle-entry-carrier.service';\r\nimport { PopupService } from 'app/services/shared/popup.service';\r\nimport { Baseservice } from 'app/services/baseservice';\r\nimport { DocumenttypeService } from 'app/services/documenttype.service';\r\nimport { DocumentsServiceService } from 'app/services/documents-service.service';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { CarrierService } from 'app/services/carrier.service';\r\nimport { ConfirmDialogService } from 'app/services/shared/confirm-dialog/confirm-dialog.service';\r\n\r\n\r\n\r\n/**\r\n * This Service handles how the date is represented in scripts i.e. ngModel.\r\n */\r\n@Injectable()\r\nexport class CustomAdapter extends NgbDateAdapter {\r\n\r\n readonly DELIMITER = '/';\r\n\r\n fromModel(value: string | null): NgbDateStruct | null {\r\n if (value) {\r\n let date = value.split(this.DELIMITER);\r\n return {\r\n day : parseInt(date[0], 10),\r\n month : parseInt(date[1], 10),\r\n year : parseInt(date[2], 10)\r\n };\r\n }\r\n return null;\r\n }\r\n\r\n toModel(date: NgbDateStruct | null): string | null {\r\n return date ? date.day + this.DELIMITER + date.month + this.DELIMITER + date.year : null;\r\n }\r\n}\r\n\r\n/**\r\n * This Service handles how the date is rendered and parsed from keyboard i.e. in the bound input field.\r\n */\r\n@Injectable()\r\nexport class CustomDateParserFormatter extends NgbDateParserFormatter {\r\n\r\n readonly DT_FORMAT = 'DD/MM/YYYY';\r\n\r\n parse(value: string): NgbDateStruct {\r\n if (value) {\r\n value = value.trim();\r\n let mdt = moment(value, this.DT_FORMAT)\r\n }\r\n return null;\r\n }\r\n format(date: NgbDateStruct): string {\r\n if (!date) return '';\r\n let mdt = moment([date.year, date.month - 1, date.day]);\r\n if (!mdt.isValid()) return '';\r\n return mdt.format(this.DT_FORMAT);\r\n }\r\n}\r\n\r\n\r\ndeclare var $;\r\n@Component({\r\n selector: 'app-external-vehicles',\r\n templateUrl: './external-vehicles.component.html',\r\n styleUrls: ['./external-vehicles.component.css'],\r\n providers: [\r\n {provide: NgbDateAdapter, useClass: CustomAdapter},\r\n {provide: NgbDateParserFormatter, useClass: CustomDateParserFormatter},\r\n NgbActiveModal,\r\n ]\r\n})\r\nexport class ExternalVehiclesComponent implements OnInit {\r\n\r\n @Input('ctrlData') ctrlData: any;\r\n permits: any = [];\r\n currentDate:any={day:new Date().getDate(),month:(new Date().getMonth()+1),year:new Date().getFullYear()}\r\n statuses: any = [];\r\n flags = { flagAN: 1, flagNM: 1, flagLU: 1, flagCT: 1, flagAP: 1, flagPT: 1, flagST: 1, flagDS: 1 };\r\n ranks = { flagAN: 1, flagNM: 2, flagLU: 3, flagCT: 4,flagAP: 5, flagPT: 6, flagST: 7, flagDS: 8 };\r\n sortLabels = { flagAN: \"AccountNumber\", flagNM: \"Name\", flagLU: \"LeadUser\", flagCT: \"CarrierType\", flagAP: \"ApplicationNumber\", flagPT: \"PermitType\", flagST: \"Status\", flagDS: \"DateSubmitted\" };\r\n direction: boolean = false;\r\n criteria = \"DateSubmitted\";\r\n rankCtrl: number = 8;\r\n isLoading: Boolean = false;\r\n message: string = 'Loading vehicles, please wait...';\r\n statuses1: any = [];\r\n\r\n //Search Variables\r\n eNatisCounter = 0;\r\n vehicletypes: any =[];\r\n permittypes: any = [];\r\n vinnumber: string;\r\n vehicleType: string = \"\";\r\n permitType: string = \"\";\r\n regnumber: string;\r\n carriername: string;\r\n carriercode: string;\r\n found = false;\r\n keyword: any = {};\r\n currentPage = 1;\r\n isEmpty: boolean = false;\r\n IsSearching:boolean = false;\r\n IsAdmin:boolean= false;\r\n pageSize: number = 10;\r\n page:any=1;\r\n count: number = 0;\r\n disabled = false;\r\n ShowFilter = false;\r\n limitSelection = false;\r\n selectedItems: any = [];\r\n dropdownSettings: any = {};\r\n registerNumber: string;\r\n isDef: boolean = true;\r\n vehicleRes:any=[];\r\n isEditData:boolean=false;\r\n isViewData:boolean=false;\r\n myForm:FormGroup;\r\n ddlCountries:any=[];\r\n list_vehicle_make:any=[];\r\n list_vehicle_type:any=[];\r\n list_vehicle_types:any=[];\r\n selectedVMake:any;\r\n btnAddNew: boolean;\r\n leased: any;\r\n appid:any = null;\r\n @Input() dataCntrl: any;\r\n isMyVehicles = false;\r\n permit_type_id:any;\r\n isSame = false;\r\n myAppVehicles = [];\r\n\r\n model: NgbDateStruct;\r\n date: {year: number};\r\n selectedVehicles:any=[];\r\n selectedCountry:any=null;\r\n\r\n\r\n carrierId: any;\r\n isVehicleLoading:boolean=false;\r\n isDocumentLoading:boolean=false;\r\n uploadedDocs:any=[];\r\n maxMB: any=\"5MB\";\r\n dtype: any=\"PDF,JPG,PNG,JPEG\";\r\n docTypeId: any;\r\n filebytes: string;\r\n filename: any;\r\n filetype: any;\r\n filedescription: string;\r\n filesize: any;\r\n user = { LastName: '' };\r\n vehicleId: number;\r\n documentType: any;\r\n isLoadingImg: boolean;\r\n selectItem: any;\r\n viewDocuments:any=[];\r\n pdfSrc: any;\r\n img: any;\r\n\r\n linkedDocs: any;\r\n isExtra: boolean;\r\n personsList:any=[];\r\n isExternal: boolean = false;\r\n eNatisResult: any=null;\r\n isSouthAfrica = false;\r\n //disallowEdit = false;\r\n\r\n constructor(private toastr: ToastrService,\r\n private vehicleEntryService:VehicleEntryService,private countryService:CountryService,private vehicleMakeService:VehicleMakeService,\r\n private authWebService: AuthWebService,private vehicleTypeService:VehicleTypeService, private permitTypeService: PermitTypeService,\r\n public utility: UtilityServiceService, private ngbCalendar: NgbCalendar, private dateAdapter: NgbDateAdapter,\r\n private router: Router,private activeRoute: ActivatedRoute,private vehicleService:VehicleService,\r\n private _location: Location,private formBuilder: FormBuilder,private datePipe:DatePipe,\r\n private applicationService:ApplicationService, private vehicleEntryCarierService:VehicleEntryCarrierService,private msgService: PopupService,\r\n private documenttypeSerivce:DocumenttypeService,private documentService: DocumentsServiceService,\r\n private ref: ChangeDetectorRef,private sanitizer: DomSanitizer,private showModal: PopupService,\r\n private carrierService:CarrierService,private confirmDialogService: ConfirmDialogService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n this.user.LastName = (this.authWebService.userData) ? this.authWebService.userData.User.LastName : '';\r\n this.user = (this.authWebService.userData) ? this.authWebService.userData.User : null;\r\n this.listCountries();\r\n this.getVehicleMake();\r\n this.loadAccounts();\r\n this.loadvehicletypes();\r\n this.getPermitTypes();\r\n if(this.router.url.indexOf('vehicle/list')>0){\r\n // this.activeRoute.params.subscribe((params: Params) => {\r\n // });\r\n this.isExternal = true;\r\n }\r\n this.createForm();\r\n }\r\n\r\n listCountries(){\r\n \r\n this.countryService.listCountries().subscribe(result => {\r\n \r\n this.ddlCountries = result;\r\n //console.log(result);\r\n }, error => {\r\n //console.log(error);\r\n });\r\n }\r\n\r\n getVehicleMake() {\r\n if(this.list_vehicle_make.length <= 0)\r\n this.vehicleMakeService.getAll().subscribe((result:any) => {\r\n this.list_vehicle_make = result\r\n this.selectedVMake = result.find(x => x.code == 'Unknown');\r\n //console.log(this.list_vehicle_make)\r\n }, error => {\r\n //console.log(error);\r\n });\r\n }\r\n\r\n getVehicleType() {\r\n this.vehicleTypeService.getPermitTypeVehicles().subscribe((result:any) => {\r\n this.list_vehicle_type = result.filter(x=>x.permit_type_id === this.permit_type_id);\r\n //console.log(this.list_vehicle_type)\r\n if(this.list_vehicle_type.length > 0)\r\n {\r\n this.btnAddNew = true\r\n }\r\n //console.log(this.btnAddNew)\r\n //console.log(this.list_vehicle_type.length)\r\n }, error => {\r\n //console.log(error);\r\n });\r\n }\r\n\r\n loadvehicletypes = () => {\r\n this.vehicleTypeService.loadvehicletypes().subscribe(result => {\r\n //console.log('list of vehicle types', result);\r\n // this.vehicletypes = result.map(row => {\r\n // return { id: row.id, desc: row.description };\r\n // });\r\n this.vehicletypes = result;\r\n });\r\n }\r\n\r\n getPermitTypes()\r\n {\r\n this.permitTypeService.get().subscribe(result => {\r\n //console.log('list of permit types', result);\r\n // this.vehicletypes = result.map(row => {\r\n // return { id: row.id, desc: row.description };\r\n // });\r\n this.permittypes = result;\r\n });\r\n }\r\n\r\n // onBack() {\r\n // this.router.navigate(['/carrier/permit/application/edit',this.appid]);\r\n // }\r\n\r\n getVehicles(personId){\r\n this.isLoading=true;\r\n this.vehicleService.getVehiclesList(personId).subscribe((res:any)=>{\r\n this.vehicleRes=res;\r\n //console.log(this.vehicleRes);\r\n this.isLoading=false;\r\n this.count=res.length;\r\n if(res.length==0){\r\n this.isEmpty=true;\r\n }\r\n })\r\n }\r\n\r\n getCarrierVehicle(personId){\r\n this.isLoading=true;\r\n this.vehicleEntryService.getCarrierVehiclesList(personId).subscribe((res:any)=>{\r\n this.vehicleRes=res;\r\n //console.log(this.vehicleRes);\r\n this.isLoading=false;\r\n this.count=res.length;\r\n if(res.length==0){\r\n this.isEmpty=true;\r\n }\r\n })\r\n }\r\n\r\n onReset = () => {\r\n this.selectedItems = [];\r\n this.regnumber = null;\r\n this.vehicleType = \"\";\r\n this.carriercode = \"\";\r\n this.permitType = \"\";\r\n this.utility.page = 1;\r\n this.vinnumber = \"\";\r\n this.carriername = \"\";\r\n this.message = 'Loading vehicles, please wait...';\r\n this.IsSearching = false;\r\n this.getVehicles(this.personsList[0].person_id);\r\n }\r\n\r\n onCarrierSearch=(page: number = 1, pageSize: number = 10) => {\r\n this.IsSearching = true;\r\n this.IsAdmin = false;\r\n this.utility.page = page;\r\n this.isLoading = true;\r\n this.vehicleRes = [];\r\n this.message = 'Searching your vehicles, please wait...';\r\n\r\n if(this.vehicleType ===\"\"){\r\n this.vehicleType = null;\r\n }\r\n\r\n if(this.vinnumber === \"\"){\r\n this.vinnumber = null;\r\n }\r\n\r\n if(this.regnumber === \"\"){\r\n this.regnumber = null;\r\n }\r\n\r\n if(this.carriername === \"\"){\r\n this.carriername = null;\r\n }\r\n\r\n if(this.carriercode === \"\"){\r\n this.carriercode = null;\r\n }\r\n\r\n let object = {\r\n VehicleType:this.vehicleType,\r\n PermitType:this.permitType,\r\n VIN:this.vinnumber,\r\n Regnumber:this.regnumber,\r\n Carriername:this.carriername,\r\n CarrierId: this.carrierId,\r\n carriercode:this.carriercode,\r\n PageSize: pageSize,\r\n PageNumber:page,\r\n person_id: this.personsList[0].person_id\r\n }\r\n\r\n this.vehicleEntryService.searchExternalVehicle(object).subscribe((result:any) =>{\r\n\r\n if(result==null){\r\n\r\n this.vehicleRes = [];\r\n this.isLoading = false;\r\n return\r\n }\r\n this.vehicleRes=result.Items;\r\n //console.log(this.vehicleRes);\r\n this.isLoading=false;\r\n this.count=result.Count;\r\n if(result.length==0){\r\n this.isEmpty=true;\r\n }\r\n },error =>{\r\n this.isLoading = false;\r\n });\r\n }\r\n\r\n onChange = () => {\r\n this.onCarrierSearch(this.utility.page, this.pageSize);\r\n }\r\n\r\n onSearch=(page: number = 1, pageSize: number = 10) => {\r\n this.IsSearching = true;\r\n this.isLoading = true;\r\n this.message = 'Searching vehicles, please wait...';\r\n\r\n if(this.vehicleType ===\"\"){\r\n this.vehicleType = null;\r\n }\r\n\r\n if(this.vinnumber === \"\"){\r\n this.vinnumber = null;\r\n }\r\n\r\n if(this.regnumber === \"\"){\r\n this.regnumber = null;\r\n }\r\n\r\n if(this.carriername === \"\"){\r\n this.carriername = null;\r\n }\r\n\r\n if(this.carriercode === \"\"){\r\n this.carriercode = null;\r\n }\r\n\r\n let object = {\r\n VehicleType:this.vehicleType,\r\n PermitType:this.permitType,\r\n VIN:this.vinnumber,\r\n Regnumber:this.regnumber,\r\n Carriername:this.carriername,\r\n carriercode:this.carriercode,\r\n PageSize: pageSize,\r\n PageNumber:page,\r\n person_id: this.getVehicles(this.personsList[0].person_id)\r\n }\r\n\r\n this.vehicleEntryService.searchExternalVehicle(object).subscribe((result:any) =>{\r\n if(result==null){\r\n //console.log(\"Search Result: \"+ result);\r\n this.vehicleRes = [];\r\n this.isLoading = false;\r\n return;\r\n }\r\n\r\n this.vehicleRes=result.Items;\r\n //console.log(this.vehicleRes);\r\n this.isLoading=false;\r\n this.count=result.Count;\r\n this.utility.onSort(1);\r\n if(result.Items.length==0){\r\n this.isEmpty=true;\r\n }\r\n\r\n },error =>{\r\n this.isLoading = false;\r\n });\r\n\r\n }\r\n\r\n onNextOrPrevious(page: number = 1) {\r\n alert(page);\r\n this.onCarrierSearch(page, this.pageSize)\r\n this.currentPage = page;\r\n this.utility.page = page;\r\n return page;\r\n }\r\n\r\n loadAccounts(){\r\n this.isLoading=true;\r\n this.carrierService.listCarrierAccountsByUserId(this.user['ID']).subscribe((result:any) => {\r\n if(result.length>0){\r\n this.personsList=result;\r\n //console.log( this.personsList)\r\n this.getCarrierVehicle(result[0].person_id);\r\n }\r\n });\r\n }\r\n\r\n LeaseChange(){\r\n this.leased = this.myForm.value.is_leased;\r\n if(this.leased=='true'){\r\n this.myForm.get('vehicle_lessor').setValidators([Validators.required]);\r\n this.myForm.get('vehicle_lessee').setValidators([Validators.required]);\r\n this.myForm.get('date_lease_expiry').setValidators([Validators.required]);\r\n } else {\r\n this.myForm.get('vehicle_lessor').clearValidators();\r\n this.myForm.get('vehicle_lessee').clearValidators();\r\n this.myForm.get('date_lease_expiry').clearValidators();\r\n }\r\n this.myForm.get('vehicle_lessor').updateValueAndValidity();\r\n this.myForm.get('vehicle_lessee').updateValueAndValidity();\r\n this.myForm.get('date_lease_expiry').updateValueAndValidity();\r\n }\r\n\r\n numberOnly(event): boolean {\r\n const charCode = (event.which) ? event.which : event.keyCode;\r\n if (charCode > 31 && (charCode < 48 || charCode > 57)) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n createForm(){\r\n this.isEditData = false;\r\n this.isViewData = false;\r\n this.isSouthAfrica = false;\r\n this.myForm = this.formBuilder.group({\r\n id:[-1,[]],\r\n permit_id:[],\r\n carrier_id:['', [Validators.required]],\r\n country_id: ['', [Validators.required]],\r\n registration_number: ['', [Validators.required]],\r\n registration_year: ['', [Validators.required]],\r\n vehicle_make_id: ['', []],\r\n vehicle_series: ['', []],\r\n vehicle_model: ['', [ ]],\r\n vehicle_colour: ['', []],\r\n vin: ['', [Validators.required,]],\r\n engine_number: ['', [Validators.required,]],\r\n gvn: ['', [Validators.required,]],\r\n seating_capacity: ['', []],\r\n date_license_expiry: ['', [Validators.required,]],\r\n start_date: ['', [Validators.required,]],\r\n vehicle_state: ['', []],\r\n roadworthy_status: ['', [Validators.required,]],\r\n vehicle_owner: ['', []],\r\n is_leased: [null, [Validators.required,]],\r\n vehicle_lessor: [''],\r\n vehicle_lessee: [''],\r\n date_lease_expiry: [''],\r\n vehicle_type_id: ['', [Validators.required]],\r\n api_date_updated: ['', []],\r\n eNatis_num:['',[]]\r\n });\r\n this.LeaseChange(); // hides the lease container\r\n this.found = false; // hides the 'Retrieve from eNatis' button\r\n //this.disallowEdit = false; // allow fields to be edited\r\n this.myForm.controls.country_id.enable();\r\n this.myForm.controls.roadworthy_status.enable();\r\n this.myForm.controls.vehicle_type_id.enable();\r\n this.myForm.controls.is_leased.enable();\r\n this.myForm.controls.carrier_id.enable();\r\n }\r\n\r\n passForEdit(item){\r\n //console.log(item);\r\n this.isEditData = true;\r\n this.vehicleService.getVehicleBy(item.id).subscribe((x:any) =>{\r\n //console.log(x);\r\n this.leased = x.is_leased;\r\n this.myForm.patchValue({\r\n id: item.id,\r\n date_license_expiry: item.date_license_expiry,\r\n gvn: item.gvn,\r\n registration_number:item.registration_number,\r\n registration_year:item.registration_year,\r\n seating_capacity:x.seating_capacity,\r\n start_date:item.start_date,\r\n vehicle_make_id:item.vehicle_make_id,\r\n vehicle_type_id: item.vehicle_type_id,\r\n vin: item.vin,\r\n permit_id:x.permit_id,\r\n country_id:x.country_id,\r\n vehicle_series: x.vehicle_series,\r\n vehicle_model: x.vehicle_model,\r\n vehicle_colour: x.vehicle_colour,\r\n engine_number: x.engine_number,\r\n vehicle_state:x.vehicle_state,\r\n roadworthy_status: x.roadworthy_status,\r\n vehicle_owner: x.vehicle_owner,\r\n is_leased:x.is_leased,\r\n vehicle_lessor: x.vehicle_lessor,\r\n vehicle_lessee: x.vehicle_lessee,\r\n date_lease_expiry: this.datePipe.transform(x.date_lease_expiry,'dd/MM/yyyy'),\r\n });\r\n })\r\n }\r\n\r\n checkVin(value){\r\n if(value.length > 0){\r\n if (!this.myForm.value.country_id) {\r\n return this.toastr.warning(\"Please select the vehicle's Country-of-Registration before continuing.\")\r\n }\r\n if(this.myForm.value['country_id']==113){\r\n // this.eNatisUpdate();\r\n this.found = true; // displays the \"Retrieve from eNatis\" button\r\n }\r\n } else {\r\n // if (value.length === 0) {\r\n this.found = false; // hides the \"Retrieve from eNatis\" button\r\n // }\r\n }\r\n if(value.length === 17 && this.myForm.value['country_id']==11 ){\r\n this.eNatisUpdate();\r\n }\r\n }\r\n\r\n eNatisUpdate(){\r\n this.eNatisCounter = this.eNatisCounter + 1;\r\n this.isVehicleLoading = true;\r\n // this.found = false;\r\n this.message = \"Checking vehicle, please wait...\";\r\n this.vehicleService.getVehicleValidatorByVin(this.myForm.value.vin).subscribe((data:any) => {\r\n if(data.Vin !== null){\r\n // if(this.myForm.value.registration_number.length > 0 && this.myForm.value.registration_number !== data.Registration_number){\r\n // this.isVehicleLoading = false;\r\n // return this.toastr.info('VIN and registration number do not match.');\r\n // }\r\n //console.log(data);\r\n this.eNatisResult=data;\r\n this.myForm.patchValue({\r\n country_id:113,\r\n vin:data.Vin,\r\n registration_number:data.Registration_number,\r\n vehicle_owner:data.Ownership,\r\n registration_year:this.datePipe.transform(data.Registration_year,'yyyy'),\r\n vehicle_colour: data.Vehicle_colour,\r\n vehicle_model: data.Vehicle_model,\r\n gvn:data.Gvm,\r\n engine_number:data.Engine_number,\r\n roadworthy_status:data.roadworthystatus,\r\n eNatis_num:data.enatis_num,\r\n date_license_expiry:this.datePipe.transform(data.Date_license_expiry,'dd/MM/yyyy'),\r\n seating_capacity:data.Seating_capacity\r\n });\r\n this.isVehicleLoading = false;\r\n this.isSouthAfrica = true;\r\n\r\n if (data.roadworthystatus === 'Not roadworthy') {\r\n return this.toastr.warning('Please note that according to eNatis this vehicle is not roadworthy and therefore will not be eligible for permit application.')\r\n } else {\r\n return this.toastr.success('Please enter Vehicle Type and Lease information.')\r\n }\r\n }\r\n\r\n if(data.NotFound === 'Not found'){\r\n // try 3 times to retrieve eNatis detail before displaying a failure message\r\n if(this.eNatisCounter <= 3){\r\n this.eNatisUpdate();\r\n return\r\n }\r\n // this.toastr.info('VIN and registration number do not match.');\r\n this.toastr.warning(\"Wasn't able to retrieve vehicle detail from eNatis - Please confirm VIN number is correct or try again later...\");\r\n this.isVehicleLoading = false;\r\n if(this.isEditData == true){\r\n this.isSouthAfrica = true;\r\n //this.disallowEdit = true;\r\n }\r\n return\r\n } else {\r\n this.eNatisCounter = 0;\r\n }\r\n\r\n if(data.NetworkError === 'Network error'){\r\n this.toastr.error('The eNatis system is offline at the moment - Please try again later.')\r\n this.isVehicleLoading = false;\r\n this.isSouthAfrica = false;\r\n //this.disallowEdit = false;\r\n return\r\n }\r\n })\r\n }\r\n\r\n getCarrierVehicleEntry(id){\r\n this.vehicleEntryCarierService.getVehicleEntryCarrier(id).subscribe((x:any)=>{\r\n //console.log(x)\r\n this.leased = x.vehicle_entry.is_leased;\r\n // this.isEditData=true;\r\n\r\n // if South African registered vehicle, do not allow changes to eNatis fields\r\n // but allow for updates from eNatis\r\n if(x.vehicle_entry.country_id === 113){\r\n this.isSouthAfrica = true;\r\n //this.disallowEdit = true;\r\n this.found = true;\r\n } else {\r\n this.isSouthAfrica = false;\r\n //this.disallowEdit = false;\r\n this.found = false;\r\n }\r\n\r\n this.myForm.patchValue({\r\n carrier_id:x.carrier_id,\r\n id: x.vehicle_entry.id,\r\n date_license_expiry: this.datePipe.transform(x.vehicle_entry.date_license_expiry,'dd/MM/yyyy'),\r\n gvn: x.vehicle_entry.gvn,\r\n registration_number:x.vehicle_entry.registration_number,\r\n registration_year:x.vehicle_entry.registration_year,\r\n seating_capacity:x.vehicle_entry.seating_capacity,\r\n vehicle_make_id:x.vehicle_entry.vehicle_make_id,\r\n vehicle_type_id: x.vehicle_entry.vehicle_type_id,\r\n vin: x.vehicle_entry.vin,\r\n country_id:x.vehicle_entry.country_id,\r\n vehicle_series: x.vehicle_entry.vehicle_series,\r\n vehicle_model: x.vehicle_entry.vehicle_model,\r\n vehicle_colour: x.vehicle_entry.vehicle_colour,\r\n engine_number: x.vehicle_entry.engine_number,\r\n vehicle_state:x.vehicle_entry.vehicle_state,\r\n roadworthy_status: x.vehicle_entry.roadworthy_status,\r\n vehicle_owner: x.vehicle_entry.vehicle_owner,\r\n is_leased:x.vehicle_entry.is_leased,\r\n vehicle_lessor: x.vehicle_entry.vehicle_lessor,\r\n vehicle_lessee: x.vehicle_entry.vehicle_lessee,\r\n date_lease_expiry: this.datePipe.transform(x.vehicle_entry.date_lease_expiry,'dd/MM/yyyy'),\r\n })\r\n $(\"#addEdit\").modal('show');\r\n this.isLoading=false;\r\n\r\n },error =>{\r\n //console.log(error)\r\n })\r\n }\r\n\r\n editVehicle(item){\r\n this.isLoading=true;\r\n // this.getCarrierVehicleEntry(item.id);\r\n $(\".action\").val('null');\r\n this.vehicleEntryService.getVehicleEntryById(item.id).subscribe((x:any)=>{\r\n\r\n //console.log(x);\r\n\r\n if(x!=null){\r\n\r\n this.leased = x.is_leased;\r\n \r\n if(x.country_id==113){\r\n this.isSouthAfrica = true;\r\n } else {\r\n this.isSouthAfrica = false;\r\n }\r\n \r\n // this.isEditData=true;\r\n this.myForm.patchValue({\r\n id: x.id,\r\n date_license_expiry: this.datePipe.transform(x.date_license_expiry,'dd/MM/yyyy'),\r\n gvn: x.gvn,\r\n registration_number:x.registration_number,\r\n registration_year:x.registration_year,\r\n seating_capacity:x.seating_capacity,\r\n vehicle_make_id:x.vehicle_make_id,\r\n vehicle_type_id: x.vehicle_type_id,\r\n vin: x.vin,\r\n country_id:x.country_id,\r\n vehicle_series: x.vehicle_series,\r\n vehicle_model: x.vehicle_model,\r\n vehicle_colour: x.vehicle_colour,\r\n engine_number: x.engine_number,\r\n vehicle_state:x.vehicle_state,\r\n roadworthy_status: x.roadworthy_status,\r\n vehicle_owner: x.vehicle_owner,\r\n eNatis_num:x.vehicle_register_num,\r\n is_leased:x.is_leased,\r\n vehicle_lessor: x.vehicle_lessor,\r\n vehicle_lessee: x.vehicle_lessee,\r\n date_lease_expiry: this.datePipe.transform(x.date_lease_expiry,'dd/MM/yyyy'),\r\n });\r\n\r\n $(\"#addEdit\").modal('show');\r\n\r\n }\r\n this.isLoading=false;\r\n });\r\n\r\n }\r\n\r\n changeCountry(countryId) {\r\n //console.log(this.myForm.value.country_id);\r\n this.found = false; // hides the 'Retrieve from eNatis' button\r\n\r\n if (countryId.value != 113) {\r\n this.resetForm();\r\n }\r\n\r\n if (this.myForm.value.country_id === 113) {\r\n this.isSouthAfrica = true;\r\n\r\n // this.myForm.controls.registration_number.disable();\r\n // this.myForm.controls.vehicle_owner.disable();\r\n // this.myForm.controls.registration_year.disable();\r\n // this.myForm.controls.vehicle_colour.disable();\r\n // this.myForm.controls.vehicle_model.disable();\r\n // this.myForm.controls.gvn.disable();\r\n // this.myForm.controls.engine_number.disable();\r\n // this.myForm.controls.roadworthy_status.disable();\r\n // this.myForm.controls.eNatis_num.disable();\r\n // this.myForm.controls.date_license_expiry.disable();\r\n // this.myForm.controls.seating_capacity.disable();\r\n // this.myForm.controls.vehicle_make_id.disable();\r\n // this.myForm.controls.vehicle_type_id.disable();\r\n // this.myForm.controls.is_leased.disable();\r\n // this.myForm.controls.vehicle_lessor.disable();\r\n // this.myForm.controls.vehicle_lessee.disable();\r\n // this.myForm.controls.date_lease_expiry.disable();\r\n\r\n } else {\r\n this.isSouthAfrica = false;\r\n\r\n // this.myForm.controls.registration_number.enable();\r\n // this.myForm.controls.vehicle_owner.enable();\r\n // this.myForm.controls.registration_year.enable();\r\n // this.myForm.controls.vehicle_colour.enable();\r\n // this.myForm.controls.vehicle_model.enable();\r\n // this.myForm.controls.gvn.enable();\r\n // this.myForm.controls.engine_number.enable();\r\n // this.myForm.controls.roadworthy_status.enable();\r\n // this.myForm.controls.eNatis_num.enable();\r\n // this.myForm.controls.date_license_expiry.enable();\r\n // this.myForm.controls.seating_capacity.enable();\r\n // this.myForm.controls.vehicle_make_id.enable();\r\n // this.myForm.controls.vehicle_type_id.enable();\r\n // this.myForm.controls.is_leased.enable();\r\n // this.myForm.controls.vehicle_lessor.enable();\r\n // this.myForm.controls.vehicle_lessee.enable();\r\n // this.myForm.controls.date_lease_expiry.enable();\r\n }\r\n }\r\n\r\n checkRoadworthy (event: any) {\r\n if(event.target.value === 'Unroadworthy'){\r\n if (this.myForm.value.country_id === 113) {\r\n this.toastr.warning('Please note that according to eNatis this vehicle is not roadworthy and therefore will not be eligible for permit application.')\r\n } else {\r\n this.toastr.warning('Please note that according to your selection this vehicle is not roadworthy and therefore will not be eligible for permit application.')\r\n }\r\n return\r\n }\r\n }\r\n\r\n/* checkCountrySelection (event: any) {\r\n if (this.isVehicleLoading = true){\r\n } else {\r\n if (!this.myForm.value.country_id) {\r\n this.toastr.info(\"Please select the vehicle's Country-of-Registration before continuing.\")\r\n }\r\n }\r\n return\r\n } */\r\n\r\nresetForm(){\r\n this.eNatisResult=null;\r\n this.myForm.patchValue({\r\n vin:'',\r\n registration_number:'',\r\n engine_number:'',\r\n gvn:'',\r\n seating_capacity: '',\r\n registration_year:'',\r\n date_license_expiry:null,\r\n roadworthy_status:'',\r\n eNatis_num:'',\r\n vehicle_type_id:'',\r\n carrier_id:'',\r\n is_leased:'',\r\n vehicle_lessor:'',\r\n vehicle_lessee:'',\r\n date_lease_expiry:null,\r\n vehicle_owner:'',\r\n vehicle_colour: '',\r\n vehicle_model: '',\r\n });\r\n this.LeaseChange(); // hides the lease container\r\n this.found = false; // hides the 'Retrieve from eNatis' button\r\n //this.disallowEdit = false;\r\n this.myForm.controls.country_id.enable();\r\n this.myForm.controls.roadworthy_status.enable();\r\n this.myForm.controls.vehicle_type_id.enable();\r\n this.myForm.controls.is_leased.enable();\r\n this.myForm.controls.carrier_id.enable();\r\n}\r\n\r\n SaveModal(){\r\n //console.log(this.myForm.value);\r\n\r\n this.myForm.value.vehicle_make_id=this.selectedVMake.id ;\r\n\r\n if(!this.myForm.value.country_id){\r\n return this.toastr.warning('Country of vehicle registration is required!','Country Of Vehicle Registration');\r\n }\r\n if(!this.myForm.value.registration_number){\r\n return this.toastr.warning('Vehicle registration number is required!','Vehicle Registration Number');\r\n }\r\n // if(!this.myForm.value.vehicle_make_id){\r\n // return this.toastr.warning('Vehicle make is required!','Vehicle Make');\r\n // }\r\n if(!this.myForm.value.vin){\r\n return this.toastr.warning('VIN or Chassis number is required!','VIN or Chassis Number');\r\n }\r\n // if(this.myForm.value.vin.length !== 17){\r\n // return this.toastr.warning('VIN should be 17 alphanumeric characters.','VIN or Chassis Number')\r\n // }\r\n if(!this.myForm.value.engine_number){\r\n return this.toastr.warning('Engine number is required!','Engine Number');\r\n }\r\n if(!this.myForm.value.gvn){\r\n return this.toastr.warning('Gross Vehicle(GVM) is required!','Gross Vehicle(GVM)');\r\n }\r\n if(!this.myForm.value.date_license_expiry){\r\n return this.toastr.warning('License expiry date is required!','License Expiry Date');\r\n }\r\n // if(!this.myForm.value.start_date){\r\n // return this.toastr.warning('Start Date is required!','Permit Start Date');\r\n // }\r\n if(!this.myForm.value.roadworthy_status){\r\n return this.toastr.warning('Roadworthy status is required!','Roadworthy Status');\r\n }\r\n if(!this.myForm.value.vehicle_type_id){\r\n return this.toastr.warning('Vehicle type is required!','Vehicle Type');\r\n }\r\n\r\n if(this.myForm.value.is_leased == null){\r\n return this.toastr.warning('Is the vehicle leased?','Vehicle');\r\n }\r\n if(!this.myForm.value.carrier_id){\r\n return this.toastr.warning('Carrier Account is required','Carrier Account');\r\n }\r\n if(this.leased === true || this.leased === 'true'){\r\n //console.log('inside')\r\n if(!this.myForm.value.vehicle_lessor){\r\n return this.toastr.warning('Lessor name is required!','Lessor Name');\r\n }\r\n if(!this.myForm.value.vehicle_lessee){\r\n return this.toastr.warning('Lessee name is required!','Lessee Name');\r\n }\r\n if(!this.myForm.value.date_lease_expiry){\r\n return this.toastr.warning('Expiry date of lease is required!','Expiry Date Of Lease');\r\n }\r\n }\r\n if(!(parseInt(this.myForm.value.registration_year) >= 1950 && parseInt(this.myForm.value.registration_year) <=2100)){\r\n this.toastr.warning(\"Invalid Registration Year\");\r\n return false;\r\n }\r\n if(this.leased === false || this.leased === 'false'){\r\n this.myForm.value.vehicle_lessor = '';\r\n this.myForm.value.vehicle_lessee = '';\r\n this.myForm.value.date_lease_expiry = '';\r\n }\r\n\r\n if(this.myForm.value.date_license_expiry){\r\n let date_license_expiry = this.myForm.value.date_license_expiry\r\n let date = date_license_expiry.split('/');\r\n let day = parseInt(date[0], 10);\r\n let month = parseInt(date[1], 10);\r\n let year = parseInt(date[2], 10);\r\n let newDate = year + '/'+ month + '/' + day;\r\n let newDate1 = new Date (newDate);\r\n newDate1.setDate(newDate1.getDate() + 1);\r\n this.myForm.value.date_license_expiry = newDate1;\r\n }\r\n\r\n if(this.myForm.value.date_lease_expiry){\r\n let date_lease_expiry = this.myForm.value.date_lease_expiry;\r\n let date1 = date_lease_expiry.split('/');\r\n let day1 = parseInt(date1[0], 10);\r\n let month1 = parseInt(date1[1], 10);\r\n let year1 = parseInt(date1[2], 10);\r\n let newDate2 = year1 + '/'+ month1 + '/' + day1;\r\n let newDate11 = new Date (newDate2);\r\n newDate11.setDate(newDate11.getDate() + 1);\r\n this.myForm.value.date_lease_expiry = newDate11;\r\n }\r\n\r\n this.myForm.value.user_modified = this.myForm.value.user_created = environment.authWebApi.userData.User.FirstName,\r\n this.myForm.value.vehicle_register_num=this.myForm.value.eNatis_num;\r\n // if(this.myForm.value.registration_year.includes('-')){\r\n // let date = this.myForm.value.registration_year.split('-');\r\n // let year = parseInt(date[2], 10);\r\n // this.myForm.value.registration_year = year\r\n\r\n // }\r\n //console.log(this.myForm.value);\r\n this.isVehicleLoading = true;\r\n\r\n if(this.myForm.value.id==-1){\r\n // new entry - insert only for account if not already exists - do not update by creating a \"new\" vehicle\r\n this.vehicleEntryService.postCarrierVehicleEntry(this.myForm.value,this.myForm.value.carrier_id).subscribe(itemRes=>{\r\n //console.log(itemRes)\r\n if (itemRes == 'Updated') {\r\n this.toastr.info('Vehicle details already exists for this carrier. Updated details successfully.', 'Vehicle already in register');\r\n } \r\n else if(itemRes == 'AlreadyInPermit')\r\n {\r\n this.toastr.info('Vehicle details already exists in active Permit.', 'Vehicle already in active Permit');\r\n }\r\n else {\r\n this.toastr.success('Saved Vehicle Details');\r\n\r\n }\r\n this.isVehicleLoading = true;\r\n $(\"#addEdit\").modal('hide');\r\n // this.getApp(this.appid);\r\n this.loadAccounts();\r\n this.isVehicleLoading=false;\r\n },(err)=>{\r\n this.isVehicleLoading=false;\r\n this.toastr.error('Failed to save application. If the problem persist, please contact system administrator.', 'Save Application')\r\n });\r\n }else{\r\n // vehicle exists - update\r\n this.isVehicleLoading=true;\r\n this.vehicleEntryService.postCarrierVehicleEntry(this.myForm.value,this.myForm.value.carrier_id).subscribe(itemRes=>{\r\n this.toastr.success('Updated Vehicle Details');\r\n this.isVehicleLoading = false;\r\n $(\"#addEdit\").modal('hide');\r\n // this.getApp(this.appid);\r\n this.loadAccounts();\r\n },(err)=>{\r\n this.isVehicleLoading = false;\r\n this.toastr.error('Failed to save application. If the problem persist, please contact system administrator.', 'Save Application')\r\n });\r\n }\r\n }\r\n\r\n CloseModal(){\r\n $(\"#addEdit\").modal('hide');\r\n this.isEditData=false;\r\n //this.disallowEdit=false;\r\n this.isViewData=false;\r\n this.isSouthAfrica=false;\r\n this.isVehicleLoading = false;\r\n this.myForm.controls.country_id.enable();\r\n this.myForm.controls.roadworthy_status.enable();\r\n this.myForm.controls.vehicle_type_id.enable();\r\n this.myForm.controls.is_leased.enable();\r\n this.myForm.controls.carrier_id.enable();\r\n }\r\n\r\n selectAction(actionType,res){\r\n if(actionType.value=='view'){\r\n this.isViewData=true;\r\n this.isEditData=false;\r\n this.editVehicle(res);\r\n this.myForm.controls.country_id.disable();\r\n this.myForm.controls.roadworthy_status.disable();\r\n this.myForm.controls.vehicle_type_id.disable();\r\n this.myForm.controls.is_leased.disable();\r\n this.myForm.controls.carrier_id.disable();\r\n }\r\n else if(actionType.value=='edit'){\r\n this.isEditData=true;\r\n this.isViewData=false; \r\n this.editVehicle(res); \r\n this.myForm.controls.country_id.enable();\r\n this.myForm.controls.roadworthy_status.enable();\r\n this.myForm.controls.vehicle_type_id.enable();\r\n this.myForm.controls.is_leased.enable();\r\n this.myForm.controls.carrier_id.enable();\r\n }\r\n // if(actionType.value =='delete')\r\n // {\r\n // this.OndeleteVehicle(res)\r\n // }\r\n // if(actionType.value=='upload'){\r\n // this.selectItem=res;\r\n // this.uploadDocs(res);\r\n // }\r\n return\r\n }\r\n\r\n OndeleteVehicle(vehicle){\r\n\r\n this.getCarrierVehicleEntry(vehicle.id);\r\n if(vehicle.Permit.is_valid)\r\n {\r\n this.toastr.warning('Cannot delete a valid permit');\r\n return;\r\n }\r\n\r\n // this.msgService.showYesNo('Delete Vehicle', `Are you sure you want to delete this vehicle`, '').subscribe(isConfirmed => {\r\n\r\n // if (isConfirmed) {\r\n\r\n // let object = {\r\n // vehicle_entry:vehicle.id,\r\n // carrier_id:this.myForm.value.carrier_id,\r\n // permit_id:vehicle.permit_id\r\n // }\r\n\r\n // if(this.carrierId ==\"\")\r\n // {\r\n // this.toastr.success(\"Please filter by one carrier\",'Vehicle');\r\n // return;\r\n // }\r\n\r\n // //console.log(\"vehicle object: \" + JSON.stringify(vehicle));\r\n // this.vehicleEntryService.deletevehicle(object).subscribe((result:any) =>{\r\n // this.isLoading = true;\r\n // if(result!=null){\r\n // //console.log(\"Delete object: \" +JSON.stringify(result));\r\n // this.toastr.success( JSON.stringify(result.Value),'Vehicle');\r\n\r\n // this.isLoading = false;\r\n // return;\r\n\r\n // } else{\r\n // this.toastr.warning('No vehicle entry record found','Vehicle');\r\n // this.isLoading = false;\r\n // }\r\n // },error =>{\r\n // this.isLoading = false;\r\n // });\r\n\r\n // }\r\n\r\n // });\r\n this.confirmDialogService.confirmThis(\"Are you sure you want to delete this vehicle?\", () => { \r\n \r\n\r\n let object = {\r\n vehicle_entry:vehicle.id,\r\n carrier_id:this.myForm.value.carrier_id,\r\n permit_id:vehicle.permit_id\r\n }\r\n \r\n if(this.carrierId ==\"\")\r\n {\r\n this.toastr.success(\"Please filter by one carrier\",'Vehicle');\r\n return;\r\n }\r\n \r\n //console.log(\"vehicle object: \" + JSON.stringify(vehicle));\r\n this.vehicleEntryService.deletevehicle(object).subscribe((result:any) =>{\r\n this.isLoading = true;\r\n if(result!=null){\r\n //console.log(\"Delete object: \" +JSON.stringify(result));\r\n this.toastr.success( JSON.stringify(result.Value),'Vehicle');\r\n \r\n this.isLoading = false;\r\n return;\r\n \r\n } else{\r\n this.toastr.warning('No vehicle entry record found','Vehicle');\r\n this.isLoading = false;\r\n }\r\n },error =>{\r\n this.isLoading = false;\r\n });\r\n \r\n \r\n }, () => { \r\n //No here\r\n })\r\n }\r\n\r\n close() {\r\n this.isSouthAfrica = false;\r\n //this.disallowEdit = false;\r\n }\r\n}\r\n","
\r\n \r\n
\r\n
\r\n
\r\n

External: Vehicles

\r\n
\r\n
\r\n
\r\n
\r\n Filters\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n\r\n \r\n\r\n
\r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n 10\" style=\"padding-left:0px;margin-left:0px;\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n Vin\r\n \r\n \r\n Country of registration\r\n \r\n \r\n Vehicle Type\r\n \r\n \r\n Registration Number\r\n \r\n \r\n eNatis Number\r\n \r\n \r\n Licence Expiry Date\r\n \r\n \r\n GVM\r\n \r\n \r\n Seating Capacity\r\n \r\n \r\n Road Worthiness\r\n \r\n \r\n \r\n
{{item.vin}}{{item.VehicleEntry.vin}}\r\n \r\n {{cnt.desc}}\r\n \r\n \r\n {{cnt.desc}}\r\n \r\n \r\n {{type.description}}\r\n \r\n {{item.VehicleEntry.registration_number}}{{item.registration_number}}{{item.VehicleEntry.vehicle_register_num}}{{item.vehicle_register_num}}{{item.VehicleEntry.date_license_expiry | date:'dd/MM/yyyy'}}{{item.date_license_expiry | date:'dd/MM/yyyy'}}{{item.VehicleEntry.gvn}}{{item.gvn}}{{item.VehicleEntry.seating_capacity}}{{item.seating_capacity}}{{item.VehicleEntry.roadworthy_status}}{{item.roadworthy_status}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n No vehicle Entries found.\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
Add Vehicle
\r\n
Edit Vehicle
\r\n
Vehicle Details
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { DialogService } from 'ng2-bootstrap-modal';\r\nimport { AlertComponent } from 'app/popup/alert.component';\r\nimport { ErrorComponent } from 'app/popup/error.component';\r\nimport { CarrierTypeDocumentService } from 'app/services/carrier-type-document.service';\r\nimport { CarrierTypeService } from 'app/services/carrier-type.service';\r\nimport { DocumenttypeService} from 'app/services/documenttype.service';\r\nimport { UtilityServiceService } from 'app/services/utility-service.service';\r\nimport {Linked} from 'app/interfaces/linked';\r\nimport { AuthWebService } from 'app/services/authweb.service';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\n@Component({\r\n selector: 'app-list-carrier-type-document',\r\n templateUrl: './list-carrier-type-document.component.html',\r\n styleUrls: ['./list-carrier-type-document.component.css']\r\n})\r\nexport class ListCarrierTypeDocumentComponent implements OnInit {\r\n\r\n carrierTypes: any = [];\r\n selectedCarrierType:any ={};\r\n doctypes: any = {};\r\n linked: any = [];\r\n isChecked: boolean = false;\r\n refLink: any = {};\r\n isEdit: boolean = false;\r\n doctype: string = \"\";\r\n isActivated: boolean = false;\r\n selected = true;\r\n isRemove = false;\r\n removeRef: any;\r\n criteria = 'code';\r\n direction = false;\r\n page = 1;\r\n lblHeading = '';\r\n audit = { created: '', updated: '' };\r\n user = { LastName: '' };\r\n code: any;\r\n description:any\r\n popoverTitle = 'Delete Carrier Type Document Link';\r\n popoverMessage = 'Are you sure you want to delete Carrier Type Document Link?';\r\n confirmText = 'Yes ';\r\n cancelText = 'No ';\r\n confirmClicked = false;\r\n cancelClicked = false;\r\n deleteConfirm = '';\r\n message = \"Loading Carrier Type Document Links...\";\r\n\r\n public isLoading = false;\r\n isEmpty: boolean = false;\r\n id:number;\r\n\r\n\r\n constructor(private CTDservice: CarrierTypeDocumentService,private DTservice : DocumenttypeService,\r\n private CTservice: CarrierTypeService,private authWebService: AuthWebService,\r\n private utility: UtilityServiceService,private toastr: ToastrService) { }\r\n\r\n ngOnInit() {\r\n this.user.LastName = (this.authWebService.userData) ? this.authWebService.userData.User.LastName : '';\r\n this.onLoadCarrierTypes()\r\n //this.carrierTypes =[{ id: 4, code: 'Foreign' }, { id: 1003, code: 'CTC007-587' }, { id: 1004, code: 'INDVL' }];\r\n this.onChangeHeading();\r\n\r\n }\r\n onLoadCarrierTypes(){\r\n this.isActivated = true;\r\n this.CTservice.getAll().subscribe(\r\n result => {\r\n this.carrierTypes = result;\r\n this.isActivated = false;\r\n //console.log(this.carrierTypes);\r\n },\r\n error => {\r\n //console.log(error);\r\n this.isActivated = false;\r\n });\r\n\r\n }\r\n\r\n onChange() {\r\n\r\n this.linked = [];\r\n this.isChecked = false;\r\n if (this.selectedCarrierType.id > 0)\r\n this.code = this.selectedCarrierType.code\r\n this.description = this.selectedCarrierType.description\r\n this.onReloadLinks(this.selectedCarrierType.id);\r\n}\r\nonReloadLinks(id: number, show: boolean=true) {\r\n this.message = \"Loading document types, please wait...\";\r\n this.isActivated = show;\r\n this.DTservice.getLinkedAndUnlinkedDoctypes(id).subscribe(\r\n result => {\r\n this.doctypes = result;\r\n this.isActivated = false;\r\n //console.log(this.doctypes.linked);\r\n },\r\n error => {\r\n //console.log(error);\r\n this.isActivated = false;\r\n }\r\n );\r\n}\r\nisInList(id: number) {\r\n let count = this.linked.length;\r\n for (let iter = 0; iter < count; iter++) {\r\n if (this.linked[iter].document_type_id == id) return iter;\r\n }\r\n return -1;\r\n}\r\nonCheck(id :number) {\r\n let val: Linked = {\r\n id: undefined,\r\n document_type_id: id,\r\n carrier_type_id: this.selectedCarrierType.id,\r\n is_active: true,\r\n is_mandatory: false,\r\n date_created: new Date(),\r\n user_created: this.user.LastName,\r\n user_modified: this.user.LastName,\r\n date_modified: new Date()\r\n };\r\n this.isChecked = true;\r\n let index = this.isInList(id);\r\n if (index == -1) this.linked.push(val);\r\n else this.linked[index] = val;\r\n\r\n\r\n}\r\nonPop(id :number) {\r\n\r\n this.isChecked = true;\r\n let index = this.isInList(id);\r\n //console.log(\"remove item\");\r\n if (index != -1) this.linked.splice(index,1);\r\n\r\n\r\n\r\n}\r\nonDelete(id: number, doctype: string) {\r\n //console.log(id);\r\n this.message = `Unlinking ${this.doctype}, please wait...`;\r\n this.isActivated = true;\r\n this.DTservice.deleteLink(id).subscribe(\r\n result => {\r\n this.isActivated = false;\r\n this.onReloadLinks(this.selectedCarrierType.id, false);\r\n // this.dialogService.addDialog(AlertComponent, { title: 'Unlink Document Type', message: `Document type ${doctype} linked to ${this.selectedCarrierType.code} unlinked succesfully.`, bold: `${this.selectedCarrierType.code}` });\r\n this.toastr.success(`Document type ${doctype} linked to ${this.selectedCarrierType.code} unlinked succesfully.`,'Carrier Type Document Link');\r\n\r\n },\r\n error => {\r\n this.isActivated = false;\r\n //console.log(error);\r\n }\r\n );\r\n}\r\n\r\nOnSaveLinks(id) {\r\n let val: Linked = {\r\n id: undefined,\r\n document_type_id: id,\r\n carrier_type_id: this.selectedCarrierType.id,\r\n is_active: true,\r\n is_mandatory: false,\r\n date_created: new Date(),\r\n user_created: this.user.LastName,\r\n user_modified: this.user.LastName,\r\n date_modified: new Date()\r\n};\r\n this.message = \"Linking selected document type(s), please wait...\";\r\n this.isActivated = true;\r\n this.DTservice.addToLinks(val).subscribe(\r\n result => {\r\n this.isActivated = false;\r\n // this.dialogService.addDialog(AlertComponent, { title: 'Linking Document Type(s)', message: `Document type(s) linked to ${this.selectedCarrierType.code} succesfully.`, bold: `${this.selectedCarrierType.code}` });\r\n this.toastr.success(`Document type(s) linked to ${this.selectedCarrierType.code} succesfully.`,'Carrier Type Document Link');\r\n\r\n this.onReloadLinks(this.selectedCarrierType.id, false);\r\n this.linked = [];\r\n },\r\n error => {\r\n //console.log(error);\r\n this.isActivated = false;\r\n this.linked = [];\r\n }\r\n );\r\n\r\n}\r\nonEdit(id:any ,doctype:any) {\r\n this.doctype = doctype;\r\n\r\n this.isEdit = true;\r\n this.DTservice.getLinkById(id).subscribe(\r\n result => {\r\n this.refLink = result;\r\n this.refLink.DocumentType = doctype;\r\n },\r\n error => {\r\n //console.log(error);\r\n }\r\n );\r\n}\r\nonUpdateLink(event,id,carrierType) {\r\n //console.log(event.target.checked);\r\n\r\n if(event.target.checked){\r\n\r\n // this.message = `Update link between ${this.doctype} and ${this.selectedCarrierType.code}, please wait...`;\r\n this.isActivated = true;\r\n let link: Linked = {\r\n id: id,\r\n document_type_id: carrierType.document_type_id,\r\n carrier_type_id: carrierType.carrier_type_id,\r\n is_active: carrierType.is_active,\r\n is_mandatory: true,\r\n date_created: carrierType.date_created,\r\n user_created: carrierType.user_created,//To be changed\r\n user_modified: carrierType.user_created,//To be changed\r\n date_modified: new Date()\r\n };\r\n\r\n this.DTservice.updateLink(link).subscribe(\r\n result => {\r\n this.onReloadLinks(this.selectedCarrierType.id, false);\r\n this.isEdit = this.isActivated = false;\r\n // this.dialogService.addDialog(AlertComponent, { title: 'Update Document Type Link', message: `Document type ${this.doctype} linked to ${this.selectedCarrierType.code} updated succesfully.`, bold: `${this.selectedCarrierType.code}` });\r\n this.toastr.success(`Document type ${this.doctype} linked to ${this.selectedCarrierType.code} updated succesfully.`,'Carrier Type Document Link');\r\n\r\n },\r\n error => {\r\n //console.log(error);\r\n this.isEdit = this.isActivated = false;\r\n }\r\n );\r\n }\r\n if(!event.target.checked){\r\n\r\n //this.message = `Update link between ${this.doctype} and ${this.selectedCarrierType.code}, please wait...`;\r\n this.isActivated = true;\r\n let link: Linked = {\r\n id: id,\r\n document_type_id: carrierType.document_type_id,\r\n carrier_type_id: carrierType.carrier_type_id,\r\n is_active: carrierType.is_active,\r\n is_mandatory: false,\r\n date_created: carrierType.date_created,\r\n user_created: carrierType.user_created,//To be changed\r\n user_modified: carrierType.user_created,//To be changed\r\n date_modified: new Date()\r\n };\r\n //console.log(link);\r\n\r\n this.DTservice.updateLink(link).subscribe(\r\n result => {\r\n this.onReloadLinks(this.selectedCarrierType.id, false);\r\n this.isEdit = this.isActivated = false;\r\n // this.dialogService.addDialog(AlertComponent, { title: 'Update Document Type Link', message: `Document type ${this.doctype} linked to ${this.selectedCarrierType.code} updated succesfully.`, bold: `${this.selectedCarrierType.code}` });\r\n this.toastr.success(`Document type ${this.doctype} linked to ${this.selectedCarrierType.code} updated succesfully.`,'Carrier Type Document Link');\r\n\r\n },\r\n error => {\r\n //console.log(error);\r\n this.isEdit = this.isActivated = false;\r\n }\r\n );\r\n }\r\n}\r\n\r\nonChangeHeading(change: boolean = true)\r\n{\r\n this.lblHeading = (change) ? 'Carrier Type Documents' : 'Delete Carrier Type Document';\r\n}\r\nonCancel() {\r\n this.isEdit = false;\r\n}\r\n\r\n\r\n\r\n}\r\n","
\r\n\r\n
\r\n
\r\n
Manage Carrier & Document Type Links
\r\n
\r\n
\r\n\r\n
\r\n\r\n \r\n \r\n \r\n\r\n\r\n
\r\n
\r\n
\r\n This left pane shows all the available document types that can still be linked to the selected carrier type. \r\n
\r\n
\r\n This right-side pane shows all the document types that are already linked and therefore shown on the uploads screen. \r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
CodeDescriptionClick To Link
\r\n {{unlink.code}}\r\n \r\n {{unlink.description}}\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n\r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n
CodeDescriptionMandatory?De-Link
\r\n {{link.code}}\r\n \r\n {{link.description}}\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n\r\n\r\n\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n Close\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { CarrierTypeService } from 'app/services/carrier-type.service';\r\nimport { DialogService } from 'ng2-bootstrap-modal';\r\nimport { UtilityServiceService } from 'app/services/utility-service.service';\r\nimport { AlertComponent } from 'app/popup/alert.component';\r\nimport { ErrorComponent } from 'app/popup/error.component';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\n@Component({\r\n selector: 'app-list-carrier-type',\r\n templateUrl: './list-carrier-type.component.html',\r\n styleUrls: ['./list-carrier-type.component.css']\r\n})\r\nexport class ListCarrierTypeComponent implements OnInit {\r\n\r\n cTypes: any = [];\r\n isRemove = false;\r\n removeRef: any; \r\n lblHeading = '';\r\n message = \"Loading Carrier Type...\";\r\n\r\n popoverTitle = 'Delete Carrier Type';\r\n popoverMessage = 'Are you sure you want to delete Carrier Type?';\r\n confirmText = 'Yes ';\r\n cancelText = 'No ';\r\n confirmClicked = false;\r\n cancelClicked = false;\r\n deleteConfirm = '';\r\n\r\n public isLoading = false;\r\n isEmpty: boolean = false;\r\n showNum: number = 10;\r\n\r\n constructor(private carrierTypeService: CarrierTypeService,\r\n private utility: UtilityServiceService,private toastr: ToastrService) { }\r\n\r\n ngOnInit() {\r\n this.onChangeHeading();\r\n this.reload();\r\n }\r\n\r\n reload() {\r\n this.isLoading = true;\r\n this.utility.page = 1;\r\n this.carrierTypeService.getAll().subscribe(result => {\r\n this.cTypes = result;\r\n this.utility.onSort(1);\r\n this.isLoading = false;\r\n }, error => {\r\n this.isLoading = false;\r\n this.isEmpty = true;\r\n });\r\n }\r\n\r\n onDelete(id: any) {\r\n this.carrierTypeService.delete(id).subscribe(result => {\r\n\r\n // this.dialogService.addDialog(AlertComponent, { title: 'Delete Carrier Type', message: `Carrier Type ${this.removeRef.code} deleted.`, bold: `${this.removeRef.code}` });\r\n this.toastr.success(`Carrier Type ${this.removeRef.code} deleted.`,'Delete Carrier Type');\r\n\r\n if (result != null) {\r\n this.onNo();\r\n this.reload();\r\n }\r\n this.onChangeHeading();\r\n }, error => {\r\n error = error.json();\r\n // this.dialogService.addDialog(ErrorComponent, { title: 'Delete Carrier Type', message: `Carrier Type ${this.removeRef.code} was not deleted.`, statuscode: error.Status, url: error.Uri, servermessage: error.Message });\r\n this.toastr.error(`Carrier Type ${this.removeRef.code} was not deleted.`,'Delete Carrier Type');\r\n\r\n });\r\n }\r\n\r\n onSort() {\r\n\r\n }\r\n\r\n onConfirm(doc: any) {\r\n this.removeRef = doc;\r\n this.deleteConfirm = `Are you sure you want to delete Carrier Type ${this.removeRef.code}?`;\r\n this.onChangeHeading(false);\r\n this.isRemove = true;\r\n }\r\n\r\n onNo() {\r\n this.isRemove = false;\r\n this.onChangeHeading();\r\n }\r\n\r\n\r\n onChangeHeading(change: boolean = true) {\r\n this.lblHeading = (change) ? 'Carrier Types' : 'Delete Carrier Type';\r\n }\r\n\r\n\r\n\r\n\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
Manage {{this.lblHeading}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 4\" style=\"padding-left:0px;margin-left:0px;\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Code\r\n \r\n \r\n Description\r\n \r\n \r\n Active?\r\n \r\n \r\n Sort Order\r\n \r\n \r\n Group\r\n \r\n Display?\r\n \r\n \r\n \r\n
{{cType.code}}{{cType.description}}{{utility.isActive(cType.is_active)}}{{cType.sort_order}}{{cType.group_code}}{{utility.showDisplayIndicator(cType.display_ind)}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n No Carrier Types found.\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { DialogService } from 'ng2-bootstrap-modal';\r\nimport { AlertComponent } from 'app/popup/alert.component';\r\nimport { ErrorComponent } from 'app/popup/error.component';\r\nimport { UtilityServiceService } from 'app/services/utility-service.service';\r\nimport {DocumenttypeService} from 'app/services/documenttype.service';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\n\r\n@Component({\r\n selector: 'app-list-document-type',\r\n templateUrl: './list-document-type.component.html',\r\n styleUrls: ['./list-document-type.component.css']\r\n})\r\nexport class ListDocumentTypeComponent implements OnInit {\r\n\r\n vDocTypes: any = [];\r\n isRemove = false;\r\n removeRef: any;\r\n criteria = 'code';\r\n direction = false; \r\n lblHeading = '';\r\n\r\n popoverTitle = 'Delete Document Type';\r\n popoverMessage = 'Are you sure you want to delete Document Type?';\r\n confirmText = 'Yes ';\r\n cancelText = 'No ';\r\n confirmClicked = false;\r\n cancelClicked = false;\r\n deleteConfirm = '';\r\n message = \"Loading Document Types...\";\r\n\r\n public isLoading = false;\r\n isEmpty: boolean = false;\r\n showNum: number = 10;\r\n\r\n constructor(private service: DocumenttypeService,\r\n public utility: UtilityServiceService,private toastr:ToastrService) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.onChangeHeading();\r\n this.reload();\r\n this.utility.page = 1;\r\n }\r\n reload() {\r\n this.isLoading = true;\r\n this.service.getAll().subscribe(result => {\r\n this.vDocTypes = result;\r\n this.utility.onSort(1);\r\n //console.log(this.vDocTypes);\r\n this.isLoading = false;\r\n }, error => {\r\n console.dir(error);\r\n this.isLoading = false;\r\n this.isEmpty = true;\r\n });\r\n\r\n }\r\n\r\n onChangeHeading(change: boolean = true){\r\n this.lblHeading = (change) ? 'Document Types' : 'Delete Document Type';\r\n }\r\n\r\n onNo() {\r\n this.isRemove = false;\r\n this.onChangeHeading();\r\n }\r\n\r\n onConfirm(doc: any) {\r\n this.removeRef = doc;\r\n this.deleteConfirm = `Are you sure you want to delete Document Type ${this.removeRef.code}?`;\r\n this.onChangeHeading(false);\r\n this.isRemove = true;\r\n }\r\n onSort() {\r\n this.direction = !this.direction;\r\n }\r\n\r\n onDelete(id: any) {\r\n this.service.delete(id).subscribe(result => {\r\n\r\n // this.dialogService.addDialog(AlertComponent, { title: 'Delete Document Type', message: `Document Type ${this.removeRef.code} deleted.`, bold: `${this.removeRef.code}` });\r\n this.toastr.success(`Document Type ${this.removeRef.code} deleted.`,'Delete Document Type');\r\n if (result != null) {\r\n this.onNo();\r\n this.reload();\r\n }\r\n this.onChangeHeading();\r\n }, error => {\r\n error = error.json();\r\n // this.dialogService.addDialog(ErrorComponent, { title: 'Delete Document Type', message: `Document Type ${this.removeRef.code} was not deleted.`, statuscode: error.Status, url: error.Uri, servermessage: error.Message });\r\n this.toastr.error(`Document Type ${this.removeRef.code} was not deleted.`,'Delete Document Type');\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
Manage {{this.lblHeading}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 1\" style=\"padding-left:0px;margin-left:0px;\">\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n Code\r\n \r\n \r\n Description\r\n \r\n \r\n Download?\r\n \r\n Template?\r\n \r\n Active?\r\n \r\n \r\n Sort Order\r\n \r\n \r\n Group\r\n \r\n Display\r\n \r\n \r\n \r\n
{{vDocType.code}}{{vDocType.description}}{{utility.isActive(vDocType.is_download)}}{{utility.isActive(vDocType.is_template)}}{{utility.isActive(vDocType.is_active)}}{{vDocType.sort_order}}{{vDocType.group_code}}{{utility.showDisplayIndicator(vDocType.display_ind)}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n No Document Types found.\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { DialogService } from 'ng2-bootstrap-modal';\r\nimport { AlertComponent } from 'app/popup/alert.component';\r\nimport { ErrorComponent } from 'app/popup/error.component';\r\nimport { UtilityServiceService } from 'app/services/utility-service.service';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { FreightTypeService } from 'app/services/freight-type.service';\r\n\r\n@Component({\r\n selector: 'app-list-freight-type',\r\n templateUrl: './list-freight-type.component.html',\r\n styleUrls: ['./list-freight-type.component.css']\r\n})\r\nexport class ListFreightTypeComponent implements OnInit {\r\n\r\n fTypes: any = [];\r\n isRemove = false;\r\n removeRef: any;\r\n criteria = 'code';\r\n direction = false; \r\n lblHeading = '';\r\n\r\n popoverTitle = 'Delete Freight Type';\r\n popoverMessage = 'Are you sure you want to delete Freight Type?';\r\n confirmText = 'Yes ';\r\n cancelText = 'No ';\r\n confirmClicked = false;\r\n cancelClicked = false;\r\n deleteConfirm = '';\r\n message = \"Loading Freight Type...\";\r\n\r\n public isLoading = false;\r\n isEmpty: boolean = false;\r\n showNum: number = 10;\r\n\r\n constructor(private service: FreightTypeService,\r\n private utility: UtilityServiceService,private toastr:ToastrService) { }\r\n\r\n ngOnInit() {\r\n this.onChangeHeandig();\r\n this.reload();\r\n this.utility.page = 1;\r\n }\r\n \r\n reload() {\r\n this.isLoading = true;\r\n this.service.getAll().subscribe(result => {\r\n this.fTypes = result;\r\n this.utility.onSort(1); \r\n this.isLoading = false;\r\n }, error => {\r\n this.isLoading = false;\r\n this.isEmpty = true;\r\n });\r\n }\r\n \r\n onDelete(id: any) {\r\n this.service.delete(id).subscribe(result => {\r\n this.toastr.success(`Freight Type ${this.removeRef.code} deleted.`,'Delete Freight Type');\r\n if (result != null) {\r\n this.onNo();\r\n this.reload();\r\n }\r\n this.onChangeHeandig();\r\n }, error => {\r\n error = error.json();\r\n this.toastr.error(`Freight Type ${this.removeRef.code} was not deleted.`,'Delete Freight Type');\r\n \r\n });\r\n }\r\n \r\n onSort() {\r\n this.direction = !this.direction;\r\n }\r\n \r\n onConfirm(doc: any) {\r\n this.removeRef = doc;\r\n this.deleteConfirm = `Are you sure you want to delete Freight Type ${this.removeRef.code}?`; \r\n this.onChangeHeandig(false);\r\n this.isRemove = true;\r\n }\r\n \r\n onNo() {\r\n this.isRemove = false;\r\n this.onChangeHeandig();\r\n }\r\n \r\n onChangeHeandig(change: boolean = true) {\r\n this.lblHeading = (change) ? 'Freight Types' : 'Delete Freight Type'; \r\n }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
Manage {{this.lblHeading}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 4\" style=\"padding-left:0px;margin-left:0px;\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Code \r\n \r\n Description\r\n \r\n \r\n Active?\r\n \r\n \r\n Sort Order\r\n \r\n \r\n Group\r\n \r\n Display\r\n \r\n \r\n \r\n
{{fType.code}}{{fType.description}}{{utility.isActive(fType.is_active)}}{{fType.sort_order}}{{fType.group_code}}{{utility.showDisplayIndicator(fType.display_ind)}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n No Freight types found.\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { PermitTypeService } from 'app/services/permit-type.service';\r\nimport { AuthWebService } from 'app/services/authweb.service';\r\nimport { UtilityServiceService } from 'app/services/utility-service.service';\r\nimport { DialogService } from 'ng2-bootstrap-modal';\r\nimport { AlertComponent } from 'app/popup/alert.component';\r\nimport { PermitLinked } from 'app/interfaces/PermitLinked';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { PermitTypeDocumentService } from 'app/services/permit-type-document.service';\r\n\r\n@Component({\r\n selector: 'app-list-permit-type-document',\r\n templateUrl: './list-permit-type-document.component.html',\r\n styleUrls: ['./list-permit-type-document.component.css'],\r\n providers: [PermitTypeDocumentService]\r\n})\r\nexport class ListPermitTypeDocumentComponent implements OnInit {\r\n permits: any;\r\n\r\n carrierTypes: any = [];\r\n selectedPermitType: any = {};\r\n doctypes: any = {};\r\n linked: any = [];\r\n isChecked: boolean = false;\r\n refLink: any = {};\r\n isEdit: boolean = false;\r\n doctype: string = \"\";\r\n isActivated: boolean = false;\r\n selected = true;\r\n isRemove = false;\r\n removeRef: any;\r\n criteria = 'code';\r\n direction = false;\r\n page = 1;\r\n lblHeading = '';\r\n audit = { created: '', updated: '' };\r\n user = { LastName: '' };\r\n\r\n popoverTitle = 'Delete Carrier Type Document Link';\r\n popoverMessage = 'Are you sure you want to delete Carrier Type Document Link?';\r\n confirmText = 'Yes ';\r\n cancelText = 'No ';\r\n confirmClicked = false;\r\n cancelClicked = false;\r\n deleteConfirm = '';\r\n message = \"Loading permit Type Document Links...\";\r\n\r\n public isLoading = false;\r\n isEmpty: boolean = false;\r\n code: any;\r\n description: any;\r\n constructor(\r\n private service: PermitTypeDocumentService, private authWebService: AuthWebService,\r\n private utility: UtilityServiceService, private toastr: ToastrService\r\n ) { }\r\n\r\n\r\n ngOnInit() {\r\n this.user.LastName = (this.authWebService.userData) ? this.authWebService.userData.User.LastName : '';\r\n\r\n this.getAllPermits();\r\n }\r\n getAllPermits() {\r\n this.service.getAll().subscribe(data => {\r\n this.permits = data;\r\n //console.log(data);\r\n });\r\n }\r\n\r\n onChange() {\r\n\r\n this.linked = [];\r\n this.isChecked = false;\r\n if (this.selectedPermitType.id > 0)\r\n this.code = this.selectedPermitType.code;\r\n this.description = this.selectedPermitType.description;\r\n this.onReloadLinks(this.selectedPermitType.id);\r\n\r\n }\r\n onReloadLinks(id: number, show: boolean = true) {\r\n this.message = \"Loading document types, please wait...\";\r\n this.isActivated = show;\r\n this.service.getLinkedAndUnlinkedDoctypes(id).subscribe(\r\n result => {\r\n this.doctypes = result;\r\n this.isActivated = false;\r\n this.isLoading = false;\r\n },\r\n error => {\r\n //console.log(error);\r\n this.isActivated = false;\r\n this.isLoading = false;\r\n }\r\n );\r\n }\r\n isInList(id: number) {\r\n let count = this.linked.length;\r\n for (let iter = 0; iter < count; iter++) {\r\n if (this.linked[iter].document_type_id == id) return iter;\r\n }\r\n return -1;\r\n }\r\n onCheck(id: number) {\r\n let val: PermitLinked = {\r\n id: undefined,\r\n document_type_id: id,\r\n permit_type_id: this.selectedPermitType.id,\r\n is_active: true,\r\n is_mandatory: false,\r\n date_created: new Date(),\r\n user_created: this.user.LastName,\r\n user_modified: this.user.LastName,\r\n date_modified: new Date()\r\n };\r\n this.isChecked = true;\r\n let index = this.isInList(id);\r\n if (index == -1) this.linked.push(val);\r\n else this.linked[index] = val;\r\n\r\n\r\n }\r\n onPop(id: number) {\r\n\r\n this.isChecked = true;\r\n let index = this.isInList(id);\r\n //console.log(\"remove item\");\r\n if (index != -1) this.linked.splice(index, 1);\r\n\r\n\r\n\r\n }\r\n onDelete(id: number, doctype: string) {\r\n this.message = `Unlinking ${this.doctype}, please wait...`;\r\n this.isLoading = true;\r\n this.isActivated = true;\r\n this.service.deleteLink(id).subscribe(\r\n result => {\r\n this.isActivated = false;\r\n this.linked = [];\r\n this.onReloadLinks(this.selectedPermitType.id, false);\r\n // this.dialogService.addDialog(AlertComponent, { title: 'Unlink Document Type', message: `Document type ${doctype} linked to ${this.selectedPermitType.code} unlinked succesfully.`, bold: `${this.selectedPermitType.code}` });\r\n this.toastr.success(`Document type ${doctype} linked to ${this.selectedPermitType.code} unlinked succesfully.`, 'Unlink Document Type')\r\n //console.log(result);\r\n },\r\n error => {\r\n this.isActivated = false;\r\n //console.log(error);\r\n }\r\n );\r\n }\r\n\r\n OnSaveLinks(id) {\r\n let val: PermitLinked = {\r\n id: undefined,\r\n document_type_id: id,\r\n permit_type_id: this.selectedPermitType.id,\r\n is_active: true,\r\n is_mandatory: false,\r\n date_created: new Date(),\r\n user_created: this.user.LastName,\r\n user_modified: this.user.LastName,\r\n date_modified: new Date()\r\n };\r\n //console.log(val);\r\n this.message = \"Linking selected document type(s), please wait...\";\r\n this.isLoading = true;\r\n this.isActivated = true;\r\n this.service.addToLinks(val).subscribe(\r\n result => {\r\n this.isActivated = false;\r\n // this.dialogService.addDialog(AlertComponent, { title: 'Linking Document Type(s)', message: `Document type(s) linked to ${this.selectedPermitType.code} succesfully.`, bold: `${this.selectedPermitType.code}` });\r\n this.toastr.success(`Document type(s) linked to ${this.selectedPermitType.code} succesfully.`, 'Unlink Document Type');\r\n\r\n this.onReloadLinks(this.selectedPermitType.id, false);\r\n },\r\n error => {\r\n //console.log(error);\r\n this.isActivated = false;\r\n }\r\n );\r\n\r\n }\r\n onEdit(id: any, doctype: any) {\r\n this.doctype = doctype;\r\n\r\n this.isEdit = true;\r\n this.service.getLinkById(id).subscribe(\r\n result => {\r\n this.refLink = result;\r\n this.refLink.DocumentType = doctype;\r\n },\r\n error => {\r\n //console.log(error);\r\n }\r\n );\r\n }\r\n onUpdateLink(event, id, selectedPermitType) {\r\n //console.log(event.target.checked);\r\n if (event.target.checked) {\r\n\r\n this.message = `Update link between ${this.doctype} and ${this.selectedPermitType.code}, please wait...`;\r\n this.isActivated = true;\r\n let link: PermitLinked = {\r\n id: id,\r\n document_type_id: selectedPermitType.document_type_id,\r\n permit_type_id: selectedPermitType.permit_type_id,\r\n is_active: selectedPermitType.is_active,\r\n is_mandatory: true,\r\n date_created: selectedPermitType.date_created,\r\n user_created: selectedPermitType.user_created,//To be changed\r\n user_modified: selectedPermitType.user_created,//To be changed\r\n date_modified: new Date()\r\n };\r\n //console.log(link);\r\n\r\n this.service.updateLink(link).subscribe(\r\n result => {\r\n this.onReloadLinks(this.selectedPermitType.id, false);\r\n this.isEdit = this.isActivated = false;\r\n // this.dialogService.addDialog(AlertComponent, { title: 'Update Document Type Link', message: `Document type ${this.doctype} linked to ${this.selectedPermitType.code} updated succesfully.`, bold: `${this.selectedPermitType.code}` });\r\n this.toastr.success(`Document type ${this.doctype} linked to ${this.selectedPermitType.code} updated succesfully.`, 'Unlink Document Type');\r\n },\r\n error => {\r\n //console.log(error);\r\n this.isEdit = this.isActivated = false;\r\n }\r\n );\r\n }\r\n if (!event.target.checked) {\r\n\r\n this.message = `Update link between ${this.doctype} and ${this.selectedPermitType.code}, please wait...`;\r\n this.isActivated = true;\r\n let link: PermitLinked = {\r\n id: id,\r\n document_type_id: selectedPermitType.document_type_id,\r\n permit_type_id: selectedPermitType.permit_type_id,\r\n is_active: selectedPermitType.is_active,\r\n is_mandatory: false,\r\n date_created: selectedPermitType.date_created,\r\n user_created: selectedPermitType.user_created,//To be changed\r\n user_modified: selectedPermitType.user_created,//To be changed\r\n date_modified: new Date()\r\n };\r\n //console.log(link);\r\n\r\n this.service.updateLink(link).subscribe(\r\n result => {\r\n this.onReloadLinks(this.selectedPermitType.id, false);\r\n this.isEdit = this.isActivated = false;\r\n // this.dialogService.addDialog(AlertComponent, { title: 'Update Document Type Link', message: `Document type ${this.doctype} linked to ${this.selectedPermitType.code} updated succesfully.`, bold: `${this.selectedPermitType.code}` });\r\n this.toastr.success(`Document type ${this.doctype} linked to ${this.selectedPermitType.code} updated succesfully.`, 'Unlink Document Type');\r\n\r\n },\r\n error => {\r\n //console.log(error);\r\n this.isEdit = this.isActivated = false;\r\n }\r\n );\r\n }\r\n\r\n }\r\n\r\n onChangeHeading(change: boolean = true) {\r\n this.lblHeading = (change) ? 'Carrier Type Documents' : 'Delete Carrier Type Document';\r\n }\r\n onCancel() {\r\n this.isEdit = false;\r\n }\r\n\r\n\r\n}\r\n","
\r\n
\r\n
\r\n
Manage Permit & Document Type Links
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n This left pane shows all the available document types that can still be linked to the selected permit\r\n type. \r\n
\r\n
\r\n This right-side pane shows all the document types that are already linked and therefore shown on the\r\n uploads screen. \r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n\r\n\r\n \r\n \r\n \r\n\r\n
CodeDescriptionClick To Link
\r\n {{x.code}}\r\n \r\n {{x.description}}\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n\r\n\r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n\r\n
CodeDescriptionMandatory?De-Link
\r\n {{x.code}}\r\n \r\n {{x.description}}\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n Close\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { PermitTypeService } from 'app/services/permit-type.service';\r\nimport { AuthWebService } from 'app/services/authweb.service';\r\nimport { UtilityServiceService } from 'app/services/utility-service.service';\r\nimport { DialogService } from 'ng2-bootstrap-modal';\r\nimport { AlertComponent } from 'app/popup/alert.component';\r\nimport { VehicleLinked } from 'app/interfaces/VehicleLinked';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { PermitTypeVehicleService } from 'app/services/permit-type-vehicle.service';\r\n\r\n\r\ndeclare var $;\r\n@Component({\r\n selector: 'app-list-permit-type-vehicle',\r\n templateUrl: './list-permit-type-vehicle.component.html',\r\n styleUrls: ['./list-permit-type-vehicle.component.css']\r\n})\r\nexport class ListPermitTypeVehicleComponent implements OnInit {\r\n permits: any;\r\n\r\n vehicleTypes: any = [];\r\n selectedPermitType: any = {};\r\n doctypes: any = {};\r\n linked: any = [];\r\n isChecked: boolean = false;\r\n refLink: any = {};\r\n isEdit: boolean = false;\r\n doctype: string = \"\";\r\n isActivated: boolean = false;\r\n selected = true;\r\n isRemove = false;\r\n removeRef: any;\r\n criteria = 'code';\r\n direction = false;\r\n page = 1;\r\n lblHeading = '';\r\n audit = { created: '', updated: '' };\r\n user = { LastName: '' };\r\n\r\n popoverTitle = 'Delete Vehicle Type vehicle Link';\r\n popoverMessage = 'Are you sure you want to delete Vehicle Type Vehicle Link?';\r\n confirmText = 'Yes ';\r\n cancelText = 'No ';\r\n confirmClicked = false;\r\n cancelClicked = false;\r\n deleteConfirm = '';\r\n message = \"Loading permit Type Vehicle Links...\";\r\n\r\n public isLoading = false;\r\n isEmpty: boolean = false;\r\n code: any;\r\n description: any;\r\n constructor(\r\n private service: PermitTypeVehicleService, private authWebService: AuthWebService,\r\n private utility: UtilityServiceService, private toastr: ToastrService\r\n ) { }\r\n\r\n\r\n ngOnInit() {\r\n this.user.LastName = (this.authWebService.userData) ? this.authWebService.userData.User.LastName : ''\r\n this.getAllPermits();\r\n\r\n }\r\n getAllPermits() {\r\n this.service.getAll().subscribe(data => {\r\n this.permits = data;\r\n //console.log(data);\r\n });\r\n }\r\n\r\n onChange() {\r\n this.linked = [];\r\n this.isChecked = false;\r\n if (this.selectedPermitType.id > 0)\r\n this.code = this.selectedPermitType.code;\r\n this.description = this.selectedPermitType.description;\r\n this.onReloadLinks(this.selectedPermitType.id);\r\n this.isLoading = true;\r\n }\r\n onReloadLinks(id: number, show: boolean = true) {\r\n\r\n this.message = \"Loading vehicle types, please wait...\";\r\n this.isActivated = show;\r\n this.service.getLinkedAndUnlinkedDoctypes(id).subscribe(\r\n result => {\r\n this.doctypes = null;\r\n this.doctypes = result;\r\n this.isActivated = false;\r\n this.isLoading = false;\r\n },\r\n error => {\r\n this.isActivated = false;\r\n this.isLoading = false;\r\n }\r\n );\r\n }\r\n isInList(id: number) {\r\n let count = this.linked.length;\r\n for (let iter = 0; iter < count; iter++) {\r\n if (this.linked[iter].vehicle_type_id == id) return iter;\r\n }\r\n return -1;\r\n }\r\n onCheck(id: number) {\r\n let val: VehicleLinked = {\r\n id: undefined,\r\n vehicle_type_id: id,\r\n permit_type_id: this.selectedPermitType.id,\r\n is_active: true,\r\n date_created: new Date(),\r\n user_created: this.user.LastName,\r\n user_modified: this.user.LastName,\r\n date_modified: new Date()\r\n };\r\n this.isChecked = true;\r\n let index = this.isInList(id);\r\n if (index == -1) this.linked.push(val);\r\n else this.linked[index] = val;\r\n }\r\n\r\n onPop(id: number) {\r\n this.isChecked = true;\r\n let index = this.isInList(id);\r\n //console.log(\"remove item\");\r\n if (index != -1) this.linked.splice(index, 1);\r\n }\r\n\r\n onDelete(id: number, doctype: string) {\r\n this.message = `Unlinking ${this.doctype}, please wait...`;\r\n this.isActivated = true;\r\n this.isLoading = true;\r\n this.service.deleteLink(id).subscribe(\r\n result => {\r\n this.isActivated = false;\r\n this.linked = [];\r\n this.onReloadLinks(this.selectedPermitType.id, false);\r\n // this.dialogService.addDialog(AlertComponent, { title: 'Unlink Document Type', message: `Document type ${doctype} linked to ${this.selectedPermitType.code} unlinked succesfully.`, bold: `${this.selectedPermitType.code}` });\r\n this.toastr.success(`vehicle type ${doctype} succesfully unlinked from ${this.selectedPermitType.code} unlinked.`, 'Unlink vehical type')\r\n\r\n },\r\n error => {\r\n this.isActivated = false;\r\n }\r\n );\r\n }\r\n\r\n OnSaveLinks(id) {\r\n let val: VehicleLinked = {\r\n id: undefined,\r\n vehicle_type_id: id,\r\n permit_type_id: this.selectedPermitType.id,\r\n is_active: true,\r\n date_created: new Date(),\r\n user_created: this.user.LastName,\r\n user_modified: this.user.LastName,\r\n date_modified: new Date()\r\n };\r\n //console.log(val);\r\n this.message = \"Linking selected vehicle type(s), please wait...\";\r\n this.isActivated = true;\r\n this.isLoading = true;\r\n this.service.addToLinks(val).subscribe(\r\n result => {\r\n this.isActivated = false;\r\n // this.dialogService.addDialog(AlertComponent, { title: 'Linking Document Type(s)', message: `Document type(s) linked to ${this.selectedPermitType.code} succesfully.`, bold: `${this.selectedPermitType.code}` });\r\n this.toastr.success(`vehicle type succesfully linked to ${this.selectedPermitType.code}.`, 'link vehicle type');\r\n\r\n this.onReloadLinks(this.selectedPermitType.id, false);\r\n },\r\n error => {\r\n //console.log(error);\r\n this.isActivated = false;\r\n }\r\n );\r\n\r\n }\r\n onEdit(id: any, doctype: any) {\r\n this.doctype = doctype;\r\n this.isEdit = true;\r\n this.service.getLinkById(id).subscribe(\r\n result => {\r\n this.refLink = result;\r\n this.refLink.DocumentType = doctype;\r\n },\r\n error => {\r\n //console.log(error);\r\n }\r\n );\r\n }\r\n onUpdateLink(event, id, selectedPermitType) {\r\n //console.log(event.target.checked);\r\n if (event.target.checked) {\r\n this.message = `Update link between ${this.doctype} and ${this.selectedPermitType.code}, please wait...`;\r\n this.isActivated = true;\r\n this.isLoading = true;\r\n let link: VehicleLinked = {\r\n id: id,\r\n vehicle_type_id: selectedPermitType.vehicle_type_id,\r\n permit_type_id: selectedPermitType.permit_type_id,\r\n is_active: selectedPermitType.is_active,\r\n date_created: selectedPermitType.date_created,\r\n user_created: selectedPermitType.user_created,//To be changed\r\n user_modified: selectedPermitType.user_created,//To be changed\r\n date_modified: new Date()\r\n };\r\n //console.log(link);\r\n\r\n this.service.updateLink(link).subscribe(\r\n result => {\r\n this.onReloadLinks(this.selectedPermitType.id, false);\r\n this.isEdit = this.isActivated = false;\r\n // this.dialogService.addDialog(AlertComponent, { title: 'Update Document Type Link', message: `Document type ${this.doctype} linked to ${this.selectedPermitType.code} updated succesfully.`, bold: `${this.selectedPermitType.code}` });\r\n this.toastr.success(`Vehicle type ${this.doctype} linked to ${this.selectedPermitType.code} updated succesfully.`, 'Unlink vehicle type');\r\n },\r\n error => {\r\n //console.log(error);\r\n this.isEdit = this.isActivated = false;\r\n }\r\n );\r\n }\r\n if (!event.target.checked) {\r\n\r\n this.message = `Update link between ${this.doctype} and ${this.selectedPermitType.code}, please wait...`;\r\n this.isActivated = true;\r\n this.isLoading = true;\r\n let link: VehicleLinked = {\r\n id: id,\r\n vehicle_type_id: selectedPermitType.vehicle_type_id,\r\n permit_type_id: selectedPermitType.permit_type_id,\r\n is_active: selectedPermitType.is_active,\r\n date_created: selectedPermitType.date_created,\r\n user_created: selectedPermitType.user_created,//To be changed\r\n user_modified: selectedPermitType.user_created,//To be changed\r\n date_modified: new Date()\r\n };\r\n //console.log(link);\r\n\r\n this.service.updateLink(link).subscribe(\r\n result => {\r\n this.onReloadLinks(this.selectedPermitType.id, false);\r\n this.isEdit = this.isActivated = false;\r\n // this.dialogService.addDialog(AlertComponent, { title: 'Update Document Type Link', message: `Document type ${this.doctype} linked to ${this.selectedPermitType.code} updated succesfully.`, bold: `${this.selectedPermitType.code}` });\r\n this.toastr.success(`vehicle type ${this.doctype} linked to ${this.selectedPermitType.code} updated succesfully.`, 'Unlink vehicle type');\r\n\r\n },\r\n error => {\r\n //console.log(error);\r\n this.isEdit = this.isActivated = false;\r\n }\r\n );\r\n }\r\n\r\n }\r\n\r\n onChangeHeading(change: boolean = true) {\r\n this.lblHeading = (change) ? 'permit Type Vehicles' : 'Delete permit Type Vehicles';\r\n }\r\n onCancel() {\r\n this.isEdit = false;\r\n }\r\n showDesc(event) {\r\n //console.log(event);\r\n\r\n }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
Manage Permit and Vehicle Type Links
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n This left pane shows all the available vehicle types that can still be linked to the selected permit type.\r\n \r\n
\r\n
\r\n This right pane shows all the vehicle types that are already linked\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
CodeDescriptionClick To Link
\r\n {{x.code}}\r\n \r\n {{x.description}}\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
CodeDescriptionDe-Link
\r\n {{x.code}}\r\n \r\n {{x.description}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n Close\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { DialogService } from 'ng2-bootstrap-modal';\r\nimport { ErrorComponent } from 'app/popup/error.component';\r\nimport { AlertComponent } from 'app/popup/alert.component';\r\nimport { UtilityServiceService } from 'app/services/utility-service.service';\r\nimport { PermitTypeService } from 'app/services/permit-type.service';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport {TableModule, Table} from 'primeng/table';\r\nimport {AutoCompleteModule} from 'primeng/autocomplete';\r\n\r\n@Component({\r\n selector: 'app-list-permit-type',\r\n templateUrl: './list-permit-type.component.html',\r\n styleUrls: ['./list-permit-type.component.css']\r\n})\r\nexport class ListPermitTypeComponent implements OnInit {\r\n\r\n pTypes: any = [];\r\n isRemove = false;\r\n removeRef: any; \r\n lblHeading = '';\r\n loading: boolean = true;\r\n @ViewChild('tbpTypes ') table: Table;\r\n\r\n popoverTitle = 'Delete Vehicle Make';\r\n popoverMessage = 'Are you sure you want to delete Permit Type?';\r\n confirmText = 'Yes ';\r\n cancelText = 'No ';\r\n confirmClicked = false;\r\n cancelClicked = false;\r\n deleteConfirm = '';\r\n message = \"Loading Permit Types...\";\r\n\r\n public isLoading = false;\r\n isEmpty: boolean = false;\r\n showNum: number = 10;\r\n\r\n constructor(private permitService: PermitTypeService, public utility: UtilityServiceService,private toastr:ToastrService) { }\r\n\r\n ngOnInit() {\r\n this.onChangeHeandig();\r\n this.reload();\r\n this.utility.page = 1;\r\n }\r\n\r\n reload() {\r\n this.isLoading = true;\r\n this.permitService.getAll().subscribe(result => {\r\n this.pTypes = result;\r\n this.utility.onSort(1);\r\n //console.log(this.pTypes);\r\n this.isLoading = false;\r\n }, error => {\r\n this.isLoading = false;\r\n this.isEmpty = true;\r\n //console.log(error);\r\n });\r\n }\r\n\r\n onDelete(id: any) {\r\n this.permitService.delete(id).subscribe(result => {\r\n\r\n // this.dialogService.addDialog(AlertComponent, { title: 'Delete Permit Type', message: `Permit Type ${this.removeRef.code} deleted.`, bold: `${this.removeRef.code}` });\r\n this.toastr.success(`Permit Type ${this.removeRef.code} deleted.`,'Delete Permit Type');\r\n if (result != null) {\r\n this.onNo();\r\n this.reload();\r\n }\r\n this.onChangeHeandig();\r\n }, error => {\r\n error = error.json();\r\n // this.dialogService.addDialog(ErrorComponent, { title: 'Delete Permit Type', message: `Permit Type ${this.removeRef.code} was not deleted.`, statuscode: error.Status, url: error.Uri, servermessage: error.Message });\r\n this.toastr.error(`Permit Type ${this.removeRef.code} was not deleted.`,'Delete Permit Type');\r\n });\r\n }\r\n \r\n onConfirm(doc: any) {\r\n this.removeRef = doc;\r\n this.deleteConfirm = `Are you sure you want to delete Permit Type ${this.removeRef.code}?`;\r\n this.onChangeHeandig(false);\r\n this.isRemove = true;\r\n }\r\n\r\n onNo() {\r\n this.isRemove = false;\r\n this.onChangeHeandig();\r\n }\r\n\r\n onChangeHeandig(change: boolean = true) {\r\n this.lblHeading = (change) ? 'Permit Types' : 'Delete Permit Type';\r\n }\r\n\r\n showIndicator = (indicator: number, type = 1) => {\r\n return (type == 1) ? (indicator == 1) ? 'Freight' : 'Passenger' : (indicator == 1) ? 'Temporary' : 'Long-term'; \r\n }\r\n\r\n showPeriod = (obj: any) => {\r\n let msg = '';\r\n if (obj.permit_days > 0) {\r\n msg = `Permit days {${obj.permit_days}}`;\r\n }\r\n else if (obj.permit_months > 0) {\r\n msg = `Permit months {${obj.permit_months}}`;\r\n }\r\n else if (obj.permit_years > 0) {\r\n msg = `Permit years {${obj.permit_years}}`;\r\n }\r\n return msg;\r\n }\r\n\r\n onActivityChange(event) {\r\n const value = event.target.value;\r\n if (value && value.trim().length) {\r\n const activity = parseInt(value);\r\n\r\n if (!isNaN(activity)) {\r\n this.table.filter(activity, 'activity', 'gte');\r\n }\r\n }\r\n}\r\n\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
Manage {{this.lblHeading}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n Code\r\n Description\r\n Temp or Long-term\r\n Freight or Passenger\r\n App Fee\r\n Permit Fee\r\n \r\n Active?\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n Edit/Delete\r\n \r\n \r\n
\r\n \r\n \r\n {{pType.code}}\r\n {{pType.description}}\r\n {{showIndicator(pType.temp_long_ind,2)}}\r\n {{showIndicator(pType.freight_passenger_ind)}}\r\n {{(pType.current_application_fee)? (pType.current_application_fee | currencyFormat):'R0'}}\r\n {{(pType.current_fee)? (pType.current_fee| currencyFormat):'R0'}}\r\n \r\n {{utility.isActive(pType.is_active)}}\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n\r\n \r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { ScannerService } from '../../services/scanner.service';\r\nimport { UtilityServiceService } from '../../services/utility-service.service';\r\nimport { Location } from '@angular/common';\r\nimport { Router } from '@angular/router';\r\n\r\n\r\n@Component({\r\n selector: 'app-list-scanner',\r\n templateUrl: './list-scanner.component.html',\r\n styleUrls: ['./list-scanner.component.css']\r\n})\r\nexport class ListScannerComponent implements OnInit {\r\n vTypes: any = [];\r\n isRemove = false;\r\n removeRef: any;\r\n criteria = 'code';\r\n direction = false; \r\n lblHeading = '';\r\n\r\n popoverTitle = 'Delete Scanner';\r\n popoverMessage = 'Are you sure you want to delete Scanner?';\r\n confirmText = 'Yes ';\r\n cancelText = 'No ';\r\n confirmClicked = false;\r\n cancelClicked = false;\r\n deleteConfirm = '';\r\n message = \"Loading Scanner...\";\r\n\r\n public isLoading = false;\r\n isEmpty: boolean = false;\r\n showNum: number = 10;\r\n\r\n constructor(private service: ScannerService,private utility: UtilityServiceService,private toastr:ToastrService,private location: Location ,private router: Router) { }\r\n\r\n ngOnInit() {\r\n this.onChangeHeandig();\r\n this.reload();\r\n this.utility.page = 1;\r\n }\r\n\r\n reload() {\r\n this.isLoading = true;\r\n this.service.getScanners().subscribe(result => {\r\n this.vTypes = result;\r\n this.utility.onSort(1); \r\n this.isLoading = false;\r\n }, error => {\r\n this.isLoading = false;\r\n this.isEmpty = true;\r\n });\r\n }\r\n\r\n onDelete(id: any) {\r\n this.service.delete(id).subscribe(result => {\r\n\r\n // this.dialogService.addDialog(AlertComponent, { title: 'Delete Scanner', message: `Scanner ${this.removeRef.code} deleted.`, bold: `${this.removeRef.code}` });\r\n this.toastr.success(`Scanner ${this.removeRef.device_id} deleted.`,'Delete Scanner');\r\n if (result != null) {\r\n this.onNo();\r\n this.reload();\r\n }\r\n this.onChangeHeandig();\r\n window.location.reload();\r\n\r\n }, error => {\r\n error = error.json();\r\n // this.dialogService.addDialog(ErrorComponent, { title: 'Delete Scanner', message: `Scanner ${this.removeRef.code} was not deleted.`, statuscode: error.Status, url: error.Uri, servermessage: error.Message });\r\n this.toastr.error(`Scanner ${this.removeRef.device_id} was not deleted.`,'Delete Scanner');\r\n\r\n });\r\n }\r\n\r\n onSort() {\r\n this.direction = !this.direction;\r\n }\r\n\r\n onConfirm(doc: any) {\r\n this.removeRef = doc;\r\n this.deleteConfirm = `Are you sure you want to delete Scanner ${this.removeRef.device_id}?`; \r\n this.onChangeHeandig(false);\r\n this.isRemove = true;\r\n }\r\n\r\n onNo() {\r\n this.isRemove = false;\r\n this.onChangeHeandig();\r\n }\r\n\r\n onChangeHeandig(change: boolean = true) {\r\n this.lblHeading = (change) ? 'Scanners' : 'Delete Scanner'; \r\n }\r\n\r\n reloadPage() {\r\n this.router.navigate(this.router.config, {skipLocationChange: true}).then(() => {\r\n this.router.navigated = false;\r\n this.router.navigate([this.router.url], {skipLocationChange: true, replaceUrl: true});\r\n });\r\n }\r\n\r\n\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
Manage {{this.lblHeading}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 4\" style=\"padding-left:0px;margin-left:0px;\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Device Id \r\n \r\n Scanner Alias\r\n \r\n Scanner IP AddressCurrent PCStatus\r\n \r\n \r\n \r\n
{{vType.device_id}}{{vType.scanner_alias}}{{vType.scanner_ip_address}}{{vType.pc_ip_address}}AvailableBusy\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n No scanners found.\r\n
\r\n
\r\n
\r\n
\r\n ","import { Component, Input, OnInit } from '@angular/core';\r\nimport { AuthSession } from 'app/interfaces/authsession.interface';\r\nimport { AuthWebService } from 'app/services/authweb.service';\r\nimport { SessionService } from 'app/services/session.service';\r\nimport { SignalrService } from 'app/services/signalr.service';\r\nimport { UtilityServiceService } from 'app/services/utility-service.service';\r\nimport { environment } from 'environments/environment';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { Observable } from 'rxjs';\r\nimport { map, filter } from 'rxjs/operators';\r\n\r\n\r\n@Component({\r\n selector: 'app-list-session',\r\n templateUrl: './list-session.component.html',\r\n styleUrls: ['./list-session.component.css']\r\n})\r\nexport class ListSessionComponent implements OnInit {\r\n @Input('ctrlData') ctrlData: any;\r\n flags = { flagSI: 1, flagPN: 1, flagPA: 1, flagST: 1, flagSS: 1, flagSE: 1 };\r\n ranks = { flagSI: 1, flagPN: 2, flagPA: 3, flagST: 4, flagSS: 5, flagSE: 6 };\r\n sortLabels = { flagSI: \"SessionId\", flagPN: \"PCName\", flagPA: \"PCIPAddress\", flagST: \"Status\", flagSS: \"SessionStart\", flagSE: \"SessioneEnd\" };\r\n sessions: any = [];\r\n criteria = \"DateSubmitted\";\r\n pcName: string;\r\n activePcName: string;\r\n isLoading: Boolean = false;\r\n keyword: any = {};\r\n message: string = 'Loading active sessions, please wait...';\r\n isEmpty: boolean = false;\r\n isListEmpty: boolean = false;\r\n pageSize: number = 10;\r\n count: number = 0;\r\n currentPage = 1;\r\n direction: boolean = false;\r\n selectedItems: any = [];\r\n rankCtrl: number = 6;\r\n processFlag:boolean=false;\r\n activesessionlist: any;\r\n aUser = environment.authWebApi.userData.User;\r\n\r\n constructor(public authWebService: AuthWebService, public signalrService: SignalrService, \r\n private msg: ToastrService, private service: SessionService, public utility: UtilityServiceService\r\n ) { \r\n\r\n signalrService.startConnection();\r\n }\r\n\r\n\r\n ngOnInit(): void {\r\n this.initKeyword();\r\n this.utility.page = 1;\r\n this.loadSessions(this.currentPage, this.pageSize);\r\n this.activesessionlist = this.signalrService.authSessionList;\r\n console.log(this.activesessionlist);\r\n this.signalrService.notifyAdmin();\r\n \r\n }\r\n\r\n initKeyword = () => {\r\n this.keyword = \"All\";\r\n }\r\n\r\n isSearchable = () => {\r\n return (this.pcName != null || this.selectedItems.length > 0);\r\n }\r\n\r\n setSearchKeywords = () => {\r\n this.keyword = (this.pcName != null) ? this.pcName : \"All\";\r\n }\r\nonSearch = () => {\r\n if (!this.isSearchable()) {\r\n this.msg.info(\"Please provide at least one filter value.\", \"Active Session Search\", { timeOut: 5000 });\r\n return;\r\n }\r\n this.setSearchKeywords();\r\n //console.log('Saved values = ', this.keyword);\r\n this.utility.page = 1;\r\n this.message = \"Searching for active session(s), please wait...\";\r\n this.loadSessions(this.utility.page, this.pageSize);\r\n}\r\n\r\ncheckKey(event){\r\n const charCode = (event.which) ? event.which : event.keyCode;\r\n if (charCode == 13) {\r\n this.onSearch();\r\n return;\r\n }\r\n}\r\n\r\nonReset = () => {\r\n this.selectedItems = [];\r\n this.pcName = null;\r\n this.utility.page = 1;\r\n this.initKeyword();\r\n this.isEmpty = false;\r\n ////console.log('Saved values = ', this.keyword);\r\n this.loadSessions(this.utility.page, this.pageSize);\r\n}\r\n\r\nonSort(rank: number) {\r\n this.direction = !this.direction;\r\n this.rankCtrl = rank;\r\n this.onExcuteSort(rank);\r\n this.loadSessions(this.utility.page, this.pageSize);\r\n}\r\n\r\nonResetFlags() {\r\n this.flags = { flagSI: 1, flagPN: 1, flagPA: 1, flagST: 1, flagSS: 1, flagSE: 1 };\r\n}\r\n\r\n\r\nonExcuteSort(rank: number) {\r\n this.onResetFlags();\r\n let sort = (this.direction) ? 3 : 2;\r\n this.criteria = null;\r\n switch (rank) {\r\n case this.ranks.flagSI: {\r\n this.criteria = this.sortLabels.flagSI;\r\n this.flags.flagSI = sort;\r\n break;\r\n }\r\n case this.ranks.flagPN: {\r\n this.criteria = this.sortLabels.flagPN;\r\n this.flags.flagPN = sort;\r\n break;\r\n }\r\n case this.ranks.flagPA: {\r\n this.criteria = this.sortLabels.flagPA;\r\n this.flags.flagPA = sort;\r\n break;\r\n }\r\n case this.ranks.flagST: {\r\n this.criteria = this.sortLabels.flagST;\r\n this.flags.flagST = sort;\r\n break;\r\n }\r\n case this.ranks.flagSS: {\r\n this.criteria = this.sortLabels.flagSS;\r\n this.flags.flagSS = sort;\r\n break;\r\n }\r\n default: {\r\n this.criteria = this.sortLabels.flagSE;\r\n this.flags.flagSE = sort;\r\n break;\r\n }\r\n }\r\n\r\n}\r\n\r\n\r\nloadSessions= (page: number = 1, pageSize: number = 10) =>{\r\n this.isLoading = true;\r\n this.authWebService.webrequest('GET','UserSession', 'GetAllActiveSessions',JSON.stringify({\r\n filter: this.keyword , PageNum: page, PageSize: pageSize, sort:this.rankCtrl, direction:this.direction\r\n })).then((data) => {\r\n this.sessions = data.Sessions;\r\n this.count = data.Count;\r\n if(this.count==0){\r\n this.isEmpty = true;\r\n }\r\n this.onExcuteSort(this.rankCtrl);\r\n this.isLoading = false;\r\n \r\n }, (error) => {\r\n console.log('Error occured: ' + error);\r\n this.isLoading = false;\r\n this.isEmpty = true;\r\n });\r\n}\r\n\r\nonNextOrPrevious(page: number = 1) {\r\n this.loadSessions(page, this.pageSize);\r\n this.currentPage = page;\r\n return page;\r\n}\r\n\r\nonChange = () => {\r\n this.loadSessions(this.utility.page = 1, this.pageSize);\r\n}\r\n\r\ngetAllActiveSessions() {\r\n\r\n this.authWebService.webrequest('GET','UserSession', 'GetAllSession',null).then((data) => {\r\n this.sessions = data;\r\n console.log(data);\r\n }, (error) => {\r\n console.log('Error occured: ' + error);\r\n this.isLoading = false;\r\n this.isEmpty = true;\r\n });\r\n\r\n}\r\n\r\nTerminateSession(authsession : AuthSession)\r\n{\r\n authsession.dateModified = new Date();\r\n authsession.userModifiedId = this.aUser.Id;\r\n this.service.releaseScanner(authsession.pcIpAddress).subscribe(data =>{\r\n console.log(data)\r\n })\r\n this.signalrService.stopClientSession(authsession);\r\n}\r\nopenContent(evt, tabName) {\r\n\r\n var i, tabcontent, tablinks;\r\n tabcontent = document.getElementsByClassName(\"tabcontent\");\r\n for (i = 0; i < tabcontent.length; i++) {\r\n tabcontent[i].style.display = \"none\";\r\n }\r\n tablinks = document.getElementsByClassName(\"tablinks\");\r\n for (i = 0; i < tablinks.length; i++) {\r\n tablinks[i].className = tablinks[i].className.replace(\" active\", \"\");\r\n } \r\n document.getElementById(tabName).style.display = \"block\";\r\n evt.currentTarget.className += \" active\";\r\n}\r\n\r\nngOnDestroy() {\r\n this.signalrService.hubConnection.off(\"notifyAdmin\");\r\n console.log(\"stopped notification\");\r\n}\r\n\r\nonSearchActiveSessions(){\r\n this.activesessionlist = this.activesessionlist.pipe(map((x:any) => x.filter(x => x.pcName.toLowerCase().includes(this.activePcName.toLowerCase()))));\r\n this.activesessionlist.subscribe(data =>{ \r\n if(data.length == 0){\r\n this.isListEmpty=true;\r\n }else{\r\n this.isListEmpty=false;\r\n }\r\n });\r\n}\r\n\r\nonSearchReset(){\r\n this.activePcName = null;\r\n this.activesessionlist = this.signalrService.authSessionList;\r\n this.activesessionlist.subscribe(data =>{ \r\n if(data.length == 0){\r\n this.isListEmpty=true;\r\n }else{\r\n this.isListEmpty=false;\r\n }\r\n });\r\n}\r\n\r\n} ","
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
 Monitor Sessions
\r\n
\r\n
\r\n
\r\n\r\n
    \r\n \r\n
  • History
  • \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Session Id\r\n \r\n \r\n PC Name\r\n \r\n \r\n PC IP Address\r\n \r\n \r\n Connection Id\r\n \r\n \r\n Session Start\r\n \r\n \r\n Session Last Seen\r\n \r\n \r\n Terminate Session\r\n
{{item.sessionId}}{{item.pcName}}{{item.pcIpAddress}}{{item.connectionId}}{{item.sessionStartTime?.toLocaleString() | date:'dd/MM/yyyy h:mm:ss a'}}{{item.sessionEndTime?.toLocaleString() | date:'dd/MM/yyyy h:mm:ss a'}}x
\r\n No active sessions found.\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 10\" style=\"padding-left:0px;margin-left:0px;\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n Session Id\r\n \r\n \r\n PC Name\r\n \r\n \r\n PC IP Address\r\n \r\n \r\n Session Start\r\n \r\n \r\n Session End\r\n \r\n
{{item.SessionId}}{{item.PcName}}{{item.PcIpAddress}}{{item.SessionStartTime?.toLocaleString() | date:'dd/MM/yyyy h:mm:ss a'}}{{item.SessionEndTime?.toLocaleString() | date:'dd/MM/yyyy h:mm:ss a'}}
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n No sessions found.\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n ","import { Component, OnInit } from '@angular/core';\r\nimport { DialogService } from 'ng2-bootstrap-modal';\r\nimport { ErrorComponent } from 'app/popup/error.component';\r\nimport { AlertComponent } from 'app/popup/alert.component';\r\nimport { UtilityServiceService } from 'app/services/utility-service.service';\r\nimport { StatusService } from 'app/services/status.service';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\n@Component({\r\n selector: 'app-list-status',\r\n templateUrl: './list-status.component.html',\r\n styleUrls: ['./list-status.component.css']\r\n})\r\nexport class ListStatusComponent implements OnInit {\r\n\r\n statuses: any = [];\r\n isRemove = false;\r\n removeRef: any;\r\n page = 1;\r\n lblHeading = '';\r\n showNum: number = 10;\r\n\r\n popoverTitle = 'Delete Status';\r\n popoverMessage = 'Are you sure you want to delete Status?';\r\n confirmText = 'Yes ';\r\n cancelText = 'No ';\r\n confirmClicked = false;\r\n cancelClicked = false;\r\n deleteConfirm = '';\r\n\r\n public isLoading = false;\r\n isEmpty: boolean = false;\r\n message = \"Loading Statuses...\";\r\n\r\n constructor(private statusService: StatusService,\r\n public utility: UtilityServiceService,private toastr: ToastrService) { }\r\n\r\n ngOnInit() {\r\n this.onChangeHeandig(); \r\n this.reload();\r\n this.utility.direction = true; \r\n this.utility.page = 1;\r\n }\r\n\r\n reload() {\r\n this.isLoading = true;\r\n this.statusService.getAll().subscribe(result => {\r\n this.statuses = result;\r\n this.utility.onSort(0); \r\n this.isLoading = false;\r\n }, error => {\r\n this.isLoading = false;\r\n this.isEmpty = true;\r\n });\r\n }\r\n\r\n onDelete(id: any) {\r\n this.statusService.delete(id).subscribe(result => {\r\n\r\n // this.dialogService.addDialog(AlertComponent, { title: 'Delete Status', message: `Status ${this.removeRef.code} deleted.`, bold: `${this.removeRef.code}` });\r\n this.toastr.success(`Status ${this.removeRef.code} deleted.`,'Delete Status');\r\n if (result != null) {\r\n this.onNo();\r\n this.reload();\r\n this.utility.direction = true; \r\n }\r\n this.onChangeHeandig();\r\n }, error => {\r\n error = error.json();\r\n // this.dialogService.addDialog(ErrorComponent, { title: 'Delete Status', message: `Status ${this.removeRef.code} was not deleted.`, statuscode: error.Status, url: error.Uri, servermessage: error.Message });\r\n this.toastr.error(`Status ${this.removeRef.code} was not deleted.`,'Delete Status');\r\n });\r\n }\r\n\r\n onConfirm(doc: any) {\r\n this.removeRef = doc;\r\n this.deleteConfirm = `Are you sure you want to delete Status ${this.removeRef.code}?`;\r\n this.onChangeHeandig(false);\r\n this.isRemove = true;\r\n }\r\n\r\n onNo() {\r\n this.isRemove = false;\r\n this.onChangeHeandig();\r\n }\r\n\r\n onChangeHeandig(change: boolean = true) {\r\n this.lblHeading = (change) ? 'Statuses' : 'Delete Status';\r\n }\r\n\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
Manage {{this.lblHeading}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 4\" style=\"padding-left:0px;margin-left:0px;\"> \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n ID\r\n \r\n \r\n Code\r\n \r\n \r\n Description\r\n \r\n \r\n Status Use Indicator\r\n \r\n Active?\r\n \r\n \r\n Sort Order\r\n \r\n \r\n Group\r\n \r\n Display\r\n \r\n \r\n \r\n
{{status.id}}{{status.code}}{{status.description}}{{utility.showStatusIndicator(status.status_use_ind)}}{{utility.isActive(status.is_active)}}{{status.sort_order}}{{status.group_code}}{{utility.showDisplayIndicator(status.display_ind)}}\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n No statuses found.\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { TransportAssocService } from 'app/services/transport-assoc.service';\r\nimport { DialogService } from 'ng2-bootstrap-modal';\r\nimport { UtilityServiceService } from 'app/services/utility-service.service';\r\nimport { AlertComponent } from 'app/popup/alert.component';\r\nimport { ErrorComponent } from 'app/popup/error.component';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\n@Component({\r\n selector: 'app-transport-association-list',\r\n templateUrl: './transport-association-list.component.html',\r\n styleUrls: ['./transport-association-list.component.css']\r\n})\r\nexport class TransportAssociationListComponent implements OnInit {\r\n transports: any = [];\r\n isRemove = false;\r\n removeRef: any;\r\n criteria = 'code';\r\n direction = false;\r\n page = 1;\r\n lblHeading = '';\r\n\r\n popoverTitle = 'Delete Transport Association';\r\n popoverMessage = 'Are you sure you want to delete Transport Association?';\r\n confirmText = 'Yes ';\r\n cancelText = 'No ';\r\n confirmClicked = false;\r\n cancelClicked = false;\r\n deleteConfirm = '';\r\n message = \"Loading Transport Association...\";\r\n showNum: number = 10;\r\n\r\n public isLoading = false;\r\n isEmpty: boolean = false;\r\n\r\n constructor(private service: TransportAssocService,\r\n private utility: UtilityServiceService,private toastr:ToastrService) { }\r\n\r\n ngOnInit() {\r\n this.onChangeHeandig();\r\n this.reload();\r\n }\r\n\r\n reload() {\r\n this.isLoading = true;\r\n this.service.getAll().subscribe(result => {\r\n this.transports = result;\r\n //console.log(this.transports);\r\n this.utility.onSort(5);\r\n this.isLoading = false;\r\n }, error => {\r\n this.isLoading = false;\r\n this.isEmpty = true;\r\n });\r\n }\r\n\r\n onDelete(id: any) {\r\n this.service.delete(id).subscribe(result => {\r\n\r\n // this.dialogService.addDialog(AlertComponent, { title: 'Delete Transport Association', message: `Transport Association ${this.removeRef.code} deleted.`, bold: `${this.removeRef.code}` });\r\n this.toastr.success(`Transport Association ${this.removeRef.code} deleted.`,'Delete Transport Association');\r\n if (result != null) {\r\n this.onNo();\r\n this.reload();\r\n }\r\n this.onChangeHeandig();\r\n }, error => {\r\n error = error.json();\r\n // this.dialogService.addDialog(ErrorComponent, { title: 'Delete Transport Association', message: `Transport Association ${this.removeRef.code} was not deleted.`, statuscode: error.Status, url: error.Uri, servermessage: error.Message });\r\n this.toastr.success(`Transport Association ${this.removeRef.code} was not deleted.`,'Delete Transport Association');\r\n });\r\n }\r\n\r\n onSort() {\r\n this.direction = !this.direction;\r\n }\r\n\r\n onConfirm(doc: any) {\r\n this.removeRef = doc;\r\n this.deleteConfirm = `Are you sure you want to delete Transport Association ${this.removeRef.code}?`;\r\n this.onChangeHeandig(false);\r\n this.isRemove = true;\r\n }\r\n\r\n onNo() {\r\n this.isRemove = false;\r\n this.onChangeHeandig();\r\n }\r\n\r\n onChangeHeandig(change: boolean = true) {\r\n this.lblHeading = (change) ? 'Transport Associations' : 'Delete Transport Association';\r\n }\r\n\r\n\r\n\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
Manage {{this.lblHeading}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n 0\">\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n Code \r\n \r\n Description\r\n \r\n \r\n Active?\r\n \r\n \r\n Sort Order\r\n \r\n Email AddressTelephoneCell PhoneAlt EmailAlt Cell Phone\r\n \r\n \r\n \r\n
{{t.code}}{{t.description}}{{t.is_active}}{{t.sort_order}}{{t.email}}{{t.telephone}}{{t.cellphone}}{{t.alternative_email}}{{t.alternative_cellphone}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n No transport associations found.\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { DialogService } from 'ng2-bootstrap-modal';\r\nimport { AlertComponent } from 'app/popup/alert.component';\r\nimport { ErrorComponent } from 'app/popup/error.component';\r\nimport { VehicleMakeService } from 'app/services/vehicle-make.service';\r\nimport { UtilityServiceService } from 'app/services/utility-service.service';\r\nimport { error } from 'protractor';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\n@Component({\r\n selector: 'app-list-vehicle-make',\r\n templateUrl: './list-vehicle-make.component.html',\r\n styleUrls: ['./list-vehicle-make.component.css']\r\n})\r\nexport class ListVehicleMakeComponent implements OnInit {\r\n\r\n vMakes: any = [];\r\n isRemove = false;\r\n removeRef: any;\r\n criteria = 'code';\r\n direction = false;\r\n page = 1;\r\n lblHeading = '';\r\n\r\n popoverTitle = 'Delete Vehicle Make';\r\n popoverMessage = 'Are you sure you want to delete Vehicle Make?';\r\n confirmText = 'Yes ';\r\n cancelText = 'No ';\r\n confirmClicked = false;\r\n cancelClicked = false;\r\n deleteConfirm = '';\r\n message = \"Loading Vehicle Makes...\";\r\n\r\n public isLoading = false;\r\n isEmpty: boolean = false;\r\n showNum: number = 10;\r\n\r\n constructor(private service: VehicleMakeService,\r\n public utility: UtilityServiceService,private toastr: ToastrService) { }\r\n\r\n ngOnInit() {\r\n this.onChangeHeandig();\r\n this.reload();\r\n this.utility.page = 1;\r\n }\r\n\r\n reload() {\r\n this.isLoading = true;\r\n this.service.getAll().subscribe(result => {\r\n this.vMakes = result;\r\n this.utility.onSort(1);\r\n //console.log(this.vMakes);\r\n this.isLoading = false;\r\n }, error => {\r\n console.dir(error);\r\n this.isLoading = false;\r\n this.isEmpty = true;\r\n });\r\n }\r\n\r\n onDelete(id: any) {\r\n this.service.delete(id).subscribe(result => {\r\n\r\n // this.dialogService.addDialog(AlertComponent, { title: 'Delete Vehicle Make', message: `Vehicle Make ${this.removeRef.code} deleted.`, bold: `${this.removeRef.code}` });\r\n this.toastr.success(`Vehicle Make ${this.removeRef.code} deleted.`,'Delete Vehicle Make');\r\n if (result != null) {\r\n this.onNo();\r\n this.reload();\r\n }\r\n this.onChangeHeandig();\r\n }, error => {\r\n error = error.json();\r\n // this.dialogService.addDialog(ErrorComponent, { title: 'Delete Vehicle Make', message: `Vehicle Make ${this.removeRef.code} was not deleted.`, statuscode: error.Status, url: error.Uri, servermessage: error.Message });\r\n this.toastr.success(`Vehicle Make ${this.removeRef.code} was not deleted.`,'Delete Vehicle Make');\r\n });\r\n }\r\n\r\n onSort() {\r\n this.direction = !this.direction;\r\n }\r\n\r\n onConfirm(doc: any) {\r\n this.removeRef = doc;\r\n this.deleteConfirm = `Are you sure you want to delete Vehicle Make ${this.removeRef.code}?`;\r\n this.onChangeHeandig(false);\r\n this.isRemove = true;\r\n }\r\n\r\n onNo() {\r\n this.isRemove = false;\r\n this.onChangeHeandig();\r\n }\r\n\r\n onChangeHeandig(change: boolean = true) {\r\n this.lblHeading = (change) ? 'Vehicle Makes' : 'Delete Vehicle Make';\r\n }\r\n\r\n \r\n\r\n\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
Manage {{this.lblHeading}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 4\" style=\"padding-left:0px;margin-left:0px;\">\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n Code\r\n \r\n \r\n Description\r\n \r\n \r\n Active?\r\n \r\n \r\n Sort Order\r\n \r\n \r\n Group\r\n \r\n Display\r\n \r\n \r\n \r\n
{{vMake.code}}{{vMake.description}}{{utility.isActive(vMake.is_active)}}{{vMake.sort_order}}{{vMake.group_code}}{{utility.showDisplayIndicator(vMake.display_ind)}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n No vehicle makes found.\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { DialogService } from 'ng2-bootstrap-modal';\r\nimport { AlertComponent } from 'app/popup/alert.component';\r\nimport { ErrorComponent } from 'app/popup/error.component';\r\nimport { VehicleTypeService } from 'app/services/vehicle-type.service';\r\nimport { UtilityServiceService } from 'app/services/utility-service.service';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\n@Component({\r\n selector: 'app-list-vehicle-type',\r\n templateUrl: './list-vehicle-type.component.html',\r\n styleUrls: ['./list-vehicle-type.component.css']\r\n})\r\nexport class ListVehicleTypeComponent implements OnInit {\r\n\r\n vTypes: any = [];\r\n isRemove = false;\r\n removeRef: any;\r\n criteria = 'code';\r\n direction = false; \r\n lblHeading = '';\r\n\r\n popoverTitle = 'Delete Vehicle Type';\r\n popoverMessage = 'Are you sure you want to delete Vehicle Type?';\r\n confirmText = 'Yes ';\r\n cancelText = 'No ';\r\n confirmClicked = false;\r\n cancelClicked = false;\r\n deleteConfirm = '';\r\n message = \"Loading Vehicle Type...\";\r\n\r\n public isLoading = false;\r\n isEmpty: boolean = false;\r\n showNum: number = 10;\r\n\r\n constructor(private service: VehicleTypeService,private utility: UtilityServiceService,private toastr:ToastrService) { }\r\n\r\n ngOnInit() {\r\n this.onChangeHeandig();\r\n this.reload();\r\n this.utility.page = 1;\r\n }\r\n\r\n reload() {\r\n this.isLoading = true;\r\n this.service.getAll().subscribe(result => {\r\n this.vTypes = result;\r\n this.utility.onSort(1); \r\n this.isLoading = false;\r\n }, error => {\r\n this.isLoading = false;\r\n this.isEmpty = true;\r\n });\r\n }\r\n\r\n onDelete(id: any) {\r\n this.service.delete(id).subscribe(result => {\r\n\r\n // this.dialogService.addDialog(AlertComponent, { title: 'Delete Vehicle Type', message: `Vehicle Type ${this.removeRef.code} deleted.`, bold: `${this.removeRef.code}` });\r\n this.toastr.success(`Vehicle Type ${this.removeRef.code} deleted.`,'Delete Vehicle Type');\r\n if (result != null) {\r\n this.onNo();\r\n this.reload();\r\n }\r\n this.onChangeHeandig();\r\n }, error => {\r\n error = error.json();\r\n // this.dialogService.addDialog(ErrorComponent, { title: 'Delete Vehicle Type', message: `Vehicle Type ${this.removeRef.code} was not deleted.`, statuscode: error.Status, url: error.Uri, servermessage: error.Message });\r\n this.toastr.error(`Vehicle Type ${this.removeRef.code} was not deleted.`,'Delete Vehicle Type');\r\n\r\n });\r\n }\r\n\r\n onSort() {\r\n this.direction = !this.direction;\r\n }\r\n\r\n onConfirm(doc: any) {\r\n this.removeRef = doc;\r\n this.deleteConfirm = `Are you sure you want to delete Vehicle Type ${this.removeRef.code}?`; \r\n this.onChangeHeandig(false);\r\n this.isRemove = true;\r\n }\r\n\r\n onNo() {\r\n this.isRemove = false;\r\n this.onChangeHeandig();\r\n }\r\n\r\n onChangeHeandig(change: boolean = true) {\r\n this.lblHeading = (change) ? 'Vehicle Types' : 'Delete Vehicle Type'; \r\n }\r\n\r\n\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
Manage {{this.lblHeading}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 4\" style=\"padding-left:0px;margin-left:0px;\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Code \r\n \r\n Description\r\n \r\n Passengers\r\n Active?\r\n \r\n \r\n Sort Order\r\n \r\n \r\n Group\r\n \r\n Display\r\n \r\n \r\n \r\n
{{vType.code}}{{vType.description}}{{vType.passengers}}{{utility.isActive(vType.is_active)}}{{vType.sort_order}}{{vType.group_code}}{{utility.showDisplayIndicator(vType.display_ind)}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n No vehicle types found.\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { DialogService } from 'ng2-bootstrap-modal';\r\nimport { ErrorComponent } from 'app/popup/error.component';\r\nimport { AlertComponent } from 'app/popup/alert.component';\r\nimport { UtilityServiceService } from 'app/services/utility-service.service';\r\nimport { StatusService } from 'app/services/status.service';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { CountryService } from 'app/services/country.service';\r\nimport { PlaceService } from 'app/services/place.service';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-manage-countries',\r\n templateUrl: './manage-countries.component.html',\r\n styleUrls: ['./manage-countries.component.css']\r\n})\r\nexport class ManageCountriesComponent implements OnInit {\r\n\r\n countries: any = [];\r\n\r\n removeRef: any;\r\n page = 1;\r\n lblHeading = 'Countries';\r\n showNum: number = 10;\r\n\r\n popoverTitle = 'Delete Status';\r\n popoverMessage = 'Are you sure you want to Delete Status?';\r\n confirmText = 'Yes ';\r\n cancelText = 'No ';\r\n confirmClicked = false;\r\n cancelClicked = false;\r\n deleteConfirm = '';\r\n countryPlaceFlag: boolean = false;\r\n public isLoading = false;\r\n isEmpty: boolean = false;\r\n message = \"Loading Countries...\";\r\n placesList: any = [];\r\n selectCountry: any = Object();\r\n reloadTypeId: any = \"\"\r\n constructor(private statusService: StatusService,\r\n private countryService: CountryService,\r\n public utility: UtilityServiceService, private toastr: ToastrService,\r\n private placeService: PlaceService, private router: ActivatedRoute, private route: Router) { }\r\n\r\n ngOnInit() {\r\n this.utility.setDirection(true);\r\n this.utility.page = 1;\r\n let type: any = this.router.params['_value'].type;\r\n if (type != undefined && type != \"\") {\r\n this.countryPlaceFlag = true;\r\n this.reloadTypeId = atob(type);\r\n }\r\n this.reload();\r\n\r\n\r\n }\r\n reload() {\r\n this.isLoading = true;\r\n this.countryService.listAllCountries().subscribe(res => {\r\n this.isLoading = false;\r\n this.countries = res;\r\n this.utility.onSort(5);\r\n if (this.countryPlaceFlag) {\r\n this.selectCountry = this.countries.find(({ id }) => +id === parseInt(this.reloadTypeId));\r\n }\r\n \r\n this.countries.sort((a, b) => {\r\n const compare_code = a.code.localeCompare(b.code);\r\n const compare_desc = a.desc.localeCompare(b.desc);\r\n const compare_group_code = a.group_code.localeCompare(b.group_code);\r\n\r\n return compare_code || compare_desc || compare_group_code;\r\n });\r\n })\r\n\r\n }\r\n loadCountryDetails(list) {\r\n this.lblHeading = \"Places\";\r\n //this.countryPlaceFlag=true;\r\n //this.selectCountry=list;\r\n this.route.navigate(['countries/list/' + btoa(list.id)]);\r\n }\r\n loadPlace(list) {\r\n this.route.navigate(['countries/list/' + btoa(list.id)]);\r\n }\r\n\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
Manage {{this.lblHeading}}
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 4\" style=\"padding-left:0px;margin-left:0px;\">\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n Code\r\n \r\n \r\n Description\r\n \r\n \r\n ISO alpha-2\r\n \r\n Dial Code\r\n \r\n Active ?\r\n \r\n \r\n Sort Order\r\n \r\n \r\n Group\r\n \r\n Display ?Place
{{list.code}}{{list.desc}}{{list.iso_alpha2}}{{list.dial_code}}{{list.is_active}}{{list.sort_order}}{{list.group_code}}{{utility.showDisplayIndicator(list.display_index)}}\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n No Countries found.\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { StatusService } from 'app/services/status.service';\r\nimport { CountryService } from 'app/services/country.service';\r\nimport { DialogService } from 'ng2-bootstrap-modal';\r\nimport { UtilityServiceService } from 'app/services/utility-service.service';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { PlaceService } from 'app/services/place.service';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-manage-country-places',\r\n templateUrl: './manage-country-places.component.html',\r\n styleUrls: ['./manage-country-places.component.css']\r\n})\r\nexport class ManageCountryPlacesComponent implements OnInit {\r\n\r\n removeRef: any;\r\n page = 1;\r\n showNum: number = 10;\r\n popoverTitle = 'Delete Place';\r\n popoverMessage = 'Are you sure you want to delete Place?';\r\n confirmText = 'Yes ';\r\n cancelText = 'No ';\r\n confirmClicked = false;\r\n cancelClicked = false;\r\n deleteConfirm = '';\r\n countryPlaceFlag: boolean = false;\r\n public isLoading = false;\r\n isEmpty: boolean = false;\r\n message = \"Loading Places...\";\r\n placesList: any = [];\r\n selectCountry: any = Object();\r\n lblHeading = \"Places\";\r\n\r\n //Filter settings\r\n public countryProvinces: any = [];\r\n public selectedProvince = 0;\r\n public filterQuery: string = \"\";\r\n public placesTempForFilt: any = [];\r\n\r\n\r\n @Input() list: any;\r\n\r\n isRemove: boolean = false;\r\n countryId: any = \"\";\r\n provinceList: any = [];\r\n placeList: any = [];\r\n constructor(private statusService: StatusService,\r\n private countryService: CountryService, private route: ActivatedRoute,\r\n public utility: UtilityServiceService, private toastr: ToastrService,\r\n private placeService: PlaceService, private router: Router) { }\r\n\r\n ngOnInit() {\r\n let id: any = this.route.params['_value'].type;\r\n this.list = { id: atob(id) };\r\n this.utility.page = 1;\r\n this.countryId = btoa(this.list.id);\r\n //this.getPlaces();\r\n this.loadCountryDetails(this.list)\r\n this.getProvinces();\r\n this.getCountries();\r\n\r\n }\r\n getCountries() {\r\n this.countryService.listAllCountries().subscribe((res:any) => {\r\n this.list = res.find(x => x.id == this.list.id);\r\n this.selectCountry = this.list;\r\n })\r\n }\r\n loadCountryDetails(list) {\r\n this.lblHeading = \"Places\";\r\n this.countryPlaceFlag = true;\r\n this.placeService.getAllCountryPlaces(list.id).subscribe(res => {\r\n //console.log(res);\r\n this.placesList = [];\r\n this.placesList = res;\r\n if (this.utility.flags.flagSO != 2) {\r\n this.utility.onSort(5);\r\n }\r\n });\r\n }\r\n onConfirm(doc: any) {\r\n this.removeRef = doc;\r\n this.deleteConfirm = `Are you sure you want to delete Place ${this.removeRef.code}?`;\r\n this.onChangeHeandig(false);\r\n this.isRemove = true;\r\n }\r\n\r\n onNo() {\r\n this.isRemove = false;\r\n this.onChangeHeandig();\r\n }\r\n\r\n onChangeHeandig(change: boolean = true) {\r\n this.lblHeading = (change) ? 'Places' : 'Delete Place';\r\n }\r\n navigate(path) {\r\n //console.log(this.selectCountry);\r\n path = path + \"/\" + btoa(this.selectCountry.id);\r\n this.router.navigate([path]);\r\n }\r\n navigateToEdit(path, list) {\r\n path = path + \"/\" + btoa(this.list.id) + \"/\" + btoa(list.id);\r\n this.router.navigate([path]);\r\n }\r\n onDelete(id: any) {\r\n this.placeService.deletePlace(id).subscribe(res => {\r\n // this.dialogService.addDialog(AlertComponent, { title: 'Delete Status', message: `Status ${this.removeRef.code} deleted.`, bold: `${this.removeRef.code}` });\r\n this.toastr.success(`Place ${this.removeRef.code} deleted.`, 'Delete Place');\r\n if (res != null) {\r\n this.onNo();\r\n this.loadCountryDetails(this.list);\r\n }\r\n this.onChangeHeandig();\r\n }, error => {\r\n error = error.json();\r\n // this.dialogService.addDialog(ErrorComponent, { title: 'Delete Status', message: `Status ${this.removeRef.code} was not deleted.`, statuscode: error.Status, url: error.Uri, servermessage: error.Message });\r\n this.toastr.error(`Place ${this.removeRef.code} was not deleted.`, 'Delete Place');\r\n });\r\n\r\n }\r\n getProvinces() {\r\n this.countryService.listAllProvinces().subscribe(res => {\r\n this.provinceList = res;\r\n this.getPlaces();\r\n })\r\n }\r\n getPlaces() {\r\n //console.log(this.list);\r\n this.placeService.getAllCountryPlaces(this.list.id).subscribe(res => {\r\n this.placeList = res;\r\n this.placesTempForFilt = res;\r\n this.placeList.forEach(element => {\r\n if (this.countryProvinces.find(x => x.id == element.province_id) == null)\r\n this.countryProvinces.push({ id: element.province_id, description: this.getprovinceDesc(element.province_id) });\r\n });\r\n })\r\n }\r\n getPlaceDesc(placeId) {\r\n if (placeId != null) {\r\n let list = this.placeList.find(({ id }) => +id === placeId);\r\n if (list != null) {\r\n return list.name;\r\n } else {\r\n return placeId;\r\n }\r\n }\r\n }\r\n getprovinceDesc(provinceId) {\r\n if (provinceId != null) {\r\n let list = this.provinceList.find(({ id }) => +id === provinceId);\r\n if (list != null) {\r\n return list.description;\r\n } else {\r\n return provinceId;\r\n }\r\n }\r\n }\r\n onReset(borderPostCheck, taxiRankCheck, terminusCheck) {\r\n this.utility.page = 1;\r\n this.selectedProvince = 0;\r\n this.filterQuery = \"\";\r\n borderPostCheck.checked = false;\r\n taxiRankCheck.checked = false;\r\n terminusCheck.checked = false;\r\n this.placesList = this.placesTempForFilt;\r\n }\r\n onSearch(borderPostCheck, taxiRankCheck, terminusCheck) {\r\n this.utility.page = 1;\r\n let filterWithList = [];\r\n\r\n if (this.selectedProvince == 0) {\r\n filterWithList = this.placesTempForFilt;\r\n }\r\n else {\r\n filterWithList = this.placeList.filter(x => x.province_id == this.selectedProvince);\r\n }\r\n\r\n if (borderPostCheck.checked && taxiRankCheck.checked && terminusCheck.checked) {\r\n this.placesList = filterWithList.filter(x => x.name.toLowerCase().includes(this.filterQuery.toLowerCase()) && x.is_border_post && x.is_taxi_rank && x.is_terminus);\r\n }\r\n else if (borderPostCheck.checked && taxiRankCheck.checked) {\r\n this.placesList = filterWithList.filter(x => x.name.toLowerCase().includes(this.filterQuery.toLowerCase()) && x.is_border_post && x.is_taxi_rank);\r\n }\r\n else if (borderPostCheck.checked && terminusCheck.checked) {\r\n this.placesList = filterWithList.filter(x => x.name.toLowerCase().includes(this.filterQuery.toLowerCase()) && x.is_border_post && x.is_terminus);\r\n }\r\n else if (taxiRankCheck.checked && terminusCheck.checked) {\r\n this.placesList = filterWithList.filter(x => x.name.toLowerCase().includes(this.filterQuery.toLowerCase()) && x.is_taxi_rank && x.is_terminus);\r\n }\r\n else if (borderPostCheck.checked) {\r\n this.placesList = filterWithList.filter(x => x.name.toLowerCase().includes(this.filterQuery.toLowerCase()) && x.is_border_post);\r\n }\r\n else if (taxiRankCheck.checked) {\r\n this.placesList = filterWithList.filter(x => x.name.toLowerCase().includes(this.filterQuery.toLowerCase()) && x.is_taxi_rank);\r\n }\r\n else if (terminusCheck.checked) {\r\n this.placesList = filterWithList.filter(x => x.name.toLowerCase().includes(this.filterQuery.toLowerCase()) && x.is_terminus);\r\n }\r\n else {\r\n this.placesList = filterWithList.filter(x => x.name.toLowerCase().includes(this.filterQuery.toLowerCase()));\r\n }\r\n\r\n }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
Manage {{this.lblHeading}}
\r\n \r\n For : Country Code : {{selectCountry.code}} , Country\r\n Description : {{selectCountry.desc}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n Filters\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
Show only  
\r\n
\r\n
Border Post:  
\r\n
Taxi Rank:  
\r\n
Terminus :  
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 4\" style=\"padding-left:0px;margin-left:0px;\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Province\r\n \r\n \r\n Town/Place\r\n \r\n \r\n Code\r\n \r\n \r\n Name\r\n \r\n \r\n Type\r\n \r\n Longitude\r\n \r\n Latitude\r\n Town ?Border Post ?Taxi Rank ?Terminus ?Active\r\n Sort Order\r\n Group\r\n Display \r\n \r\n \r\n \r\n
{{getprovinceDesc(list.province_id)}}{{getPlaceDesc(list.parent_place_id)}}{{list.code}}{{list.name}}{{list.type}}{{list.longitude}}{{list.latitude}}{{list.is_town}}{{list.is_border_post}}{{list.is_taxi_rank}}{{list.is_terminus}}{{list.is_active}}{{ list.sort_order}}{{ list.group_code}}{{utility.showDisplayIndicator(list.display_ind)}}\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n Close\r\n
\r\n
\r\n
\r\n No Places found.\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit, Input, Injectable, ChangeDetectorRef } from '@angular/core';\r\nimport { ApplicationService } from 'app/services/application.service';\r\nimport { StatusService } from 'app/services/status.service';\r\nimport { AuthWebService } from 'app/services/authweb.service';\r\nimport { UtilityServiceService } from 'app/services/utility-service.service';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { Router, ActivatedRoute, Params, RouteConfigLoadStart } from '@angular/router';\r\nimport { VehicleEntryService } from 'app/services/vehicle-entry.service';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { CountryService } from 'app/services/country.service';\r\nimport { VehicleMakeService } from 'app/services/vehicle-make.service';\r\nimport { VehicleTypeService } from 'app/services/vehicle-type.service';\r\nimport { environment } from '../../../../src/environments/environment';\r\nimport { NgbCalendar, NgbDateAdapter, NgbDateParserFormatter, NgbDateStruct, NgbActiveModal, NgbModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap';\r\nimport * as moment from 'moment';\r\n\r\nimport { VehicleService } from 'app/services/vehicle.service';\r\nimport { Location, DatePipe } from '@angular/common';\r\nimport { PermitTypeService } from 'app/services/permit-type.service';\r\nimport { VehicleEntryCarrierService } from 'app/services/vehicle-entry-carrier.service';\r\nimport { PopupService } from 'app/services/shared/popup.service';\r\nimport { Baseservice } from 'app/services/baseservice';\r\nimport { DocumenttypeService } from 'app/services/documenttype.service';\r\nimport { DocumentsServiceService } from 'app/services/documents-service.service';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { ReturnStatement } from '@angular/compiler';\r\nimport { ConfirmDialogService } from 'app/services/shared/confirm-dialog/confirm-dialog.service';\r\n\r\n/**\r\n * This Service handles how the date is represented in scripts i.e. ngModel.\r\n */\r\n@Injectable()\r\nexport class CustomAdapter extends NgbDateAdapter {\r\n\r\n readonly DELIMITER = '/';\r\n \r\n fromModel(value: string | null): NgbDateStruct | null {\r\n if (value) {\r\n let date = value.split(this.DELIMITER);\r\n return {\r\n day: parseInt(date[0], 10),\r\n month: parseInt(date[1], 10),\r\n year: parseInt(date[2], 10)\r\n };\r\n }\r\n return null;\r\n }\r\n\r\n toModel(date: NgbDateStruct | null): string | null {\r\n return date ? date.day + this.DELIMITER + date.month + this.DELIMITER + date.year : null;\r\n }\r\n}\r\n\r\n/**\r\n * This Service handles how the date is rendered and parsed from keyboard i.e. in the bound input field.\r\n */\r\n@Injectable()\r\nexport class CustomDateParserFormatter extends NgbDateParserFormatter {\r\n\r\n readonly DT_FORMAT = 'DD/MM/YYYY';\r\n\r\n parse(value: string): NgbDateStruct {\r\n if (value) {\r\n value = value.trim();\r\n let mdt = moment(value, this.DT_FORMAT)\r\n }\r\n return null;\r\n }\r\n format(date: NgbDateStruct): string {\r\n if (!date) return '';\r\n let mdt = moment([date.year, date.month - 1, date.day]);\r\n if (!mdt.isValid()) return '';\r\n return mdt.format(this.DT_FORMAT);\r\n }\r\n}\r\n\r\n\r\n\r\n\r\ndeclare var $;\r\n@Component({\r\n selector: 'app-manage-vehicles',\r\n templateUrl: './manage-vehicles.component.html',\r\n styleUrls: ['./manage-vehicles.component.css'],\r\n providers: [\r\n { provide: NgbDateAdapter, useClass: CustomAdapter },\r\n { provide: NgbDateParserFormatter, useClass: CustomDateParserFormatter },\r\n NgbActiveModal,\r\n ]\r\n})\r\nexport class ManageVehiclesComponent implements OnInit {\r\n @Input('ctrlData') ctrlData: any;\r\n permits: any = [];\r\n currentDate = { day: new Date().getDate(), month: (new Date().getMonth() + 1), year: new Date().getFullYear() }\r\n statuses: any = [];\r\n flags = { flagAN: 1, flagNM: 1, flagLU: 1, flagCT: 1, flagAP: 1, flagPT: 1, flagST: 1, flagDS: 1 };\r\n ranks = { flagAN: 1, flagNM: 2, flagLU: 3, flagCT: 4, flagAP: 5, flagPT: 6, flagST: 7, flagDS: 8 };\r\n sortLabels = { flagAN: \"AccountNumber\", flagNM: \"Name\", flagLU: \"LeadUser\", flagCT: \"CarrierType\", flagAP: \"ApplicationNumber\", flagPT: \"PermitType\", flagST: \"Status\", flagDS: \"DateSubmitted\" };\r\n direction: boolean = false;\r\n criteria = \"DateSubmitted\";\r\n rankCtrl: number = 8;\r\n isLoading: Boolean = false;\r\n message: string = 'Loading vehicles, please wait...';\r\n statuses1: any = [];\r\n\r\n //Search Variables\r\n eNatisCounter = 0;\r\n vehicletypes: any = [];\r\n permittypes: any = [];\r\n vinnumber: string;\r\n vehicleType: string = \"\";\r\n permitType: string = \"\";\r\n regnumber: string;\r\n carriername: string;\r\n carriercode: string;\r\n found = false;\r\n keyword: any = {};\r\n currentPage = 1;\r\n isEmpty: boolean = false;\r\n IsSearching: boolean = false;\r\n IsAdmin: boolean = false;\r\n pageSize: number = 1000;\r\n page: any = 1;\r\n count: number = 0;\r\n disabled = false;\r\n ShowFilter = false;\r\n limitSelection = false;\r\n selectedItems: any = [];\r\n dropdownSettings: any = {};\r\n registerNumber: string;\r\n isDef: boolean = true;\r\n vehicleRes: any = [];\r\n isEditData: boolean = false;\r\n isViewData:boolean=false;\r\n myForm: FormGroup;\r\n ddlCountries: any = [];\r\n list_vehicle_make: any = [];\r\n list_vehicle_type: any = [];\r\n list_vehicle_types: any = [];\r\n selectedVMake: any;\r\n btnAddNew: boolean;\r\n leased: any;\r\n appid: any = null;\r\n @Input() dataCntrl: any;\r\n isMyVehicles = false;\r\n permit_type_id: any;\r\n isSame = false;\r\n myAppVehicles = [];\r\n\r\n model: NgbDateStruct;\r\n date: { year: number };\r\n selectedVehicles: any = [];\r\n selectedCountry: any = null;\r\n\r\n\r\n carrierId: any;\r\n isVehicleLoading: boolean = false;\r\n isDocumentLoading: boolean = false;\r\n uploadedDocs: any = [];\r\n maxMB: any = \"5MB\";\r\n dtype: any = \"PDF,JPG,PNG,JPEG\";\r\n docTypeId: any;\r\n filebytes: string;\r\n filename: any;\r\n filetype: any;\r\n filedescription: string;\r\n filesize: any;\r\n user = { LastName: '' };\r\n vehicleId: number;\r\n documentType: any;\r\n isLoadingImg: boolean;\r\n selectItem: any;\r\n viewDocuments: any = [];\r\n pdfSrc: any;\r\n img: any;\r\n\r\n linkedDocs: any;\r\n isExtra: boolean;\r\n eNatisResult: any = null;\r\n\r\n isReplacement: boolean = false;\r\n vehiclesReplacement: any = [];\r\n vehiclesReplace: any = [];\r\n isSouthAfrica = false;\r\n disallowEdit = false;\r\n currentVehicle: any = [];\r\n classMessage: string;\r\n wrongClass: boolean;\r\n curr_permit_type_id: number;\r\n\r\n constructor(private toastr: ToastrService,\r\n private vehicleEntryService: VehicleEntryService, private countryService: CountryService, private vehicleMakeService: VehicleMakeService,\r\n private authWebService: AuthWebService, private vehicleTypeService: VehicleTypeService, private permitTypeService: PermitTypeService,\r\n public utility: UtilityServiceService, private ngbCalendar: NgbCalendar, private dateAdapter: NgbDateAdapter,\r\n private router: Router, private activeRoute: ActivatedRoute, private vehicleService: VehicleService,\r\n private _location: Location, private formBuilder: FormBuilder, private datePipe: DatePipe,\r\n private applicationService: ApplicationService, private vehicleEntryCarierService: VehicleEntryCarrierService, private msgService: PopupService,\r\n private documenttypeSerivce: DocumenttypeService, private documentService: DocumentsServiceService,\r\n private ref: ChangeDetectorRef, private sanitizer: DomSanitizer, private showModal: PopupService,private confirmDialogService: ConfirmDialogService,\r\n ) {\r\n this.activeRoute.params.subscribe((params: Params) => {\r\n this.appid = params['appid'];\r\n this.getApp(params['appid'])\r\n // this.getPermitsAppVecleEntry(params['appid']);\r\n\r\n });//vehicle-replace\r\n if (this.router.url.indexOf('vehicle-replace') > 0) {\r\n this.activeRoute.params.subscribe((params: Params) => {\r\n this.appid = params['appid'];\r\n this.getApp(params['appid']);\r\n // this.getPermitsAppVecleEntry(params['appid']);\r\n });\r\n this.isReplacement = true;\r\n\r\n }\r\n }\r\n\r\n ngOnInit() { \r\n \r\n if (environment.authWebApi.systemData != null && environment.authWebApi.systemData.Configurations != null) {\r\n this.maxMB = environment.authWebApi.systemData.Configurations.find(p => p.Code == 'MaxUploadMB1').Value;\r\n this.dtype = environment.authWebApi.systemData.Configurations.find(p => p.Code == 'UploadDocTypes1').Value;\r\n }\r\n this.initKeyword();\r\n this.listCountries();\r\n this.getVehicleMake();\r\n this.getVehicles();\r\n this.createForm();\r\n this.loadvehicletypes();\r\n this.getPermitTypes();\r\n\r\n this.user.LastName = (this.authWebService.userData) ? this.authWebService.userData.User.LastName : '';\r\n }\r\n\r\n createForm() {\r\n this.isEditData = false;\r\n this.isViewData = false;\r\n this.isSouthAfrica = false;\r\n this.myForm = this.formBuilder.group({\r\n id: [-1, []],\r\n permit_id: [],\r\n country_id: ['', [Validators.required]],\r\n registration_number: ['', [Validators.required]],\r\n registration_year: ['', [Validators.required]],\r\n vehicle_make_id: ['', []],\r\n vehicle_series: ['', []],\r\n vehicle_model: ['', []],\r\n vehicle_colour: ['', []],\r\n vin: ['', [Validators.required,]],\r\n engine_number: ['', [Validators.required,]],\r\n gvn: ['', [Validators.required,]],\r\n seating_capacity: ['', []],\r\n date_license_expiry: ['', [Validators.required,]],\r\n start_date: ['', [Validators.required,]],\r\n vehicle_state: ['', []],\r\n roadworthy_status: ['', [Validators.required,]],\r\n vehicle_owner: ['', []],\r\n is_leased: [null, [Validators.required,]],\r\n vehicle_lessor: [''],\r\n vehicle_lessee: [''],\r\n date_lease_expiry: [''],\r\n vehicle_type_id: ['', [Validators.required]],\r\n api_date_updated: ['', []],\r\n eNatis_num: ['', []]\r\n });\r\n this.LeaseChange(); // hides the lease container\r\n this.found = false; // hides the 'Retrieve from eNatis' button\r\n this.disallowEdit = false; // allow fields to be edited\r\n this.myForm.controls.country_id.enable();\r\n this.myForm.controls.roadworthy_status.enable();\r\n this.myForm.controls.vehicle_type_id.enable();\r\n this.myForm.controls.is_leased.enable();\r\n }\r\n\r\n passForEdit(item) {\r\n //console.log(item);\r\n this.isEditData = true;\r\n this.vehicleService.getVehicleBy(item.id).subscribe((x:any) => {\r\n //console.log(x);\r\n this.leased = x.is_leased;\r\n this.myForm.patchValue({\r\n id: item.id,\r\n date_license_expiry: item.date_license_expiry,\r\n gvn: item.gvn,\r\n registration_number: item.registration_number,\r\n registration_year: item.registration_year,\r\n seating_capacity: x.seating_capacity,\r\n start_date: item.start_date,\r\n vehicle_make_id: item.vehicle_make_id,\r\n vehicle_type_id: item.vehicle_type_id,\r\n vin: item.vin,\r\n permit_id: x.permit_id,\r\n country_id: x.country_id,\r\n vehicle_series: x.vehicle_series,\r\n vehicle_model: x.vehicle_model,\r\n vehicle_colour: x.vehicle_colour,\r\n engine_number: x.engine_number,\r\n vehicle_state: x.vehicle_state,\r\n roadworthy_status: x.roadworthy_status,\r\n vehicle_owner: x.vehicle_owner,\r\n is_leased: x.is_leased,\r\n vehicle_lessor: x.vehicle_lessor,\r\n vehicle_lessee: x.vehicle_lessee,\r\n date_lease_expiry: this.datePipe.transform(x.date_lease_expiry, 'dd/MM/yyyy'),\r\n });\r\n })\r\n }\r\n\r\n checkVin(value){\r\n\r\n if(value.length > 0){\r\n if (!this.myForm.value.country_id) {\r\n return this.toastr.warning(\"Please select the vehicle's Country-of-Registration before continuing.\")\r\n }\r\n if(this.myForm.value['country_id']==113){\r\n // this.eNatisUpdate();\r\n this.found = true; // displays the \"Retrieve from eNatis\" button\r\n }\r\n } else {\r\n // if (value.length === 0) {\r\n this.found = false; // hides the \"Retrieve from eNatis\" button\r\n // }\r\n }\r\n\r\n if(value.length === 17 && this.myForm.value['country_id']==113){\r\n this.eNatisUpdate();\r\n }\r\n }\r\n\r\n eNatisUpdateUsingRegNum() {\r\n this.vehicleService.getVehicleValidatorByVin(this.myForm.value.registration_number).subscribe((data:any) => {\r\n if (data.Vin !== null) {\r\n //console.log(data);\r\n this.eNatisResult = data;\r\n this.myForm.patchValue({\r\n country_id: 113,\r\n vin: data.Vin,\r\n registration_number: data.Registration_number,\r\n vehicle_owner: data.Ownership,\r\n registration_year: data.Registration_year,\r\n vehicle_colour: data.Vehicle_colour,\r\n vehicle_model: data.Vehicle_model,\r\n gvn: data.Gvm,\r\n engine_number: data.Engine_number,\r\n roadworthy_status: data.roadworthystatus,\r\n eNatis_num: data.enatis_num,\r\n date_license_expiry: this.datePipe.transform(data.Date_license_expiry, 'dd/MM/yyyy'),\r\n seating_capacity: data.Seating_capacity\r\n });\r\n // return this.toastr.success('Vehicle data found successfully on eNAtis database. Please add your vehicle.')\r\n }\r\n if (data.NotFound === 'Not found') {\r\n this.toastr.info('VIN and reg num do not match.');\r\n this.myForm.reset();\r\n return\r\n }\r\n if (data.NetworkError === 'Network error') {\r\n // this.toastr.error('The system is offline at the moment, please try again later.')\r\n return\r\n }\r\n })\r\n }\r\n\r\n eNatisForUpdate() {\r\n this.eNatisCounter += this.eNatisCounter;\r\n this.isVehicleLoading = true;\r\n this.vehicleService.getVehicleValidatorByVin(this.myForm.value.vin).subscribe((data:any) => {\r\n if (data.Vin !== null) {\r\n\r\n //console.log(data);\r\n this.eNatisResult = data;\r\n this.myForm.patchValue({\r\n country_id: 113,\r\n vin: data.Vin,\r\n registration_number: data.Registration_number,\r\n vehicle_owner: data.Ownership,\r\n registration_year: data.Registration_year,\r\n vehicle_colour: data.Vehicle_colour,\r\n vehicle_model: data.Vehicle_model,\r\n gvn: data.Gvm,\r\n engine_number: data.Engine_number,\r\n roadworthy_status: data.roadworthystatus,\r\n eNatis_num: data.enatis_num,\r\n date_license_expiry: this.datePipe.transform(data.Date_license_expiry, 'dd/MM/yyyy'),\r\n seating_capacity: data.Seating_capacity\r\n });\r\n this.isVehicleLoading = false;\r\n this.isSouthAfrica = true;\r\n this.disallowEdit = true;\r\n\r\n\r\n\r\n }\r\n }, error => {\r\n this.isVehicleLoading = false;\r\n\r\n })\r\n }\r\n\r\n eNatisUpdate() {\r\n this.eNatisCounter = this.eNatisCounter + 1;\r\n this.isVehicleLoading = true;\r\n // this.found = false\r\n this.message = \"Checking vehicle, please wait...\";\r\n this.vehicleService.getVehicleValidatorByVin(this.myForm.value.vin).subscribe((data:any) => {\r\n if (data.Vin !== null) {\r\n // if (this.myForm.value.registration_number.length > 0 && this.myForm.value.registration_number !== data.Registration_number) {\r\n // this.isVehicleLoading = false;\r\n // return this.toastr.info('VIN and registration number do not match.');\r\n // }\r\n //console.log(data);\r\n this.eNatisResult = data;\r\n this.myForm.patchValue({\r\n country_id: 113,\r\n vin: data.Vin,\r\n registration_number: data.Registration_number,\r\n vehicle_owner: data.Ownership,\r\n registration_year: data.Registration_year,\r\n vehicle_colour: data.Vehicle_colour,\r\n vehicle_model: data.Vehicle_model,\r\n gvn: data.Gvm,\r\n engine_number: data.Engine_number,\r\n roadworthy_status: data.roadworthystatus,\r\n eNatis_num: data.enatis_num,\r\n date_license_expiry: this.datePipe.transform(data.Date_license_expiry, 'dd/MM/yyyy'),\r\n seating_capacity: data.Seating_capacity\r\n });\r\n this.isVehicleLoading = false;\r\n this.isSouthAfrica = true;\r\n\r\n if (data.roadworthystatus != 'Roadworthy') {\r\n return this.toastr.warning('Please note that according to eNatis this vehicle is not roadworthy and therefore will not be eligible for permit application.')\r\n } else {\r\n return this.toastr.success('Vehicle data found successfully on eNatis database. Please continue...')\r\n }\r\n }\r\n\r\n if(data.NotFound === 'Not found'){\r\n // try 3 times to retrieve eNatis detail before displaying a failure message\r\n if(this.eNatisCounter <= 3){\r\n this.eNatisUpdate();\r\n return\r\n }\r\n // this.toastr.info('VIN and registration number do not match.');\r\n this.toastr.warning(\"Wasn't able to retrieve vehicle detail from eNatis - Please confirm VIN number is correct or try again later.\\nAlternatively please enter the vehicle details manually.\");\r\n this.isVehicleLoading = false;\r\n this.eNatisResult = null;\r\n if(this.isEditData == true){\r\n this.isSouthAfrica = true;\r\n this.disallowEdit = true;\r\n }\r\n return\r\n } else {\r\n this.eNatisCounter = 0;\r\n }\r\n\r\n if (data.NetworkError === 'Network error') {\r\n this.toastr.error('The system is offline at the moment, please try again later or You can add Vehicle details Manually')\r\n this.isVehicleLoading = false;\r\n this.isSouthAfrica = false;\r\n this.disallowEdit = false;\r\n this.eNatisResult = null;\r\n // this.close();\r\n return\r\n }\r\n })\r\n }\r\n \r\n getPermitsAppVecleEntry(id) {\r\n this.vehicleService.getPermitsAppVecleEntry(id).subscribe((data:any) => {\r\n //console.log(data);\r\n this.myAppVehicles = data\r\n })\r\n\r\n }\r\n\r\n getCarrierPermitsAppVecleEntry(id, appid) {\r\n this.vehicleService.getCarrierPermitsAppVecleEntry(id, appid).subscribe((data:any) => {\r\n //console.log(data);\r\n this.vehicleRes = data \r\n this.count = data.length;\r\n this.isLoading = false;\r\n this.isMyVehicles = true;\r\n })\r\n\r\n }\r\n \r\n checkVehicle(event, item) { \r\n if (event.currentTarget.checked) { \r\n this.vehicleService.isVehicleAttachedToPermit(item.id, this.carrierId).subscribe((result)=>{ \r\n if(result == true)\r\n {\r\n return this.toastr.warning('This vehicle is already in a permit');\r\n }\r\n });\r\n this.getVehicleTypeForM(item);\r\n }\r\n if (!event.currentTarget.checked) {\r\n const index: number = this.selectedVehicles.indexOf(item);\r\n if (index !== -1) {\r\n this.selectedVehicles.splice(index, 1);\r\n }\r\n }\r\n }\r\n \r\n addSelectedVehicles() { \r\n this.vehiclesReplacement = JSON.parse(localStorage.getItem(\"replacements\") || \"[]\");\r\n if (this.vehiclesReplacement.length > 0) {\r\n //console.log(this.selectedVehicles);\r\n //console.log(this.vehiclesReplacement);\r\n // let result = this.vehiclesReplacement.filter(o1 => this.selectedVehicles.some(o2 => o1.vin === o2.vin));\r\n // if (result.length > 0) {\r\n // for (let i = 0; i < result.length; i++) {\r\n // return this.toastr.warning('You cannot replace ' + result[i].registration_number + '. It is on the application already.')\r\n // }\r\n // }\r\n\r\n }\r\n\r\n // let checkVehicles = JSON.parse(localStorage.getItem(\"checkVehicle\") || \"[]\");\r\n \r\n // if (checkVehicles.length > 0) {\r\n // let result = checkVehicles.filter(o1 => this.selectedVehicles.some(o2 => o1.vin === o2.VehicleEntry.vin));\r\n // if (result.length > 0) {\r\n // for (let i = 0; i < result.length; i++) {\r\n // return this.toastr.warning('You cannot add ' + result[i].registration_number + '. It is on the application already.')\r\n // }\r\n // }\r\n\r\n // }\r\n\r\n this.isLoading = true;\r\n this.message = 'Updating your vehicles. Please wait...'\r\n if (this.isReplacement === false) {\r\n this.vehicleEntryService.checkVehicles(this.selectedVehicles, this.appid).subscribe((data:any) => {\r\n \r\n if(data.indexOf(\"Cannot add a vehicle with expired license to permit\") !== -1){\r\n\r\n this.isLoading = false;\r\n return this.toastr.info(data);\r\n }\r\n\r\n // if(data.indexOf(\"There is active Permit for vehicle \") !== -1){\r\n\r\n // this.isLoading = false;\r\n // return this.toastr.info(data);\r\n // }\r\n \r\n this.router.navigate(['/carrier/permit/application/edit/' + this.appid + '/' + true]);\r\n //console.log(data);\r\n this.isLoading = false;\r\n })\r\n }\r\n else {\r\n this.vehicleEntryService.replaceVehicles(this.selectedVehicles, this.appid).subscribe(data => {\r\n\r\n this.router.navigate(['/carrier/permit/application/change/' + this.appid + '/vehicle/selected-vehicle']);\r\n //console.log(data);\r\n this.isLoading = false;\r\n }, error => {\r\n this.isLoading = false;\r\n this.toastr.warning('Please make sure that, there is a vehicle to be replaced.')\r\n })\r\n }\r\n\r\n }\r\n \r\n getApp(id) {\r\n this.isLoading = true;\r\n this.applicationService.getById(id).subscribe((data:any) => {\r\n //console.log(data);\r\n this.ctrlData = data;\r\n this.currentVehicle = data.vehicle > 0 ? data.vehicle[0] : null;\r\n this.curr_permit_type_id = data.permit_type_id\r\n this.permit_type_id = data.permit_type_id;\r\n \r\n this.carrierId = data.carrier_id;\r\n this.getVehicleType(data.permit_type_id);\r\n this.getCarrierPermitsAppVecleEntry(data.carrier_id, id);\r\n });\r\n }\r\n \r\n onBack() {\r\n if (localStorage.getItem('replaceFlag') == 'true') {\r\n let url: any = `carrier/permit/application/change/${this.appid}/vehicle`;\r\n this.router.navigate([url]);\r\n } else {\r\n this.router.navigate(['/carrier/permit/application/edit/' + this.appid + '/' + true]);\r\n }\r\n\r\n }\r\n\r\n getVehicles() { \r\n if (this.appid === null || this.appid === undefined) {\r\n this.isLoading = true; \r\n this.vehicleEntryService.getVehicles().subscribe((res:any) => {\r\n \r\n this.vehicleRes = res.Items;\r\n \r\n this.isLoading = false;\r\n this.count = res.Count;\r\n if (res.Items.length == 0) {\r\n this.isEmpty = true;\r\n }\r\n })\r\n }\r\n\r\n }\r\n\r\n //Populate the Permit Types Search dropdown\r\n getPermitTypes() {\r\n this.permitTypeService.get().subscribe(result => {\r\n //console.log('list of permit types', result);\r\n // this.vehicletypes = result.map(row => {\r\n // return { id: row.id, desc: row.description };\r\n // });\r\n this.permittypes = result;\r\n\r\n });\r\n }\r\n\r\n //Populate the Vehicle Types Search dropdown\r\n loadvehicletypes = () => {\r\n this.vehicleTypeService.loadvehicletypes().subscribe(result => {\r\n //console.log('list of vehicle types', result);\r\n // this.vehicletypes = result.map(row => {\r\n // return { id: row.id, desc: row.description };\r\n // });\r\n this.vehicletypes = result;\r\n\r\n });\r\n\r\n }\r\n\r\n InitMultiselect() {\r\n this.dropdownSettings = {\r\n singleSelection: false,\r\n idField: 'id',\r\n textField: 'desc',\r\n selectAllText: 'Select All',\r\n unSelectAllText: 'UnSelect All',\r\n itemsShowLimit: 1000,\r\n allowSearchFilter: this.ShowFilter,\r\n maxHeight: 120,\r\n closeDropDownOnSelection: false\r\n };\r\n }\r\n\r\n onItemSelect(item: any) {\r\n //console.log('onItemSelect', item);\r\n //console.log('selectedItems', this.selectedItems);\r\n }\r\n\r\n onSelectAll(items: any) {\r\n //console.log('onSelectAll', items);\r\n }\r\n\r\n onDeSelect(item: any) {\r\n //console.log('onItemSelect', item);\r\n //console.log('selectedItems', this.selectedItems);\r\n }\r\n\r\n onReset = () => {\r\n this.selectedItems = [];\r\n this.regnumber = null;\r\n this.vehicleType = \"\";\r\n this.carriercode = \"\";\r\n this.permitType = \"\";\r\n this.utility.page = 1;\r\n this.vinnumber = \"\";\r\n this.carriername = \"\";\r\n this.message = 'Loading vehicles, please wait...';\r\n this.IsSearching = false;\r\n this.getVehicles();\r\n this.getApp(this.appid);\r\n\r\n }\r\n\r\n setSearchKeywords = () => {\r\n }\r\n\r\n initKeyword = () => {\r\n }\r\n\r\n onCarrierSearch = (page: number = 1, pageSize: number = 1000) => {\r\n this.IsSearching = true;\r\n this.IsAdmin = false;\r\n this.utility.page = 1;\r\n this.isLoading = true;\r\n this.vehicleRes = [];\r\n this.message = 'Searching your vehicles, please wait...';\r\n\r\n if (this.vehicleType === \"\") {\r\n this.vehicleType = null;\r\n }\r\n\r\n if (this.vinnumber === \"\") {\r\n this.vinnumber = null;\r\n }\r\n\r\n if (this.regnumber === \"\") {\r\n this.regnumber = null;\r\n }\r\n\r\n if (this.carriername === \"\") {\r\n this.carriername = null;\r\n }\r\n\r\n if (this.carriercode === \"\") {\r\n this.carriercode = null;\r\n }\r\n\r\n let object = {\r\n VehicleType: this.vehicleType,\r\n PermitType: this.permitType,\r\n VIN: this.vinnumber,\r\n Regnumber: this.regnumber,\r\n Carriername: this.carriername,\r\n CarrierId: this.carrierId,\r\n carriercode: this.carriercode,\r\n PageSize: pageSize,\r\n PageNumber: page,\r\n\r\n }\r\n\r\n\r\n this.vehicleEntryService.searchCarrierVehicle(object).subscribe((result:any) => {\r\n\r\n if (result == null) {\r\n\r\n this.vehicleRes = [];\r\n this.isLoading = false;\r\n return\r\n\r\n }\r\n this.vehicleRes = result;\r\n \r\n this.isLoading = false;\r\n this.count = result.length;\r\n if (result.length == 0) {\r\n this.isEmpty = true;\r\n }\r\n\r\n }, error => {\r\n this.isLoading = false;\r\n });\r\n\r\n }\r\n\r\n onChange = () => {\r\n if (this.IsAdmin) {\r\n this.onSearch(this.utility.page = 1, this.pageSize);\r\n }\r\n else {\r\n this.onCarrierSearch(this.utility.page = 1, this.pageSize);\r\n }\r\n\r\n }\r\n\r\n onSearch = (page: number = 1, pageSize: number = 1000) => {\r\n\r\n this.IsSearching = true;\r\n this.isLoading = true;\r\n this.message = 'Searching vehicles, please wait...';\r\n\r\n if (this.vehicleType === \"\") {\r\n this.vehicleType = null;\r\n }\r\n\r\n if (this.vinnumber === \"\") {\r\n this.vinnumber = null;\r\n }\r\n\r\n if (this.regnumber === \"\") {\r\n this.regnumber = null;\r\n }\r\n\r\n if (this.carriername === \"\") {\r\n this.carriername = null;\r\n }\r\n\r\n if (this.carriercode === \"\") {\r\n this.carriercode = null;\r\n }\r\n\r\n let object = {\r\n VehicleType: this.vehicleType,\r\n PermitType: this.permitType,\r\n VIN: this.vinnumber,\r\n Regnumber: this.regnumber,\r\n Carriername: this.carriername,\r\n carriercode: this.carriercode,\r\n PageSize: pageSize,\r\n PageNumber: page,\r\n\r\n }\r\n\r\n\r\n this.vehicleEntryService.searchVehicle(object).subscribe((result:any) => {\r\n\r\n if (result == null) {\r\n //console.log(\"Search Result: \" + result);\r\n this.vehicleRes = [];\r\n this.isLoading = false;\r\n return;\r\n\r\n }\r\n\r\n this.vehicleRes = result.Items;\r\n \r\n this.isLoading = false;\r\n this.count = result.Count;\r\n this.utility.onSort(1);\r\n if (result.Items.length == 0) {\r\n this.isEmpty = true;\r\n }\r\n\r\n }, error => {\r\n this.isLoading = false;\r\n });\r\n\r\n }\r\n\r\n onNextOrPrevious(page: number) {\r\n if (this.IsAdmin) {\r\n this.onSearch(page, this.pageSize);\r\n }\r\n else {\r\n this.onCarrierSearch(page, this.pageSize)\r\n }\r\n\r\n this.currentPage = page;\r\n return page;\r\n }\r\n\r\n listCountries() { \r\n this.countryService.listCountries().subscribe(result => {\r\n this.ddlCountries = result;\r\n //console.log(result);\r\n }, error => {\r\n //console.log(error);\r\n });\r\n }\r\n\r\n getVehicleMake() {\r\n if (this.list_vehicle_make.length <= 0)\r\n this.vehicleMakeService.getAll().subscribe((result: any) => {\r\n this.list_vehicle_make = result;\r\n //console.log(this.list_vehicle_make);\r\n this.selectedVMake = result.find(x => x.code == 'Unknown');\r\n //console.log(this.list_vehicle_make)\r\n }, error => {\r\n //console.log(error);\r\n });\r\n }\r\n\r\n getVehicleType(id) {\r\n this.vehicleTypeService.getPermitTypeVehicles().subscribe((result:any) => {\r\n this.list_vehicle_type = result.filter(x => x.permit_type_id === id);\r\n //console.log(this.list_vehicle_type)\r\n if (this.list_vehicle_type.length > 0) {\r\n this.btnAddNew = true\r\n }\r\n //console.log(this.btnAddNew)\r\n //console.log(this.list_vehicle_type.length)\r\n }, error => {\r\n //console.log(error);\r\n\r\n });\r\n }\r\n\r\n getVehicleTypeForM(item) {\r\n this.isLoading = true;\r\n this.message = 'Checking vehicle...'\r\n //console.log(item);\r\n this.vehicleTypeService.getPermitTypeVehicles().subscribe((result:any) => {\r\n this.list_vehicle_types = result.filter(x => x.permit_type_id === this.permit_type_id);\r\n //console.log(this.list_vehicle_type.length)\r\n //console.log(this.list_vehicle_types)\r\n if (this.list_vehicle_type.length == 0){\r\n this.isLoading = false;\r\n this.toastr.error('No vehicle types have been linked to this permit type. Please update the Corporate Reference Data link..', 'SYSTEM ERROR');\r\n return;\r\n }\r\n let ptId = this.list_vehicle_types[0].permit_type_id;\r\n let permitDescRecord: any = this.permittypes.find(p => p.id == ptId)\r\n let permitDesc = permitDescRecord.description.toUpperCase();\r\n let check = this.list_vehicle_types.find(x => x.vehicle_type_id === item.vehicle_type_id);\r\n if (check !== undefined) {\r\n if (item.VehicleEntry.is_leased == true && (permitDesc.search('TAXI') != -1 || permitDesc.search('ORGANISED GROUP') != -1 || permitDesc.search('ORGANIZED GROUP') != -1)) {\r\n this.toastr.info('This permit type is not issued for leased vehicles.');\r\n }\r\n else if (this.isReplacement) {\r\n this.checkVehicleClass(item);\r\n if (this.wrongClass) {\r\n this.toastr.warning(this.classMessage, 'Replace Vehicle')\r\n setTimeout(() => {\r\n this.toastr.clear();\r\n clearTimeout();\r\n }, 25000);\r\n }\r\n else {\r\n this.selectedVehicles.push(item);\r\n }\r\n }\r\n else {\r\n //console.log(this.isReplacement)\r\n //console.log(this.wrongClass)\r\n this.selectedVehicles.push(item);\r\n }\r\n }\r\n if (check === undefined) {\r\n this.toastr.info('Please select a suitable vehicle type for the type of permit on your application.');\r\n }\r\n this.isLoading = false;\r\n\r\n }, error => {\r\n //console.log(error);\r\n // this.isLoading = false;\r\n\r\n });\r\n }\r\n\r\n getVehiclesReplacement() {\r\n this.vehicleService.getAllVehicles().subscribe(data => {\r\n this.vehiclesReplacement = data;\r\n })\r\n }\r\n\r\n editVehicle(item) {\r\n this.isVehicleLoading = true;\r\n this.eNatisResult = null;\r\n $(\".action\").val('null');\r\n this.vehicleEntryService.getVehicleDeatilsById(item.id).subscribe((x:any) => {\r\n // this.vehicleEntryService.getVehicleEntryById(item.id).subscribe(x=>{\r\n //console.log(x);\r\n if (x != null) {\r\n\r\n //console.log(\"enatis_num: \" + x.VehicleEntry.vehicle_register_num);\r\n // //console.log(\"vehicle_lessor \" + x.VehicleEntry.vehicle_lessor);\r\n // //console.log(\"vehicle_lessee \" + x.VehicleEntry.vehicle_lessee);\r\n this.leased = x.VehicleEntry.is_leased;\r\n\r\n if(x.VehicleEntry.country_id==113){\r\n this.isSouthAfrica = true;\r\n } else {\r\n this.isSouthAfrica = false;\r\n }\r\n\r\n // this.isEditData = true;\r\n\r\n this.myForm.patchValue({\r\n id: x.VehicleEntry.id,\r\n date_license_expiry: this.datePipe.transform(x.VehicleEntry.date_license_expiry, 'dd/MM/yyyy'),\r\n gvn: x.VehicleEntry.gvn,\r\n registration_number: x.VehicleEntry.registration_number,\r\n registration_year: x.VehicleEntry.registration_year,\r\n seating_capacity: x.VehicleEntry.seating_capacity,\r\n start_date: this.datePipe.transform(x.start_date, 'dd/MM/yyyy'),\r\n vehicle_make_id: x.VehicleEntry.vehicle_make_id,\r\n vehicle_type_id: x.VehicleEntry.vehicle_type_id,\r\n vin: x.VehicleEntry.vin,\r\n permit_id: x.permit_id,\r\n country_id: x.VehicleEntry.country_id,\r\n vehicle_series: x.VehicleEntry.vehicle_series,\r\n vehicle_model: x.VehicleEntry.vehicle_model,\r\n vehicle_colour: x.VehicleEntry.vehicle_colour,\r\n engine_number: x.VehicleEntry.engine_number,\r\n eNatis_num: x.VehicleEntry.vehicle_register_num,\r\n vehicle_state: x.vehicle_state,\r\n roadworthy_status: x.VehicleEntry.roadworthy_status,\r\n vehicle_owner: x.VehicleEntry.vehicle_owner,\r\n is_leased: x.VehicleEntry.is_leased,\r\n vehicle_lessor: x.VehicleEntry.vehicle_lessor,\r\n vehicle_lessee: x.VehicleEntry.vehicle_lessee,\r\n date_lease_expiry: this.datePipe.transform(x.VehicleEntry.date_lease_expiry, 'dd/MM/yyyy'),\r\n });\r\n this.LeaseChange();\r\n\r\n if(x.country_id === 113){\r\n this.isSouthAfrica = true;\r\n this.disallowEdit = true;\r\n }\r\n\r\n // this.eNatisForUpdate();\r\n document.getElementById(\"myButton\").click();\r\n \r\n // $(\"#addEdit\").modal('show');\r\n }\r\n this.isVehicleLoading = false;\r\n });\r\n\r\n }\r\n\r\n SaveModal() {\r\n this.myForm.value.vehicle_make_id = this.selectedVMake.id;\r\n if (!this.myForm.value.country_id) {\r\n return this.toastr.warning('Country of vehicle registration is required!', 'Country Of Vehicle Registration');\r\n }\r\n if (!this.myForm.value.registration_number) {\r\n return this.toastr.warning('Vehicle registration number is required!', 'Vehicle Registration Number');\r\n }\r\n // if(!this.myForm.value.vehicle_make_id){\r\n // return this.toastr.warning('Vehicle make is required!','Vehicle Make');\r\n // }\r\n if (!this.myForm.value.vin) {\r\n return this.toastr.warning('VIN or Chassis number is required!', 'VIN or Chassis Number');\r\n }\r\n // if(this.myForm.value.vin.length !== 17){\r\n // return this.toastr.warning('VIN should be 17 alphanumeric characters.','VIN or Chassis Number')\r\n // }\r\n if (!this.myForm.value.engine_number) {\r\n return this.toastr.warning('Engine number is required!', 'Engine Number');\r\n }\r\n if (!this.myForm.value.gvn) {\r\n return this.toastr.warning('Gross Vehicle(GVM) is required!', 'Gross Vehicle(GVM)');\r\n }\r\n if (!this.myForm.value.date_license_expiry) {\r\n return this.toastr.warning('License expiry date is required!', 'License Expiry Date');\r\n }\r\n // if(!this.myForm.value.start_date){\r\n // return this.toastr.warning('Start Date is required!','Permit Start Date');\r\n // }\r\n if (!this.myForm.value.roadworthy_status) {\r\n return this.toastr.warning('Roadworthy status is required!', 'Roadworthy Status');\r\n }\r\n if (this.myForm.value.roadworthy_status != 'Roadworthy') {\r\n return this.toastr.warning('Vehicle is not Roadworthy', 'Roadworthy Status');\r\n }\r\n if (!this.myForm.value.vehicle_type_id) {\r\n return this.toastr.warning('Vehicle type is required!', 'Vehicle Type');\r\n }\r\n\r\n \r\n\r\n \r\n \r\n const expiryDate = new Date(this.myForm.value.date_license_expiry);\r\n const today = this.datePipe.transform(new Date, 'dd/mm/yyyy','en-US');\r\n // this.expiryDate = this.datePipe.transform(this.expiryDate, 'dd/mm/yyyy');\r\n\r\n //console.log(expiryDate);\r\n //console.log(this.myForm.value.date_license_expiry);\r\n //console.log(today);\r\n \r\n // if (!(this.myForm.value.date_license_expiry >= today) ) {\r\n // return this.toastr.warning('License has Expirered, Please renew your licence', 'License Expiry Date');\r\n // }\r\n // if(!this.myForm.value.vehicle_owner){\r\n // return this.toastr.warning('Vehicle owner name is required!','Vehicle Owner Name');\r\n // }\r\n if (this.myForm.value.is_leased === null) {\r\n return this.toastr.warning('Is the vehicle leased?', 'Vehicle');\r\n }\r\n if (this.leased === true || this.leased === 'true') {\r\n //console.log('inside')\r\n if (!this.myForm.value.vehicle_lessor) {\r\n return this.toastr.warning('Lessor name is required!', 'Lessor Name');\r\n }\r\n if (!this.myForm.value.vehicle_lessee) {\r\n return this.toastr.warning('Lessee name is required!', 'Lessee Name');\r\n }\r\n if (!this.myForm.value.date_lease_expiry) {\r\n return this.toastr.warning('Expiry date of lease is required!', 'Expiry Date Of Lease');\r\n }\r\n }\r\n if (!(parseInt(this.myForm.value.registration_year) >= 1950 && parseInt(this.myForm.value.registration_year) <= 2100)) {\r\n this.toastr.warning(\"Invalid Registration Year\");\r\n return false;\r\n }\r\n if (this.leased === false || this.leased === 'false') {\r\n this.myForm.value.vehicle_lessor = '';\r\n this.myForm.value.vehicle_lessee = '';\r\n this.myForm.value.date_lease_expiry = '';\r\n }\r\n //console.log(this.myForm.value.is_leased);\r\n\r\n if (this.myForm.value.date_license_expiry) {\r\n let date_license_expiry = this.myForm.value.date_license_expiry\r\n let date = date_license_expiry.split('/');\r\n let day = parseInt(date[0], 10);\r\n let month = parseInt(date[1], 10);\r\n let year = parseInt(date[2], 10);\r\n let newDate = year + '/' + month + '/' + day;\r\n let newDate1 = new Date(newDate);\r\n newDate1.setDate(newDate1.getDate() + 1);\r\n this.myForm.value.date_license_expiry = newDate1;\r\n \r\n }\r\n\r\n\r\n if (this.myForm.value.date_lease_expiry) {\r\n let date_lease_expiry = this.myForm.value.date_lease_expiry;\r\n let date1 = date_lease_expiry.split('/');\r\n let day1 = parseInt(date1[0], 10);\r\n let month1 = parseInt(date1[1], 10);\r\n let year1 = parseInt(date1[2], 10);\r\n let newDate2 = year1 + '/' + month1 + '/' + day1;\r\n let newDate11 = new Date(newDate2);\r\n newDate11.setDate(newDate11.getDate() + 1);\r\n this.myForm.value.date_lease_expiry = newDate11;\r\n }\r\n\r\n // if(this.myForm.value.start_date){\r\n // let start_date = this.myForm.value.start_date;\r\n // let date20 = start_date.split('/');\r\n // let day20 = parseInt(date20[0], 10);\r\n // let month20 = parseInt(date20[1], 10);\r\n // let year20 = parseInt(date20[2], 10);\r\n // let newDate20 = year20 + '/'+ month20 + '/' + day20;\r\n // let newDate110 = new Date (newDate20);\r\n // newDate110.setDate(newDate110.getDate() + 1);\r\n // this.myForm.value.start_date = newDate110;\r\n // this.myForm.value.api_date_updated = this.myForm.value.start_date\r\n // }\r\n\r\n\r\n this.myForm.value.date_modified = new Date(),\r\n this.myForm.value.date_created = new Date(),\r\n this.myForm.value.user_modified = this.myForm.value.user_created = environment.authWebApi.userData.User.FirstName,\r\n this.myForm.value.vehicle_register_num = this.myForm.value.eNatis_num;\r\n //console.log(this.myForm.value);\r\n this.isVehicleLoading = true;\r\n //this.dataCntrl.permit.date_11 = this.myForm.value.start_date;\r\n // if(this.selectedCountry.code=='ZA'){\r\n // //console.log('default country');\r\n\r\n // }\r\n // else{\r\n // //console.log('other country');\r\n // }\r\n\r\n //if(res.registration_number==this.myForm.value.registration_number){\r\n if (this.myForm.value.id == -1) {\r\n this.vehicleEntryService.postVehicleEntry(this.myForm.value, this.ctrlData.carrier_id, this.appid).subscribe((itemRes:any) => {\r\n if (itemRes.Result == 'Updated') {\r\n this.toastr.info('Vehicle details already exists for this carrier. Updated details successfully.', 'Vehicle already in register');\r\n } \r\n else if(itemRes.Result == 'AlreadyInPermit')\r\n {\r\n this.toastr.info('Vehicle details already exists in active Permit.', 'Vehicle already in active Permit');\r\n }\r\n else {\r\n this.toastr.success('Saved Vehicle Details');\r\n\r\n }\r\n this.isVehicleLoading = true;\r\n // $(\"#addEdit\").modal('hide');`\r\n document.getElementById(\"closeModal\").click();\r\n this.getApp(this.appid);\r\n this.isVehicleLoading = false;\r\n this.selectedVehicles = [];\r\n }, (err) => {\r\n this.isVehicleLoading = false;\r\n this.toastr.error('Failed to save application. If the problem persist, please contact system administrator.', 'Save Application')\r\n });\r\n } else {\r\n this.vehicleEntryService.postVehicleEntry(this.myForm.value, this.ctrlData.carrier_id, this.appid).subscribe(itemRes => {\r\n this.toastr.success('Updated Vehicle Details');\r\n // $(\"#addEdit\").modal('hide');\r\n document.getElementById(\"closeModal\").click();\r\n this.getApp(this.appid);\r\n this.isVehicleLoading = false;\r\n\r\n }, (err) => {\r\n this.isVehicleLoading = false;\r\n this.toastr.error('Failed to save application. If the problem persist, please contact system administrator.', 'Save Application')\r\n });\r\n }\r\n\r\n // }else{\r\n // this.isLoading=false;\r\n // this.toastr.warning('Registration numbe do not match');\r\n // }\r\n\r\n // this.permitService.postPermit(this.dataCntrl.permit).subscribe(result => {\r\n // this.myForm.value.permit_id = result.id;\r\n // this.vehicleService.updateVehicle(this.myForm.value).subscribe(x =>{\r\n // setTimeout(()=>{this.getSavedVehicleByPermit('');},400);\r\n // this.pageload = false;\r\n // this.closebutton.nativeElement.click();\r\n // this.toastr.success('Saved Vehicle Successfully','Vehicle');\r\n // })\r\n // })\r\n\r\n\r\n\r\n }\r\n\r\n LeaseChange() {\r\n \r\n if(this.isEditData || this.isViewData){\r\n } else {\r\n this.leased = this.myForm.value.is_leased;\r\n }\r\n \r\n if (this.leased == 'true'|| this.leased == true) {\r\n this.myForm.get('vehicle_lessor').setValidators([Validators.required]);\r\n this.myForm.get('vehicle_lessee').setValidators([Validators.required]);\r\n this.myForm.get('date_lease_expiry').setValidators([Validators.required]);\r\n } else {\r\n this.myForm.get('vehicle_lessor').clearValidators();\r\n this.myForm.get('vehicle_lessee').clearValidators();\r\n this.myForm.get('date_lease_expiry').clearValidators();\r\n }\r\n this.myForm.get('vehicle_lessor').updateValueAndValidity();\r\n this.myForm.get('vehicle_lessee').updateValueAndValidity();\r\n this.myForm.get('date_lease_expiry').updateValueAndValidity();\r\n }\r\n\r\n numberOnly(event): boolean {\r\n const charCode = (event.which) ? event.which : event.keyCode;\r\n if (charCode > 31 && (charCode < 48 || charCode > 57)) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n selectCountry(countryCode) {\r\n let list: any = this.ddlCountries.filter((map) => { return map.id == countryCode.value });\r\n if (list != null && list.length > 0) {\r\n this.selectedCountry = list[0];\r\n }\r\n }\r\n\r\n checkRoadworthy (event: any) {\r\n if(event.target.value != 'Roadworthy'){\r\n if (this.myForm.value.country_id === 113) {\r\n this.toastr.warning('Please note that according to eNatis this vehicle is not roadworthy and therefore will not be eligible for permit application.')\r\n } else {\r\n this.toastr.warning('Please note that according to your selection this vehicle is not roadworthy and therefore will not be eligible for permit application.')\r\n }\r\n return\r\n }\r\n }\r\n\r\n // checkCountrySelection (event: any) {\r\n // if (!this.myForm.value.country_id) {\r\n // this.toastr.info(\"Please select the vehicle's Country-of-Registration before continuing.\")\r\n // return\r\n // }\r\n // }\r\n\r\n CloseModal(){\r\n // $(\"#addEdit\").modal('hide');\r\n document.getElementById(\"closeModal\").click();\r\n this.isEditData=false;\r\n this.disallowEdit=false;\r\n this.leased=false;\r\n this.isViewData=false;\r\n this.isSouthAfrica=false;\r\n this.isVehicleLoading = false;\r\n this.myForm.controls.country_id.enable();\r\n this.myForm.controls.roadworthy_status.enable();\r\n this.myForm.controls.vehicle_type_id.enable();\r\n this.myForm.controls.is_leased.enable();\r\n // this.myForm.controls.carrier_id.enable();\r\n }\r\n\r\n selectAction(actionType, res) {\r\n // if (actionType.value == 'edit') {\r\n // this.editVehicle(res);\r\n // }\r\n if(actionType.value=='view'){\r\n this.isViewData=true;\r\n this.isEditData=false;\r\n this.editVehicle(res);\r\n this.myForm.controls.country_id.disable();\r\n this.myForm.controls.roadworthy_status.disable();\r\n this.myForm.controls.vehicle_type_id.disable();\r\n this.myForm.controls.is_leased.disable();\r\n // this.myForm.controls.carrier_id.disable();\r\n }\r\n else if(actionType.value=='edit'){\r\n this.isEditData=true;\r\n this.isViewData=false; \r\n this.editVehicle(res); \r\n this.myForm.controls.country_id.enable();\r\n this.myForm.controls.roadworthy_status.enable();\r\n this.myForm.controls.vehicle_type_id.enable();\r\n this.myForm.controls.is_leased.enable();\r\n // this.myForm.controls.carrier_id.enable();\r\n } \r\n if (actionType.value == 'delete') {\r\n this.OndeleteVehicle(res)\r\n }\r\n if (actionType.value == 'upload') {\r\n this.selectItem = res;\r\n this.uploadDocs(res);\r\n }\r\n return\r\n }\r\n\r\n OndeleteVehicle(vehicle) {\r\n\r\n if (vehicle.Permit !== null && vehicle.Permit.is_valid) {\r\n this.toastr.warning('Cannot delete a valid permit');\r\n return;\r\n }\r\n this.confirmDialogService.confirmThis(\"Are you sure you want to delete this vehicle?\", () => { \r\n let object = {\r\n vehicle_entry: vehicle.VehicleEntry.id,\r\n carrier_id: this.carrierId,\r\n permit_id: vehicle.permit_id\r\n }\r\n \r\n if (this.carrierId == \"\") {\r\n this.toastr.success(\"Please filter by one carrier\", 'Vehicle');\r\n return;\r\n }\r\n this.isVehicleLoading = true;\r\n\r\n //console.log(\"vehicle object: \" + JSON.stringify(vehicle));\r\n this.vehicleEntryService.deletevehicle(object).subscribe((result:any) => {\r\n if (result != null) {\r\n //console.log(\"Delete object: \" + JSON.stringify(result));\r\n this.toastr.success(JSON.stringify(result.Value), 'Vehicle');\r\n\r\n this.getApp(this.appid);\r\n this.isVehicleLoading = false;\r\n return;\r\n\r\n } else {\r\n this.toastr.warning('No vehicle entry record found', 'Vehicle');\r\n this.isVehicleLoading = false;\r\n }\r\n }, error => {\r\n this.isVehicleLoading = false;\r\n });\r\n\r\n \r\n }, function () { \r\n \r\n }) \r\n // this.msgService.showYesNo('Delete Vehicle', `Are you sure you want to delete this vehicle`, '').subscribe(isConfirmed => {\r\n \r\n // if (isConfirmed) {\r\n\r\n // let object = {\r\n // vehicle_entry: vehicle.VehicleEntry.id,\r\n // carrier_id: this.carrierId,\r\n // permit_id: vehicle.permit_id\r\n // }\r\n\r\n // if (this.carrierId == \"\") {\r\n // this.toastr.success(\"Please filter by one carrier\", 'Vehicle');\r\n // return;\r\n // }\r\n // this.isVehicleLoading = true;\r\n\r\n // //console.log(\"vehicle object: \" + JSON.stringify(vehicle));\r\n // this.vehicleEntryService.deletevehicle(object).subscribe((result:any) => {\r\n // if (result != null) {\r\n // //console.log(\"Delete object: \" + JSON.stringify(result));\r\n // this.toastr.success(JSON.stringify(result.Value), 'Vehicle');\r\n\r\n // this.getApp(this.appid);\r\n // this.isVehicleLoading = false;\r\n // return;\r\n\r\n // } else {\r\n // this.toastr.warning('No vehicle entry record found', 'Vehicle');\r\n // this.isVehicleLoading = false;\r\n // }\r\n // }, error => {\r\n // this.isVehicleLoading = false;\r\n // });\r\n\r\n // }\r\n\r\n // })\r\n }\r\n\r\n uploadDocs(res) {\r\n $(\".action\").val('null');\r\n $(\"#uploadDocuments\").modal('show');\r\n this.documenttypeSerivce.getAll().subscribe((res:any) => {\r\n //console.log(res);\r\n this.uploadedDocs = [];\r\n if (res != null && res.length > 0) {\r\n this.uploadedDocs = res.filter((map) => { return map.is_for_vehicle == true });\r\n this.getUploadDocs();\r\n }\r\n });\r\n }\r\n\r\n handleFileInput(event, id) {\r\n\r\n const reader = new FileReader();\r\n if (event.target.files && event.target.files.length > 0) {\r\n let file: any = null\r\n const count = event.target.files.length\r\n file = event.target.files[count - 1];\r\n let result = this.checkFileType(file.name);\r\n // item.document_type_id = this.docTypeData.id;\r\n // item.code = this.doctypesDesc.code\r\n // item.description=file.name;\r\n this.docTypeId = id;\r\n // this.uploadInfo.push(this.docTypeData);\r\n // localStorage.setItem('uploads',JSON.stringify(this.uploadInfo));\r\n const reader = new FileReader();\r\n\r\n if (event.target.files && event.target.files.length > 0) {\r\n let file: any = null\r\n const count = event.target.files.length\r\n\r\n file = event.target.files[count - 1];\r\n let result = this.checkFileType(file.name);\r\n\r\n\r\n\r\n //if File type is in not found\r\n if (result != -1) {\r\n\r\n let sizeresult = this.checkFileSize(file.size);\r\n\r\n if (sizeresult != -1) {\r\n this.ref.detectChanges();\r\n\r\n reader.removeEventListener\r\n reader.readAsDataURL(file);\r\n reader.onload = () => {\r\n\r\n this.filebytes = reader.result.toString().split(',')[1]\r\n this.filename = file.name,\r\n this.filetype = file.type\r\n this.filedescription = \"upload\"\r\n this.filesize = file.size\r\n this.validateData(this.docTypeId);\r\n\r\n };\r\n }\r\n else {\r\n // this.uploader.nativeElement.value = ''\r\n let allowedFileSize = environment.authWebApi.systemData.Configurations.find(p => p.Code == 'MaxUploadMB1');\r\n // this.dialogService.addDialog(ErrorComponent, { title: 'File Upload Failed, Please try again.', message: `Maximum file size allowed ${allowedFileSize.Value.toString()}MB`, statuscode: '404',url: null, servermessage: \"File size exceeded maximum size\"});\r\n this.toastr.error(`Maximum file size allowed ${allowedFileSize.Value.toString()}MB`, 'File Upload Failed, Please try again.');\r\n\r\n\r\n }\r\n\r\n }\r\n else {\r\n let allowedFileTypes = environment.authWebApi.systemData.Configurations.find(p => p.Code == 'UploadDocTypes1');\r\n this.toastr.error(`Only these file types are allowed: PDF`, 'File Upload Failed, Please try again.')\r\n }\r\n\r\n }\r\n\r\n }\r\n }\r\n\r\n checkFileType(fileName: string) {\r\n // from the file name derive the extension\r\n let allowedFileTypes = environment.authWebApi.systemData.Configurations.find(p => p.Code == 'UploadDocTypes1');\r\n let fileTypesArray = allowedFileTypes.Value.toString().split(',');\r\n //check if file type is\r\n let ext = fileName.split('.')[1].toUpperCase();\r\n let count = fileTypesArray.length;\r\n for (let iter = 0; iter < count; iter++) {\r\n if (fileTypesArray[iter] == ext) return iter;\r\n }\r\n return -1;\r\n }\r\n\r\n checkFileSize(fileSize: number) {\r\n // get the maximum file size\r\n let allowedFileSize = environment.authWebApi.systemData.Configurations.find(p => p.Code == 'MaxUploadMB1');\r\n let maxAllowedSize = allowedFileSize.Value; //it is in MB\r\n let document_sizeMB = (fileSize / 1000000);\r\n if (document_sizeMB <= maxAllowedSize)\r\n return 1;\r\n else return -1;\r\n //\r\n\r\n }\r\n \r\n validateData(documenttypeid: any) {\r\n this.postFile(documenttypeid);\r\n }\r\n\r\n postFile(documenttypeid: any) {\r\n\r\n const formdata = new FormData()\r\n formdata.append('File', this.filebytes)\r\n formdata.append('FileName', this.filename)\r\n formdata.append('TypeOfFile', this.filetype)\r\n formdata.append('Notes', this.filedescription)\r\n formdata.append('FileSize', this.filesize)\r\n formdata.append('vehicleEntryId', this.selectItem.VehicleEntry.id);\r\n formdata.append('VehicleName', 'VehicalName - ' + this.filename)\r\n formdata.append('UserLastName', this.user.LastName)\r\n formdata.append('documenttypeid', documenttypeid)\r\n formdata.append('ApplicationId', this.appid)\r\n\r\n this.isLoadingImg = true;\r\n this.isDocumentLoading = true;\r\n // this.message = 'Uploading... please wait'\r\n\r\n this.documentService.PostVehicleEntryDocument(formdata, documenttypeid, this.selectItem.VehicleEntry.id)\r\n .subscribe(\r\n response => {\r\n this.documenttypeSerivce.getAll().subscribe((res:any) => {\r\n //console.log(res);\r\n this.uploadedDocs = [];\r\n if (res != null && res.length > 0) {\r\n this.uploadedDocs = res.filter((map) => { return map.is_for_vehicle == true });\r\n this.getUploadDocs();\r\n }\r\n });\r\n this.isLoadingImg = false;\r\n //this.isLoading = false;\r\n //console.log(response.document_type_id)\r\n this.toastr.success('File: ' + this.filename + ' was successfully uploaded.', 'File Upload')\r\n },\r\n error => {\r\n this.isLoadingImg = false;\r\n this.isDocumentLoading = false;\r\n this.toastr.error('File Upload Failed, Please try again.')\r\n // this.reload()\r\n })\r\n\r\n }\r\n\r\n removeUploadedDocTypes() {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n\r\n getUploadDocs() {\r\n this.filename = \"\";\r\n this.documentService.getVehicleEntryDocById(this.selectItem.VehicleEntry.id).subscribe((x:any) => {\r\n this.viewDocuments = [];\r\n if (x != null && x.length > 0) {\r\n for (let list of x) {\r\n let firstNum = list.document_link.indexOf('#')\r\n //console.log(list.document_link.substring(firstNum + 1))\r\n list.shareId = list.document_link.substring(firstNum + 1);\r\n let docs: any = this.uploadedDocs.filter((map) => { return map.id == list.document_type_id });\r\n if (docs != null && docs.length > 0) {\r\n docs[0].document_link = list.document_link;\r\n }\r\n\r\n }\r\n this.viewDocuments = x;\r\n }\r\n this.isDocumentLoading = false;\r\n }, error => {\r\n this.viewDocuments = [];\r\n this.filename = \"\";\r\n this.isDocumentLoading = false;\r\n\r\n });\r\n }\r\n\r\n viewDoc(id, fileName) {\r\n this.isLoadingImg = true;\r\n this.pdfSrc = null;\r\n this.img = null;\r\n let ext = fileName.substring(fileName.length - 3, fileName.length);\r\n //console.log(ext);\r\n if (fileName.includes('.pdf')) {\r\n\r\n this.documentService.downloadpdf(id).subscribe(x => {\r\n let objectURL = URL.createObjectURL(x);\r\n this.pdfSrc = objectURL;\r\n this.img = null;\r\n\r\n //this.pdfSrc = this.sanitizer.bypassSecurityTrustUrl(objectURL);\r\n //console.log(this.pdfSrc)\r\n this.isLoadingImg = false;\r\n })\r\n return\r\n }\r\n this.documentService.download(id).subscribe(x => {\r\n let objectURL = URL.createObjectURL(x);\r\n this.pdfSrc = null\r\n this.img = this.sanitizer.bypassSecurityTrustUrl(objectURL);\r\n //console.log(this.img)\r\n this.isLoadingImg = false;\r\n // this.img = x;\r\n })\r\n\r\n }\r\n\r\n extraDoc(doc) {\r\n let list: any = this.uploadedDocs.filter((map) => { return map.id == doc.document_type_id });\r\n if (list != null && list.length > 0) {\r\n let object: any = JSON.parse(JSON.stringify(list[0]));\r\n object.document_link = null;\r\n this.uploadedDocs.push(object);\r\n }\r\n this.filename = \"\";\r\n }\r\n\r\n deleteDoc(doc) {\r\n // this.showModal.showYesNo('Delete Document', 'Are you sure you want to delete?', `You're about to delete this document`, 'Yes', 'No')\r\n // .subscribe((isConfirmed) => {\r\n // if (isConfirmed) {\r\n // this.deleteDocument(doc)\r\n // } else {\r\n // return;\r\n // }\r\n // });\r\n this.confirmDialogService.confirmThis(\"Are you sure you want to delete this vehicle?\", () => { \r\n this.deleteDocument(doc)\r\n\r\n \r\n }, () => { \r\n return;\r\n }) \r\n }\r\n\r\n deleteDocument(item) {\r\n this.isDocumentLoading = true;\r\n this.documentService.DeleteVehicleEntryDoc(item.id).subscribe(res => {\r\n this.documenttypeSerivce.getAll().subscribe((res:any) => {\r\n //console.log(res);\r\n this.uploadedDocs = [];\r\n if (res != null && res.length > 0) {\r\n this.uploadedDocs = res.filter((map) => { return map.is_for_vehicle == true });\r\n this.getUploadDocs();\r\n }\r\n });\r\n })\r\n }\r\n\r\n changeCountry(countryId) {\r\n //console.log(this.myForm.value.country_id);\r\n this.found = false; // hides the 'Retrieve from eNatis' button\r\n\r\n if (countryId.value != 113) {\r\n this.resetForm();\r\n }\r\n\r\n if (this.myForm.value.country_id === 113) {\r\n this.isSouthAfrica = true;\r\n\r\n // this.myForm.controls.registration_number.disable();\r\n // this.myForm.controls.vehicle_owner.disable();\r\n // this.myForm.controls.registration_year.disable();\r\n // this.myForm.controls.vehicle_colour.disable();\r\n // this.myForm.controls.vehicle_model.disable();\r\n // this.myForm.controls.gvn.disable();\r\n // this.myForm.controls.engine_number.disable();\r\n // this.myForm.controls.roadworthy_status.disable();\r\n // this.myForm.controls.eNatis_num.disable();\r\n // this.myForm.controls.date_license_expiry.disable();\r\n // this.myForm.controls.seating_capacity.disable();\r\n // this.myForm.controls.vehicle_make_id.disable();\r\n // // this.myForm.controls.vehicle_type_id.disable();\r\n // this.myForm.controls.is_leased.disable();\r\n // this.myForm.controls.vehicle_lessor.disable();\r\n // this.myForm.controls.vehicle_lessee.disable();\r\n // this.myForm.controls.date_lease_expiry.disable();\r\n\r\n } else {\r\n this.isSouthAfrica = false;\r\n\r\n // this.myForm.controls.registration_number.enable();\r\n // this.myForm.controls.vehicle_owner.enable();\r\n // this.myForm.controls.registration_year.enable();\r\n // this.myForm.controls.vehicle_colour.enable();\r\n // this.myForm.controls.vehicle_model.enable();\r\n // this.myForm.controls.gvn.enable();\r\n // this.myForm.controls.engine_number.enable();\r\n // this.myForm.controls.roadworthy_status.enable();\r\n // this.myForm.controls.eNatis_num.enable();\r\n // this.myForm.controls.date_license_expiry.enable();\r\n // this.myForm.controls.seating_capacity.enable();\r\n // this.myForm.controls.vehicle_make_id.enable();\r\n // this.myForm.controls.vehicle_type_id.enable();\r\n // this.myForm.controls.is_leased.enable();\r\n // this.myForm.controls.vehicle_lessor.enable();\r\n // this.myForm.controls.vehicle_lessee.enable();\r\n // this.myForm.controls.date_lease_expiry.enable();\r\n }\r\n }\r\n\r\n resetForm(){\r\n this.eNatisResult=null;\r\n this.myForm.patchValue({\r\n vin:'',\r\n registration_number:'',\r\n engine_number:'',\r\n gvn:'',\r\n seating_capacity: '',\r\n registration_year:'',\r\n date_license_expiry:null,\r\n roadworthy_status:'',\r\n eNatis_num:'',\r\n vehicle_type_id:'',\r\n carrier_id:'',\r\n is_leased:'',\r\n vehicle_lessor:'',\r\n vehicle_lessee:'',\r\n date_lease_expiry:null,\r\n vehicle_owner:'',\r\n vehicle_colour: '',\r\n vehicle_model: '',\r\n });\r\n this.LeaseChange(); // hides the lease container\r\n this.found = false; // hides the 'Retrieve from eNatis' button\r\n this.disallowEdit = false;\r\n this.myForm.controls.country_id.enable();\r\n this.myForm.controls.roadworthy_status.enable();\r\n this.myForm.controls.vehicle_type_id.enable();\r\n this.myForm.controls.is_leased.enable();\r\n }\r\n\r\n close() {\r\n this.isSouthAfrica = false;\r\n this.disallowEdit = false;\r\n this.myForm.controls.country_id.enable();\r\n this.myForm.controls.roadworthy_status.enable();\r\n this.myForm.controls.vehicle_type_id.enable();\r\n this.myForm.controls.is_leased.enable();\r\n }\r\n\r\n checkVehicleClass(item) {\r\n this.wrongClass = false;\r\n var currentVehicleMeasure: number;\r\n var newVehicleMeasure: number;\r\n var result = this.permittypes.find(x => x.id == this.curr_permit_type_id)\r\n if (this.currentVehicle != undefined) {\r\n var thisPermitType = result.freight_passenger_ind == 1 ? \"freight\" : \"passenger\";\r\n if (thisPermitType == \"passenger\") {\r\n currentVehicleMeasure = this.currentVehicle.seating_capacity;\r\n newVehicleMeasure = item.VehicleEntry.seating_capacity;\r\n if ((currentVehicleMeasure > 35 && newVehicleMeasure <= 35) || (currentVehicleMeasure <= 35 && newVehicleMeasure > 35)) {\r\n this.wrongClass = true;\r\n this.classMessage = `------- Passenger Vehicles -------- Class 1 = seating capacity 35 or less Class 2 = seating capacity over 35`\r\n }\r\n }\r\n else {\r\n currentVehicleMeasure = this.currentVehicle.gvn;\r\n newVehicleMeasure = item.VehicleEntry.gvn;\r\n if ((currentVehicleMeasure > 20000 && newVehicleMeasure <= 20000) || (currentVehicleMeasure <= 20000 && newVehicleMeasure > 20000)) {\r\n this.wrongClass = true;\r\n this.classMessage = `--------- Freight Vehicles --------- Class 1 = GVM of 20 000kg or less Class 2 = GVM more than 20 000kg`\r\n }\r\n }\r\n if (this.wrongClass) {\r\n this.classMessage = `You can only replace a vehicle with another vehicle of the same class . . . ${this.classMessage}`\r\n }\r\n }\r\n return this.wrongClass;\r\n }\r\n\r\n cabotageTrailer(vcleType) {\r\n // this.chkboxToolTip = 'Select vehicle to the application'\r\n if (vcleType == 'TRAILER') {\r\n let prmType = this.permittypes.find(p => p.id == this.permit_type_id)\r\n if (prmType != undefined && prmType.code.substring(0, 3) != 'CAB')\r\n {\r\n // this.chkboxToolTip = `'TRAILER' is only applicable for 'Cabotage' permit types.`\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n chkboxToolTip(vcleType) {\r\n if (vcleType == 'TRAILER') {\r\n let prmType = this.permittypes.find(p => p.id == this.permit_type_id)\r\n if (prmType != undefined && prmType.code.substring(0, 3) != 'CAB')\r\n {\r\n return `'TRAILER' is only applicable for 'Cabotage' permit types.`;\r\n }\r\n }\r\n return 'Select vehicle to the application';\r\n }\r\n}\r\n","
\r\n \r\n
\r\n
\r\n
\r\n
Manage Vehicles
\r\n
\r\n
\r\n
\r\n
\r\n Filters\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n\r\n \r\n\r\n
\r\n \r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
0\">\r\n \r\n
\r\n
\r\n Vin\r\n \r\n \r\n Country of registration\r\n \r\n \r\n Vehicle Type\r\n \r\n \r\n Registration Number\r\n \r\n \r\n eNatis Number\r\n \r\n \r\n Licence Expiry Date\r\n \r\n \r\n GVM\r\n \r\n \r\n Seating Capacity\r\n \r\n \r\n Road Worthiness\r\n \r\n \r\n \r\n
\r\n {{item.VehicleEntry.vin}}{{item.vin}}\r\n \r\n {{cnt.desc}}\r\n \r\n \r\n {{cnt.desc}}\r\n {{item.vehicle_type}}{{item.VehicleEntry.registration_number}}{{item.registration_number}}{{item.VehicleEntry.vehicle_register_num}}{{item.vehicle_register_num}}{{item.VehicleEntry.date_license_expiry | date:'dd/MM/yyyy'}}{{item.date_license_expiry | date:'dd/MM/yyyy'}}{{item.VehicleEntry.gvn}}{{item.gvn}}{{item.VehicleEntry.seating_capacity}}{{item.seating_capacity}}{{item.VehicleEntry.roadworthy_status}}{{item.roadworthy_status}}\r\n \r\n
\r\n No vehicle entries found. Please add a new vehicle.\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
Add Vehicle
\r\n
Edit Vehicle
\r\n
Vehicle Details
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
Upload Documents
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n\r\n
{{UserDocument.description}}{{UserDocument.file_name}}\r\n \r\n \r\n\r\n \r\n
{{UserDocument.description}}{{filename}}\r\n \r\n
No Documents found
\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
Document Uploaded
\r\n \r\n
\r\n
\r\n\r\n \r\n \r\n\r\n \r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { PermitService } from 'app/services/permit.service';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { ApplicationService } from 'app/services/application.service';\r\nimport { environment } from 'environments/environment';\r\nimport { PopupService } from 'app/services/shared/popup.service';\r\nimport { ConfirmDialogService } from 'app/services/shared/confirm-dialog/confirm-dialog.service';\r\n\r\n@Component({\r\n selector: 'app-permit-certificate-return',\r\n templateUrl: './permit-certificate-return.component.html',\r\n styleUrls: ['./permit-certificate-return.component.css']\r\n})\r\nexport class PermitCertificateReturnComponent implements OnInit {\r\n form: FormGroup;\r\n isLoading: boolean = false;\r\n message = 'Loading...'\r\n btnRadio:any;\r\n constructor(private formBuilder: FormBuilder,private permitSevc:PermitService,\r\n private toastr:ToastrService,public applicationService: ApplicationService,private popConfirm: PopupService,private confirmDialogService: ConfirmDialogService) { }\r\n\r\n ngOnInit() {\r\n this.initForm();\r\n }\r\n initForm() {\r\n this.form = this.formBuilder.group({\r\n permit_num: ['', [Validators.required]],\r\n face_value: ['', [Validators.required]],\r\n carrier_name: ['', [Validators.required]],\r\n btnRadio: ['', [Validators.required]],\r\n });\r\n }\r\n confirm(){\r\n if(!this.form.value.permit_num){\r\n return this.toastr.error('Please enter permit number','Permit Number')\r\n }\r\n if(!this.form.value.face_value){\r\n return this.toastr.error('Please enter face value number','Face Value Number')\r\n }\r\n this.isLoading = true;\r\n let permit_issue = 0;\r\n if (this.form.value.permit_num.includes('/')){\r\n permit_issue = this.form.value.permit_num.substring(this.form.value.permit_num.indexOf('/')+1).trim();\r\n if(!permit_issue){\r\n permit_issue = 0\r\n }\r\n this.form.value.permit_num = this.form.value.permit_num.substring(0, this.form.value.permit_num.indexOf('/'));\r\n //console.log(permit_issue)\r\n //console.log(this.form.value.permit_num)\r\n }\r\n //console.log(this.form.value.permit_num);\r\n this.permitSevc.getPermitReturn(this.form.value.permit_num).subscribe((data: any) =>{\r\n //console.log(data)\r\n if(data.face_value_num != this.form.value.face_value){\r\n this.isLoading = false;\r\n return this.toastr.error('Sorry permit and face value numbers do not match','Face Value Number')\r\n }\r\n \r\n if(data.permit_issue != permit_issue){\r\n this.isLoading = false;\r\n return this.toastr.error('Unable to locate the permit using permit number.','Permit Number')\r\n }\r\n //console.log(data);\r\n this.applicationService.getById(data.application_id).subscribe((data:any) =>{\r\n //console.log(data)\r\n this.loadData(data)\r\n let status_id = +environment.authWebApi.systemData.Configurations.find(config => config.Code == \"PermitStatus5\").Value;\r\n\r\n //check status\r\n\r\n if(data.status_id === status_id){\r\n this.isLoading = false;\r\n return this.toastr.info('Permit already returned','Permit');\r\n }\r\n\r\n //get permit type date\r\n let createdDate = new Date(data.permit.date_valid_to);\r\n // if(data.permit_type.permit_months > 0){\r\n // createdDate.setMonth(createdDate.getMonth() + data.permit_type.permit_months)\r\n // }\r\n \r\n // if(data.permit_type.permit_days > 0){\r\n // createdDate.setDate(createdDate.getDate() + data.permit_type.permit_days)\r\n \r\n // }\r\n // if(data.permit_type.permit_years > 0){\r\n // createdDate.setFullYear(createdDate.getFullYear() + data.permit_type.permit_years)\r\n \r\n // }\r\n \r\n let checkNowDate = new Date();\r\n //check expiry date\r\n //console.log('current date'+createdDate)\r\n //console.log('now date'+checkNowDate)\r\n\r\n if (createdDate.getTime() > checkNowDate.getTime()){\r\n this.isLoading = false;\r\n return this.onConfirm(data);\r\n }\r\n\r\n\r\n data.permit.date_12 = new Date();\r\n data.permit.status_id = status_id;\r\n data.status_id = status_id;\r\n this.applicationService.update(data).subscribe(x =>{\r\n //console.log(x)\r\n this.permitSevc.upadatePermit(data.permit).subscribe(result => {\r\n this.isLoading = false;\r\n return this.toastr.success('Permit returned successfully','Permit');\r\n })\r\n })\r\n \r\n\r\n //console.log(status_id);\r\n \r\n });\r\n \r\n },err =>{\r\n this.isLoading = false;\r\n return this.toastr.error('Unable to locate the permit using permit number.','Permit Number')\r\n })\r\n }\r\n loadData(data: any) {\r\n this.form.patchValue({\r\n carrier_name:data.carrier.name\r\n \r\n });\r\n }\r\n onConfirm(data) { \r\n let status_id = +environment.authWebApi.systemData.Configurations.find(config => config.Code == \"PermitStatus5\").Value;\r\n\r\n this.popConfirm.showYesNo('Permit Not Expired', `The permit for carrier ${data.carrier.name} is not expired! Do you want to return it anyway?`, null,'Yes', 'No')\r\n .subscribe((isConfirmed) => {\r\n if (isConfirmed) {\r\n this.isLoading = true;\r\n data.permit.status_id = status_id;\r\n data.status_id = status_id;\r\n this.applicationService.update(data).subscribe(x =>{\r\n //console.log(x)\r\n this.permitSevc.upadatePermit(data.permit).subscribe(result => {\r\n this.isLoading = false;\r\n return this.toastr.success('Permit returned successfully','Permit');\r\n })\r\n })\r\n } else { \r\n return;\r\n }\r\n });\r\n this.confirmDialogService.confirmThis(`The permit for carrier ${data.carrier.name} is not expired! Do you want to return it anyway?`, () => { \r\n \r\n this.isLoading = true;\r\n data.permit.status_id = status_id;\r\n data.status_id = status_id;\r\n this.applicationService.update(data).subscribe(x =>{\r\n //console.log(x)\r\n this.permitSevc.upadatePermit(data.permit).subscribe(result => {\r\n this.isLoading = false;\r\n return this.toastr.success('Permit returned successfully','Permit');\r\n })\r\n })\r\n \r\n \r\n }, () => { \r\n return;\r\n }) \r\n }\r\n}\r\n","\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
Manage Return of permits
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n  \r\n \r\n
\r\n\r\n \r\n\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-permit-type-document',\r\n templateUrl: './permit-type-document.component.html',\r\n styleUrls: ['./permit-type-document.component.css']\r\n})\r\nexport class PermitTypeDocumentComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","z","import { Component, OnInit } from '@angular/core';\r\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { DialogService } from 'ng2-bootstrap-modal';\r\nimport { UtilityServiceService } from 'app/services/utility-service.service';\r\nimport { AlertComponent } from 'app/popup/alert.component';\r\nimport { PermitTypeService } from 'app/services/permit-type.service';\r\nimport { AuthWebService } from 'app/services/authweb.service';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\n@Component({\r\n selector: 'app-permit-type',\r\n templateUrl: './permit-type.component.html',\r\n styleUrls: ['./permit-type.component.css']\r\n})\r\nexport class PermitTypeComponent implements OnInit {\r\n\r\n form;\r\n pType: any = {};\r\n sub: any;\r\n lblHeading = '';\r\n btnActionLabel = '';\r\n isEdit: boolean;\r\n user = { LastName: '' };\r\n isDup = false;\r\n selectedDisplay = 3;\r\n message = null;\r\n selectedCat = 1;\r\n selectedPer = 1;\r\n listCats = [{ key: 1, value: 'Freight' }, { key: 2, value: 'Passenger' }];\r\n listPers = [{ key: 1, value: 'Temporary' }, { key: 2, value: 'Long-term' }];\r\n public isLoading = false;\r\n now = new Date();\r\n audit = { created: '', updated: '' };\r\n isValid: boolean = true;\r\n permitTypeList : any;\r\n\r\n constructor(private permitTypeService: PermitTypeService, private authWebService: AuthWebService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n public utility: UtilityServiceService, private toastr: ToastrService) { }\r\n\r\n ngOnInit() {\r\n this.getPermitTypes();\r\n this.initForm();\r\n this.onChanges();\r\n this.listenChanges();\r\n this.user.LastName = (this.authWebService.userData) ? this.authWebService.userData.User.LastName : '';\r\n this.sub = this.route.params.subscribe(params => {\r\n if (this.router.url.indexOf('edit') != -1) {\r\n this.isEdit = true;\r\n this.lblHeading = 'Edit Permit Type';\r\n this.btnActionLabel = 'Update';\r\n const id = +params['id'];\r\n this.isLoading = true;\r\n this.permitTypeService.getById(id).subscribe(result => {\r\n console.log(result);\r\n this.pType = result;\r\n this.isLoading = false;\r\n (this.form)\r\n .setValue({\r\n id: this.pType.id\r\n , code: this.pType.code\r\n , description: this.pType.description\r\n , product_link: this.pType.product_link\r\n , account_link: this.pType.account_link\r\n , application_product_link: this.pType.application_product_link\r\n , application_account_link: this.pType.application_account_link\r\n , current_fee: this.pType.current_fee\r\n , current_application_fee: this.pType.current_application_fee\r\n , temp_long_ind: this.pType.temp_long_ind\r\n , freight_passenger_ind: this.pType.freight_passenger_ind\r\n , permit_days: this.pType.permit_days\r\n , permit_months: this.pType.permit_months\r\n , permit_years: this.pType.permit_years\r\n , group_code: this.pType.group_code\r\n , sort_order: this.pType.sort_order\r\n , is_active: this.pType.is_active\r\n , display_ind: this.pType.display_ind\r\n , date_created: this.pType.date_created\r\n , date_modified: this.pType.date_modified\r\n , user_created: this.pType.user_created\r\n , user_modified: this.pType.user_modified\r\n , application: (this.pType.application) ? this.pType.application : null\r\n , num_renewals_allowed: this.pType.num_renewals_allowed\r\n , charge_when_ind: this.pType.charge_when_ind\r\n , is_permit: this.pType.is_permit\r\n , can_get_duplicate: this.pType.can_get_duplicate\r\n , can_replace_vehicle: this.pType.can_replace_vehicle\r\n , can_correct_error: this.pType.can_correct_error\r\n , can_change_annexure: this.pType.can_change_annexure\r\n , can_amend_owner: this.pType.can_amend_owner\r\n , can_amend_route: this.pType.can_amend_route\r\n , can_amend_timetable: this.pType.can_amend_timetable\r\n , association_reqd: this.pType.association_reqd\r\n , own_vehicle_reqd: this.pType.own_vehicle_reqd\r\n , one_start_date_reqd: this.pType.one_start_date_reqd\r\n , timetable_reqd: this.pType.timetable_reqd\r\n , annual_compliance_reqd: this.pType.annual_compliance_reqd\r\n , monthly_return_reqd: this.pType.monthly_return_reqd\r\n , certificate_return_reqd: this.pType.certificate_return_reqd\r\n ,can_specify_duration: this.pType.can_specify_duration\r\n , PermitTemplate : this.pType.PermitTemplate\r\n , isCompliancePermitType : this.pType.IsCompliancePermitType\r\n , Compliance_PermitType_Id : this.pType.Compliance_PermitType_Id == null || this.pType.Compliance_PermitType_Id == undefined || this.pType.Compliance_PermitType_Id == 0? 0 : this.pType.Compliance_PermitType_Id\r\n , canCreatePermit : this.pType.CanCreatePermit\r\n }, { onlySelf: true });\r\n this.audit = this.utility.setAuditAttributes(this.pType.date_created, this.pType.user_created, this.pType.date_modified, this.pType.user_modified);\r\n });\r\n } else {\r\n this.isEdit = false;\r\n this.lblHeading = 'New Permit Type';\r\n this.btnActionLabel = 'Save';\r\n this.audit = this.utility.setAuditAttributes(this.now, this.user.LastName, this.now, this.user.LastName);\r\n }\r\n });\r\n }\r\n\r\n getPermitTypes()\r\n {\r\n this.permitTypeService.getAll().subscribe((pTypes:any)=>{ \r\n this.permitTypeList = pTypes.filter(f=>f.description.toLowerCase().indexOf(\"annual compliance\") > 0);\r\n });\r\n }\r\n\r\n initForm() {\r\n this.form = new FormGroup({\r\n id: new FormControl()\r\n , code: new FormControl(this.pType.code, )\r\n , description: new FormControl(this.pType.description, Validators.maxLength(100))\r\n , product_link: new FormControl(this.pType.product_link, Validators.maxLength(20))\r\n , account_link: new FormControl(this.pType.account_link, Validators.maxLength(20))\r\n , application_product_link: new FormControl(this.pType.application_product_link, Validators.maxLength(20))\r\n , application_account_link: new FormControl(this.pType.application_account_link, Validators.maxLength(20))\r\n , current_fee: new FormControl()\r\n , current_application_fee: new FormControl()\r\n , temp_long_ind: new FormControl()\r\n , freight_passenger_ind: new FormControl()\r\n , permit_days: new FormControl(0, Validators.compose([this.utility.checkIntegerType]))\r\n , permit_months: new FormControl(0, Validators.compose([this.utility.checkIntegerType]))\r\n , permit_years: new FormControl(0, Validators.compose([this.utility.checkIntegerType]))\r\n , group_code: new FormControl(this.pType.group_code, Validators.compose([Validators.required, Validators.maxLength(12)]))\r\n , sort_order: new FormControl(this.pType.sort_code, Validators.required)\r\n , is_active: new FormControl()\r\n , display_ind: new FormControl(this.pType.display_ind, Validators.required)\r\n , date_created: new FormControl()\r\n , date_modified: new FormControl()\r\n , user_created: new FormControl()\r\n , user_modified: new FormControl()\r\n , application: new FormControl()\r\n , num_renewals_allowed: new FormControl(0, Validators.compose([this.utility.checkIntegerType]))\r\n , charge_when_ind: new FormControl(0, Validators.compose([this.utility.checkIntegerType]))\r\n , is_permit: new FormControl(true)\r\n ,can_specify_duration : new FormControl(false)\r\n , can_get_duplicate: new FormControl(true)\r\n , can_replace_vehicle: new FormControl(true)\r\n , can_correct_error: new FormControl(true)\r\n , can_change_annexure: new FormControl(true)\r\n , can_amend_owner: new FormControl(true)\r\n , can_amend_route: new FormControl(true)\r\n , can_amend_timetable: new FormControl(true)\r\n , annual_compliance_reqd: new FormControl(false)\r\n , association_reqd: new FormControl(false)\r\n , own_vehicle_reqd: new FormControl(false)\r\n , one_start_date_reqd: new FormControl(false)\r\n , timetable_reqd: new FormControl(false)\r\n , monthly_return_reqd: new FormControl(true)\r\n , certificate_return_reqd: new FormControl(true)\r\n , PermitTemplate : new FormControl(\"Permit\")\r\n , isCompliancePermitType : new FormControl(false)\r\n , Compliance_PermitType_Id : new FormControl(\"\")\r\n , canCreatePermit : new FormControl(true)\r\n\r\n });\r\n this.form.patchValue(this.utility.defaults);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.sub.unsubscribe();\r\n }\r\n\r\n onSubmit(obj: any) {\r\n if (this.isDup) { return; }\r\n this.validInputGroup();\r\n if (!this.isValid) {\r\n return;\r\n }\r\n this.pType = obj;\r\n console.log(this.pType);\r\n this.message = (this.isEdit) ? \"Updating Permit Type\" : \"Adding a new Permit Type\";\r\n if (this.isEdit) {\r\n let modified = new Date().toLocaleString();\r\n //console.log(modified);\r\n this.pType.date_modified = new Date().toLocaleString();\r\n this.pType.user_modified = this.user.LastName;\r\n this.isLoading = true;\r\n this.permitTypeService.update(this.pType).subscribe(result => {\r\n this.pType = result;\r\n this.isLoading = false;\r\n // this.dialogService.addDialog(AlertComponent, { title: 'Update Permit Type', message: `Permit Type ${this.pType.code} updated succesfully.`, bold: `${this.pType.code}` });\r\n this.toastr.success(`Permit Type ${this.pType.code} updated succesfully.`, 'Update Permit Type');\r\n this.navigate();\r\n }, error => {\r\n this.isLoading = false;\r\n // this.dialogService.addDialog(AlertComponent, { title: 'Update Permit Type', message: `Permit Type ${this.pType.code} was not updated succesfully.`, bold: `${this.pType.code}` });\r\n this.toastr.error(`Permit Type ${this.pType.code} was not updated succesfully.`, 'Update Permit Type');\r\n\r\n });\r\n } else {\r\n this.pType.date_modified = this.pType.date_created = new Date().toLocaleString();\r\n this.pType.user_modified = this.pType.user_created = this.user.LastName;\r\n this.pType.code = this.generateUID();\r\n this.isLoading = true;\r\n \r\n //console.log(this.generateUID());\r\n console.dir(this.pType);\r\n this.permitTypeService.add(this.pType).subscribe(result => {\r\n this.pType = result;\r\n this.isLoading = false;\r\n // this.dialogService.addDialog(AlertComponent, { title: 'New Permit Type', message: `New Permit Type ${this.pType.code} added successfully.`, bold: `${this.pType.code}` });\r\n this.toastr.success(`New Permit Type ${this.pType.code} added successfully.`, 'New Permit Type');\r\n this.navigate();\r\n }, error => {\r\n this.isLoading = false;\r\n // this.dialogService.addDialog(AlertComponent, { title: 'New Permit Type', message: `New Permit Type ${this.pType.code} was not added successfully.`, bold: `${this.pType.code}` });\r\n this.toastr.error(`New Permit Type ${this.pType.code} was not added successfully.`, 'New Permit Type');\r\n });\r\n }\r\n }\r\n generateUID() {\r\n var firstPart = (Math.random() * 46656) | 0;\r\n var secondPart = (Math.random() * 46656) | 0;\r\n var f = firstPart.toString();\r\n var s = secondPart.toString();\r\n f = ((\"000\" + firstPart.toString(36)).slice(-3));\r\n s = (\"000\" + secondPart.toString(36)).slice(-3);\r\n return f + s;\r\n}\r\n\r\n navigate() {\r\n this.router.navigateByUrl('/permit/type/list');\r\n }\r\n\r\n\r\n onChanges(): void {\r\n this.form.get('code').valueChanges.subscribe(code => {\r\n\r\n if (code.length > 3) {\r\n this.permitTypeService.checkByCode(code.trim()).subscribe((result:any) => {\r\n this.isDup = (result.Status && !this.isEdit) ? true : false;\r\n }, error => {\r\n this.isDup = false;\r\n\r\n });\r\n }\r\n });\r\n }\r\n\r\n\r\n\r\n checkPeriod = (ctrlName: any, ctrlIndex) => {\r\n\r\n let period = this.form.get(ctrlName).value;\r\n if (period > 0) {\r\n switch (ctrlIndex) {\r\n case 1:\r\n this.form.patchValue({ permit_months: 0, permit_years: 0 });\r\n break;\r\n case 2:\r\n this.form.patchValue({ permit_days: 0, permit_years: 0 });\r\n break;\r\n case 3:\r\n this.form.patchValue({ permit_months: 0, permit_days: 0 });\r\n break;\r\n }\r\n }\r\n //this.validInputGroup(); \r\n }\r\n\r\n validInputGroup = (): any => {\r\n this.isValid = false;\r\n let condition = + this.form.get(\"permit_years\").value + this.form.get(\"permit_months\").value + this.form.get(\"permit_days\").value;\r\n this.isValid = (condition == 0) ? false : true;\r\n\r\n if(this.form.get(\"isCompliancePermitType\").value == true && this.form.get(\"Compliance_PermitType_Id\").value == 0)\r\n {\r\n this.toastr.error(\"Please select Permit Type for Annual Compliance\");\r\n this.isValid = false;\r\n return;\r\n }\r\n }\r\n\r\n listenChanges(): void {\r\n this.form.valueChanges.subscribe(val => {\r\n let ctrlIndex = + val.permit_days + val.permit_months + val.permit_years;\r\n if (this.form.valid) {\r\n this.isValid = (ctrlIndex >= 1) ? true : false;\r\n }\r\n });\r\n }\r\n\r\n enableSubmit = () => {\r\n return !(this.form.valid && this.isValid);\r\n }\r\n}\r\n","\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n

Permit Type: {{lblHeading}}

\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n\r\n\r\n\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n Configuration Rules for Permits\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Configuration Rules for Returns\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Configuration Rules for Changes and Duplicates\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n Sorting And Displaying\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
Created
\r\n
\r\n
Updated
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { FormGroup, FormControl, Validators, FormBuilder, FormArray } from '@angular/forms';\r\nimport { UtilityServiceService } from 'app/services/utility-service.service';\r\nimport { environment } from 'environments/environment';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { RouteService } from 'app/services/route.service';\r\nimport { CountryService } from 'app/services/country.service';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { PlaceService } from 'app/services/place.service';\r\nimport { error } from 'protractor';\r\nimport { AuthWebService } from 'app/services/authweb.service';\r\ndeclare var $: any;\r\n\r\n@Component({\r\n selector: 'app-add-route',\r\n templateUrl: './add-route.component.html',\r\n styleUrls: ['./add-route.component.css'],\r\n providers: [RouteService]\r\n})\r\nexport class AddRouteComponent implements OnInit {\r\n form;\r\n cType: any = {};\r\n sub: any;\r\n lblHeading = 'Standard Route';\r\n btnActionLabel = '';\r\n isEdit: boolean = false;\r\n isDup = false;\r\n selectedGroupCode: any = {};\r\n selectedDisplay = 3;\r\n message = null;\r\n now = new Date();\r\n audit = { created: '', updated: '' };\r\n user = { LastName: '' };\r\n selectedRoute_type_ind = 1;\r\n public isLoading = false;\r\n public countries: any = [];\r\n public departurePlaces: any = [];\r\n public selectedDepartureCountry;\r\n public destinationPlaces: any = [];\r\n public selectedDestinationCountry;\r\n borderCrossings: FormArray;\r\n borderPlaces: any = [];\r\n selectedBorderCrossings: any = [];\r\n ctrlId = 0;\r\n destinationId = 0;\r\n isCodeDup = false;\r\n routeLeg: any;\r\n isAllowed = false;\r\n isDefault = 0;\r\n isAddModel = false;\r\n isSelected = true;\r\n trackIndex = 0;\r\n destId = 0;\r\n list_borders = [];\r\n ls_destination = [];\r\n isRequired = false;\r\n @Input() routeCtrl: any = { isNew: false };\r\n \r\n\r\n constructor(private countryService: CountryService, private formBuilder: FormBuilder,\r\n public utility: UtilityServiceService, private toastr: ToastrService, private placeService: PlaceService,\r\n private routeService: RouteService, private routr: Router, private route: ActivatedRoute, private authWebService: AuthWebService) { }\r\n\r\n ngOnInit() {\r\n this.user.LastName = (this.authWebService.userData) ? this.authWebService.userData.User.LastName : '';\r\n this.initForm();\r\n //this.onChanges();\r\n this.reloadCountries();\r\n if (!this.routeCtrl.isNew) {\r\n this.setEditDefault();\r\n this.isWithLegs();\r\n\r\n } else {\r\n //console.log('RouteCtrl', this.routeCtrl);\r\n this.isAllowed = true;\r\n //this.ctrlTabs();\r\n this.addValidation();\r\n $('#bord').removeClass('active');\r\n $('#desc').addClass('active');\r\n $('#desc').addClass('show');\r\n \r\n\r\n }\r\n \r\n }\r\n\r\n \r\n\r\n initForm() {\r\n this.form = this.formBuilder.group({\r\n id: [0, []], \r\n route_type_ind: [1, [Validators.required]],\r\n display_ind: ['', [Validators.required]],\r\n code: [this.generateCode(), [Validators.required]],\r\n route_detail: ['', []],\r\n route_summary: ['', [Validators.required]],\r\n description: ['', [Validators.required]],\r\n is_active: [true, [Validators.required]],\r\n sort_order: [1, [Validators.required]],\r\n group_code: ['A', [Validators.required]], \r\n date_created: [new Date(), [Validators.required]], \r\n departure_country_id: [0, []],\r\n destination_country_id: [0, []],\r\n route_led_id: [0, []],\r\n departure_place_id: ['', []],\r\n destination_place_id: ['', []],\r\n borderCrossings: this.formBuilder.array([]),\r\n first_place_leg_id:[0,[]]\r\n });\r\n this.audit = this.utility.setAuditAttributes(this.now, environment.authWebApi.userData.User.FirstName, this.now, environment.authWebApi.userData.User.FirstName);\r\n this.addValidation();\r\n }\r\n\r\n \r\n\r\n onSelectChange() {\r\n //console.log(this.selectedDisplay)\r\n }\r\n setEditDefault() {\r\n this.route.params.subscribe(params => {\r\n if (this.routr.url.indexOf('edit') != -1) {\r\n this.isEdit = true;\r\n const id = +params['id'];\r\n this.lblHeading = 'Edit Standard Route';\r\n //this.currentRoute(id);\r\n this.onLoadRouteById(id);\r\n\r\n }\r\n });\r\n\r\n }\r\n \r\n getRoutes() {\r\n this.routeService.getAllRoute().subscribe(data => {\r\n ////console.log(data);\r\n });\r\n }\r\n editRoute(route) {\r\n this.routeService.editRoutes(route).subscribe((x: any) => {\r\n //console.log(x);\r\n this.getRoutes();\r\n this.isLoading = false;\r\n this.toastr.success('Update Route', 'Route updated successfully');\r\n this.routr.navigateByUrl('/route/management/list');\r\n },\r\n error => {\r\n //console.log(error.error.Message)\r\n this.isLoading = false;\r\n this.toastr.error('Failed to save application. If the problem persist, please contact system administrator.', 'Save Application')\r\n // this.showModal.showError('Save Application','Failed to save application. If the problem persist, please contact system administrator.',error);\r\n return;\r\n });\r\n\r\n\r\n }\r\n\r\n\r\n reloadCountries() {\r\n this.countryService.listAllCountries().subscribe(res => {\r\n this.countries = res;\r\n if (!this.isEdit) {\r\n let country = this.countries.find(x => {\r\n ////console.log('---Selected country : ', x);\r\n return x.code == 'ZA'\r\n });\r\n if (country) { \r\n this.selectedDepartureCountry = country.desc;\r\n this.form.patchValue({\r\n departure_country_id: country.id\r\n });\r\n //console.log('---Selected country : ', this.selectedDepartureCountry);\r\n this.ctrlId = country.id;\r\n this.onSetDeparturePlaces(country.id);\r\n if (!this.isAllowed) {\r\n this.loadBordersByDepartureCountry(country.id);\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n onSetDeparturePlaces = (id) => {\r\n this.placeService.getAllCountryPlaces(id).subscribe(res => {\r\n this.departurePlaces = res;\r\n this.departurePlaces.push({ id: '', name: 'Choose a departure place*' }); \r\n },\r\n error => {\r\n this.departurePlaces = [];\r\n return;\r\n });\r\n }\r\n\r\n departureCountryChange(ref) {\r\n this.message = \"Loading...\";\r\n ////console.log('---Selected country ID: ', ref);\r\n ////console.log('---Loaded countries: ', this.countries);\r\n this.onSwitchOnOrOff(true);\r\n \r\n\r\n\r\n this.placeService.getAllCountryPlaces(ref).subscribe(res => {\r\n this.departurePlaces = res;\r\n this.selectedDepartureCountry = this.countries.find(x => {\r\n return x.id == ref\r\n }).desc;\r\n //this.patchFormWithDepRougLeg(this.form.value, this.departurePlaces[0].id); \r\n this.onSwitchOnOrOff();\r\n },\r\n error => {\r\n this.departurePlaces = [];\r\n this.onSwitchOnOrOff();\r\n return;\r\n });\r\n }\r\n\r\n destinationCountryChange(ref) {\r\n this.message = \"Loading...\";\r\n this.onSwitchOnOrOff(true);\r\n this.destinationPlaces = [];\r\n //console.log(`${ref}.Des Cntry ID`);\r\n this.placeService.getAllCountryPlaces(ref).subscribe(res => {\r\n this.destinationPlaces = res;\r\n this.destinationPlaces.push({ id: '', name: 'Choose a destination place*' });\r\n ////console.log(`${ref}.Destination Country places = `, this.destinationPlaces);\r\n //this.selectedDestinationCountry = this.countries.find(x => {\r\n // return x.id == ref\r\n //}).desc;\r\n this.form.patchValue({ destination_place_id: '' });\r\n if (this.isEdit) { \r\n this.form.patchValue({ destination_place_id: this.routeLeg.destination_place_id });\r\n }\r\n \r\n this.onSwitchOnOrOff();\r\n },\r\n error => {\r\n this.destinationPlaces = [];\r\n this.onSwitchOnOrOff();\r\n return;\r\n });\r\n }\r\n \r\n //Border Grossings\r\n onGetBorderCrossings = (id, rType = 1,index) => {\r\n this.message = \"Loading...\";\r\n this.onSwitchOnOrOff(true);\r\n ////console.log('Route Type ==>: ', rType);\r\n let count = this.borderPlaces.length;\r\n ////console.log('borderPlaces = > ', count + ' | ' + this.trackIndex);\r\n if (rType == 1) {\r\n this.placeService.getBorderCrossingsByCountryId(id).subscribe(border => {\r\n let borders: any = border;\r\n borders.push({ PlaceId: '', PlaceName: 'Choose a border crossing*' });\r\n //this.borderPlaces.push(borders);\r\n this.borderPlaces[index] = borders;\r\n ////console.log('Borders = > ', border);\r\n\r\n this.onSwitchOnOrOff();\r\n }, error => {\r\n //console.log('Error ==>: ', error);\r\n this.onSwitchOnOrOff();\r\n });\r\n } else {\r\n this.placeService.getStopsByCountryId(id).subscribe(border => {\r\n let borders: any = border;\r\n borders.push({ PlaceId: '', PlaceName: 'Choose a stop*' });\r\n //this.borderPlaces.push(borders);\r\n this.borderPlaces[index] = borders;\r\n ////console.log('Stops = > ', border);\r\n\r\n this.onSwitchOnOrOff();\r\n }, error => {\r\n //console.log('Error ==>: ', error);\r\n this.onSwitchOnOrOff();\r\n });\r\n }\r\n \r\n }\r\n\r\n\r\n createBorderCrossing(rType=1): FormGroup {\r\n return this.formBuilder.group({ \r\n legId:0,\r\n placeFrom: ['',Validators.required],\r\n placeTo:0,\r\n stepNum: 0,\r\n stopType: (rType == 2)?['', Validators.required]:0,\r\n routeType:rType\r\n });\r\n }\r\n\r\n addItem(rType = 1): void {\r\n this.borderCrossings = this.form.get('borderCrossings') as FormArray;\r\n this.borderCrossings.push(this.createBorderCrossing(rType));\r\n \r\n ////console.log('CTRLID = > ', this.ctrlId);\r\n ////console.log('# Border crossing = ', this.borderCrossings.length);\r\n const index = this.borderCrossings.length - 1;\r\n this.onGetBorderCrossings(this.ctrlId, rType,index);\r\n this.isAddModel = true;\r\n ////console.log('FormGroup = > ', this.form.controls.borderCrossings.controls[0].controls.crossingCountry);\r\n }\r\n\r\n addRouteLegs(borders: any): void {\r\n this.borderCrossings = this.form.get('borderCrossings') as FormArray; \r\n let start = borders[0];\r\n let current: any; \r\n borders.forEach(leg => { \r\n if (leg.stepNum > 1) {\r\n this.borderCrossings.push(this.formBuilder.group({\r\n legId: leg.legId,\r\n placeFrom: leg.placeFrom,\r\n placeTo: leg.placeTo,\r\n stepNum: leg.stepNum,\r\n routeType: (start.placeTo == leg.placeFrom) ? start.routeType:leg.routeType,\r\n stopType: (start.placeTo == leg.placeFrom) ? start.stopType : leg.stopType,\r\n }));\r\n start = leg;\r\n } else {\r\n this.form.patchValue({ first_place_leg_id: leg.legId});\r\n }\r\n }) \r\n ////console.log('BorderCrossings = > ', this.borderCrossings);\r\n \r\n }\r\n\r\n onBorderCrossingChange = (item: any, index = 0) => {\r\n\r\n let id : Number = item;\r\n ////console.log('Places size : ', this.borderPlaces.length);\r\n ////console.log('Item = ' ,item);\r\n \r\n\r\n let country = this.borderPlaces[index].find(x => x.PlaceId == id);\r\n this.ctrlId = country.CountrySId;\r\n ////console.log('CTRL Id = ', this.ctrlId);\r\n\r\n this.selectedBorderCrossings[index] = country;\r\n ////console.log('Selected country : ', country);\r\n ////console.log('Selected countries : ', this.selectedBorderCrossings);\r\n this.selectedDestinationCountry = country.CountrySName\r\n this.destinationId = country.CountrySId;\r\n ////console.log('DestinationId = ', this.destinationId);\r\n //if (!this.isEdit)\r\n this.destinationCountryChange(this.destinationId);\r\n this.isAddModel = false; \r\n }\r\n\r\n onRemoveItem = (index) => { \r\n const rmv = this.selectedBorderCrossings[index];\r\n const border = this.borderPlaces[index];\r\n this.selectedBorderCrossings = this.selectedBorderCrossings.filter(x => x != rmv);\r\n this.borderPlaces = this.borderPlaces.filter((x, i) => i != index); \r\n //console.log('Border Removed : ', border);\r\n //console.log('Border Crossing countries left : ', this.selectedBorderCrossings);\r\n this.borderCrossings.removeAt(index);\r\n //console.log('Border Crossing controls left : ', this.borderCrossings);\r\n let newIndex = index - 1;\r\n if (newIndex >= 0) {\r\n const country = this.selectedBorderCrossings[newIndex];\r\n //console.log('Previous Border Crossing control : ', this.borderCrossings.at(newIndex));\r\n //console.log('Previous Border Crossing Country : ', this.selectedBorderCrossings[newIndex]);\r\n const id = Number(country.PlaceId);\r\n //this.ctrlId = country.CountrySId;\r\n //this.onGetBorderCrossings(this.ctrlId);\r\n this.onAddOrRemove(id, newIndex);\r\n } else {\r\n this.selectedDestinationCountry = null;\r\n this.destinationPlaces = [];\r\n this.ctrlId = this.form.get('departure_country_id').value;\r\n }\r\n this.isAddModel = false;\r\n }\r\n\r\n\r\n onAddOrRemove = (id,index) => {\r\n\r\n // //console.log('Places : ', this.borderPlaces);\r\n ////console.log('Item = ' ,item);\r\n ////console.log('Item Id = ', id);\r\n ////console.log('Index : ', index);\r\n ////console.log('BorderPlaces : ', this.borderPlaces[index]);\r\n ////console.log('CTRL Id = ', this.ctrlId);\r\n let country = this.borderPlaces[index].find(x => x.PlaceId == id);\r\n this.ctrlId = country.CountrySId;\r\n\r\n this.selectedBorderCrossings[index] = country;\r\n //console.log('Selected country : ', country);\r\n ////console.log('Selected countries : ', this.selectedBorderCrossings);\r\n this.selectedDestinationCountry = country.CountrySName\r\n this.destinationId = country.CountrySId;\r\n this.destinationCountryChange(this.destinationId);\r\n }\r\n\r\n onSwitchOnOrOff = (state = false) => {\r\n this.isLoading = state;\r\n }\r\n\r\n onConstructRoute = (obj: any) => {\r\n const places = obj.borderCrossings;\r\n let crossings = [];\r\n if ((places) && (this.isAllowed)) {\r\n const length = places.length;\r\n if (length => 1) {\r\n let leg1 = { legId: Number(obj.first_place_leg_id), placeFrom: Number(obj.departure_place_id), placeTo: Number(places[0].placeFrom), stepNum: 1, routeType: Number(places[0].routeType), stopType: Number(places[0].stopType) };\r\n let leg2 = { legId: Number(places[length - 1].legId), placeFrom: Number(places[length - 1].placeFrom), placeTo: Number(obj.destination_place_id), stepNum: 99, routeType: Number(places[length - 1].routeType), stopType: Number(places[length - 1].stopType) };\r\n crossings.push(leg1);\r\n for (let i = 1; i < length; i++) {\r\n let legN = {\r\n legId: Number(places[i - 1].legId),\r\n placeFrom: Number(places[i - 1].placeFrom),\r\n placeTo: Number(places[i].placeFrom),\r\n stepNum: i + 1,\r\n routeType: Number(places[i].routeType),\r\n stopType: Number(places[i].stopType)\r\n };\r\n crossings.push(legN);\r\n }\r\n crossings.push(leg2);\r\n } \r\n } \r\n return {\r\n id: obj.id,\r\n route_type_ind: obj.route_type_ind,\r\n display_ind: obj.display_ind,\r\n code: obj.code,\r\n route_detail: obj.route_detail,\r\n route_summary: obj.route_summary,\r\n description: obj.description,\r\n is_active: obj.is_active,\r\n sort_order: obj.sort_order,\r\n group_code: obj.group_code,\r\n date_created: obj.date_created,\r\n departure_country_id: obj.departure_country_id,\r\n destination_country_id: obj.destination_country_id,\r\n route_led_id: obj.route_led_id,\r\n departure_place_id: obj.departure_place_id,\r\n destination_place_id: obj.destination_place_id,\r\n borderCrossings: (this.isAllowed)?crossings:[]\r\n }\r\n\r\n }\r\n\r\n onSubmit = (form: any) => {\r\n\r\n let rLeg: any = this.onConstructRoute(form);\r\n ////console.log(\"Routes = \", JSON.parse(JSON.stringify(rLeg))); return;\r\n this.message = (this.isEdit) ? \"Updating route\" : \"Adding a new route\";\r\n \r\n if (this.isEdit) {\r\n rLeg.date_modified = new Date().toLocaleString();\r\n rLeg.user_modified = this.user.LastName;\r\n this.onSwitchOnOrOff(true);\r\n this.routeService.editRouteLeg(rLeg).subscribe(\r\n result => {\r\n //console.log('Updated Route : ', result);\r\n this.onSwitchOnOrOff();\r\n this.toastr.success('Update Route', 'Route updated successfully');\r\n this.routr.navigateByUrl('/route/management/list');\r\n },\r\n error => {\r\n this.onSwitchOnOrOff(); \r\n this.toastr.error('Failed to update route. If the problem persists, please contact system administrator.', 'Save Route');\r\n }\r\n );\r\n\r\n } else { \r\n rLeg.date_modified = rLeg.date_created = new Date().toLocaleString();\r\n rLeg.user_modified = rLeg.user_created = this.user.LastName;\r\n this.onSwitchOnOrOff(true);\r\n this.routeService.addRouteLeg(rLeg).subscribe(\r\n result => {\r\n //console.log('Added Route : ', result);\r\n this.onSwitchOnOrOff();\r\n this.toastr.success('Save Route', 'Route saved successfully');\r\n this.routr.navigateByUrl('/route/management/list');\r\n },\r\n error => {\r\n this.onSwitchOnOrOff(); \r\n this.toastr.error('Failed to save route. If the problem persists, please contact system administrator.', 'Save Route');\r\n }\r\n );\r\n } \r\n ////console.log(JSON.parse(JSON.stringify(rLeg))); \r\n }\r\n\r\n onLoadRouteById = (id) => {\r\n this.onSwitchOnOrOff(true);\r\n this.routeService.getRouteLegById(id).subscribe(\r\n resource => { \r\n this.routeLeg = resource;\r\n ////console.log('*****routeLeg = ', this.routeLeg);\r\n this.form.patchValue({\r\n id: this.routeLeg.id,\r\n route_type_ind: this.routeLeg.route_type_ind,\r\n display_ind: this.routeLeg.display_ind,\r\n code: this.routeLeg.code,\r\n route_detail: this.routeLeg.route_detail,\r\n route_summary: this.routeLeg.route_summary,\r\n description: this.routeLeg.description,\r\n is_active: this.routeLeg.is_active,\r\n sort_order: this.routeLeg.sort_order,\r\n group_code: this.routeLeg.group_code,\r\n date_created: this.routeLeg.date_created,\r\n departure_place_id: this.routeLeg.departure_place_id,\r\n destination_place_id: this.routeLeg.destination_place_id,\r\n departure_country_id: this.routeLeg.departure_country_id,\r\n destination_country_id: this.routeLeg.destination_country_id, \r\n });\r\n if (this.isWithLegs(this.routeLeg.route_type_ind)) {\r\n this.ctrlId = this.routeLeg.departure_country_id;\r\n this.destinationId = this.routeLeg.destination_country_id;\r\n this.routeLeg.places.forEach(place => {\r\n this.borderPlaces.push(place);\r\n });\r\n ////console.log(' destination_place_id = ', this.form.get('destination_place_id').value);\r\n this.departureCountryChange(this.ctrlId); \r\n this.onLoadForEdit();\r\n this.destinationCountryChange(this.routeLeg.destination_country_id);\r\n ////console.log('Destination country = ', this.routeLeg.destination_country_id);\r\n \r\n } else { //New logic\r\n this.ctrlId = this.routeLeg.departure_country_id;\r\n this.isAllowed = this.routeLeg.is_active;\r\n if (this.ctrlId > 0) {\r\n this.destinationId = this.routeLeg.destination_country_id;\r\n this.routeLeg.places.forEach(place => {\r\n this.borderPlaces.push(place);\r\n });\r\n ////console.log(' destination_place_id = ', this.form.get('destination_place_id').value);\r\n this.departureCountryChange(this.ctrlId);\r\n this.onLoadForEdit();\r\n this.destinationCountryChange(this.routeLeg.destination_country_id);\r\n } else {\r\n let country = this.countries.find(x => {\r\n ////console.log('---Selected country : ', x);\r\n return x.code == 'ZA'\r\n });\r\n if (country) {\r\n this.selectedDepartureCountry = country.desc;\r\n this.form.patchValue({\r\n departure_country_id: country.id\r\n });\r\n ////console.log('---Selected country : ', this.selectedDepartureCountry);\r\n this.ctrlId = country.id;\r\n this.onSetDeparturePlaces(country.id);\r\n if (!this.isAllowed) {\r\n this.loadBordersByDepartureCountry(country.id);\r\n }\r\n }\r\n \r\n }\r\n }\r\n this.onSwitchOnOrOff();\r\n },\r\n error => {\r\n this.onSwitchOnOrOff();\r\n //console.log('Problems : ', error);\r\n this.toastr.error('Failed to load route. If the problem persists, please contact system administrator.', 'Save Route');\r\n\r\n }\r\n );\r\n }\r\n\r\n onLoadForEdit = () => {\r\n let count = 0;\r\n this.addRouteLegs(this.routeLeg.borderCrossings);\r\n const legs = this.form.get('borderCrossings').controls;\r\n ////console.log('#Legs ==>: ', legs.length);\r\n \r\n legs.forEach(leg => {\r\n\r\n ////console.log('#Leg ==>: ', leg.value.legId + ' | ' + leg.value.placeFrom);\r\n let id = leg.value.placeFrom;\r\n //let id = leg.value.placeTo;\r\n this.onBorderCrossingChangeEdit(id, count); \r\n count++; \r\n });\r\n this.isWithLegs();\r\n }\r\n\r\n\r\n onBorderCrossingChangeEdit = (item: any, index = 0) => {\r\n\r\n let id: Number = item;\r\n //console.log('Places size : ', this.borderPlaces.length);\r\n //console.log('Item = ', item); \r\n let country = this.borderPlaces[index].find(x => x.PlaceId == id);\r\n this.ctrlId = country.CountrySId;\r\n //console.log('CTRL Id = ', this.ctrlId);\r\n\r\n this.selectedBorderCrossings[index] = country;\r\n //console.log('Selected country : ', country);\r\n ////console.log('Selected countries : ', this.selectedBorderCrossings);\r\n this.selectedDestinationCountry = country.CountrySName\r\n this.destinationId = country.CountrySId;\r\n //console.log('DestinationId = ', this.destinationId); \r\n this.isAddModel = false;\r\n }\r\n\r\n isWithLegs = (checker=0) => {\r\n \r\n this.isValidRoute();\r\n\r\n if (!this.isEdit) {\r\n if (!this.isAllowed) {\r\n this.form.patchValue({ is_active: false }); \r\n } else {\r\n this.form.patchValue({ is_active: true }); \r\n }\r\n }\r\n this.isRequired = (this.isAllowed) ? false : true;\r\n this.ctrlTabs();\r\n return this.isAllowed;\r\n }\r\n\r\n isActing(action = 0) {\r\n return (this.selectedBorderCrossings.length > action);\r\n }\r\n\r\n addValidation = () => {\r\n \r\n let route_detail = this.form.get('route_detail');\r\n let borderCrossings = this.form.get('borderCrossings');\r\n let departure_place_id = this.form.get('departure_place_id');\r\n let destination_place_id = this.form.get('destination_place_id');\r\n\r\n if (this.isAllowed) { \r\n route_detail.clearValidators();\r\n borderCrossings.setValidators([Validators.required]);\r\n departure_place_id.setValidators([Validators.required]);\r\n destination_place_id.setValidators([Validators.required]);\r\n } else { \r\n borderCrossings.clearValidators();\r\n departure_place_id.clearValidators();\r\n destination_place_id.clearValidators();\r\n route_detail.setValidators([Validators.required]);\r\n }\r\n\r\n borderCrossings.updateValueAndValidity();\r\n departure_place_id.updateValueAndValidity();\r\n destination_place_id.updateValueAndValidity();\r\n route_detail.updateValueAndValidity(); \r\n }\r\n \r\n\r\n onChanges(): void { \r\n this.form.get('code').valueChanges.subscribe(code => {\r\n if (code.length > 1) {\r\n this.routeService.checkByCode(code.trim()).subscribe(result => {\r\n this.isCodeDup = (result.Status && !this.isEdit) ? true : false;\r\n }, error => {\r\n this.isCodeDup = false;\r\n });\r\n }\r\n else this.isCodeDup = false; \r\n });\r\n \r\n }\r\n \r\n isBorder = (index: number) => {\r\n if (index == 0) return true;\r\n\r\n let currentLeg = this.borderCrossings.value[index];\r\n let prevLeg = this.borderCrossings.value[index - 1]; \r\n return (currentLeg.routeType != prevLeg.routeType);\r\n\r\n }\r\n\r\n isStop = (index: number) => {\r\n let currentLeg = this.borderCrossings.value[index];\r\n ////console.log(\"Current Leg = \", currentLeg);\r\n return (currentLeg.routeType == 2);\r\n }\r\n\r\n isMessage = (index) => {\r\n return (this.selectedBorderCrossings[index]) ? true : false;\r\n }\r\n\r\n\r\n loadBordersByDepartureCountry = (id) => {\r\n this.message = \"Loading...\";\r\n this.onSwitchOnOrOff(true);\r\n //console.log('Country ID : ', id);\r\n this.placeService.getBorderCrossingsByCountryId(id).subscribe(border => {\r\n let borders: any = border;\r\n borders.push({ PlaceId: '', PlaceName: 'Choose a border crossing*' });\r\n //this.borderPlaces.push(borders);\r\n this.list_borders = borders;\r\n ////console.log('Borders = > ', border);\r\n\r\n this.onSwitchOnOrOff();\r\n }, error => {\r\n //console.log('Error ==>: ', error);\r\n this.onSwitchOnOrOff();\r\n });\r\n }\r\n\r\n loadDestinationBasedOnBorderPost = (id) => {\r\n\r\n let border = this.list_borders.find(x => x.PlaceId == id);\r\n //console.log('Border : ', border);\r\n this.ls_destination = [{ id: border.CountrySId, desc: border.CountrySName }];\r\n //console.log('Destination : ', this.ls_destination);\r\n this.form.patchValue({ destination_country_id: border.CountrySId});\r\n }\r\n\r\n\r\n checkValidity = (activeRef) => {\r\n activeRef.preventDefault();\r\n this.isRequired = (this.isAllowed) ? false : true;\r\n const checked = activeRef.target.checked; \r\n this.isAllowed = (checked) ? true : false;\r\n if (checked) {\r\n this.toastr.info('To make this route active, you need to add a departure, a destination and at least one border post.', 'Route Management'); \r\n } \r\n this.ctrlTabs(); \r\n }\r\n\r\n ctrlTabs = () => {\r\n let links = $('.nav-tabs a');\r\n this.isValidRoute();\r\n if (this.isAllowed) {\r\n \r\n $('#desc').removeClass('active');\r\n $('#bord').addClass('active');\r\n $('#bord').addClass('show'); \r\n links.eq(1).trigger('click'); \r\n //$('#bord').show(); // Show selected \r\n } else {\r\n $('#bord').removeClass('active');\r\n $('#desc').addClass('active');\r\n $('#desc').addClass('show');\r\n links.eq(0).trigger('click'); \r\n //$('#desc').show(); \r\n }\r\n this.addValidation(); \r\n }\r\n\r\n isValidRoute = (checker = 0) => {\r\n const indicators = [3, 5, 13, 15];\r\n const current = Number(this.form.get('route_type_ind').value);\r\n this.isAllowed = (indicators.indexOf(current) > -1) ? true : false; \r\n }\r\n\r\n backPage = () => {\r\n if (this.routeCtrl.isNew) {\r\n this.routeCtrl.isNew = false;\r\n this.routeCtrl.btnRadio = null;\r\n } else {\r\n this.routr.navigate(['/route/management/list']);\r\n }\r\n }\r\n\r\n addPermitRoute = (obj: any) => {\r\n\r\n let rLeg: any = this.onConstructRoute(obj);\r\n rLeg.date_modified = rLeg.date_created = new Date().toLocaleString();\r\n rLeg.user_modified = rLeg.user_created = this.user.LastName;\r\n\r\n //console.log('Route : ', rLeg);\r\n //console.log('IsAllowed : ', this.isAllowed);\r\n this.routeCtrl.rLeg = rLeg;\r\n this.routeCtrl.isNew = false;\r\n this.routeCtrl.btnRadio = 3;\r\n }\r\n\r\n generateCode = () => {\r\n let current_date = new Date();\r\n let code = 'C' + (current_date.getMonth() + 1) +'' + current_date.getDate() + '' + current_date.getFullYear() + '' + current_date.getHours() + '' + current_date.getMinutes() + '' + current_date.getSeconds();\r\n const LETTERS = [\"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\", \"X\", \"Y\", \"Z\"];\r\n const F = LETTERS[Math.floor(Math.random() * 26)];\r\n const L = LETTERS[Math.floor(Math.random() * 26)];\r\n const FINAL_CODE = F + code + L;\r\n //console.log('Code = ', FINAL_CODE);\r\n return FINAL_CODE;\r\n // //console.log('DATE = ', current_date.toLocaleTimeString());\r\n ////console.log('CHAR = ', LETTERS[index]);\r\n }\r\n\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n
\r\n

\r\n \r\n Manage {{lblHeading}}\r\n

\r\n
\r\n \r\n \r\n Route \r\n * Please complete all required fields needed to create your route\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n

\r\n Enter a detailed description of the whole route, indicating all the stopping points and\r\n border posts\r\n

\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n  Departure\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n  {{isStop(i)?'Stop(s)' : 'Border crossing(s)'}}\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n  Destination\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n   \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n\r\n
\r\n
\r\n Sorting And Displaying\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
Created
\r\n
\r\n
Updated
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { RouteService } from 'app/services/route.service';\r\nimport { PopupService } from 'app/services/shared/popup.service';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { Router } from '@angular/router';\r\nimport { UtilityServiceService } from 'app/services/utility-service.service';\r\n\r\n@Component({\r\n selector: 'app-list-route',\r\n templateUrl: './list-route.component.html',\r\n styleUrls: ['./list-route.component.css'],\r\n providers: [RouteService]\r\n})\r\nexport class ListRouteComponent implements OnInit {\r\n routes: any = [];\r\n message = \"Loading Standard Routes...\";\r\n public isLoading = false;\r\n showNum: number = 10;\r\n lblHeading = 'Standard Routes';\r\n isEmpty: boolean = false;\r\n\r\n constructor(private routeService: RouteService,\r\n private showModal: PopupService, private toastr: ToastrService,\r\n private routr: Router, public utility: UtilityServiceService) { }\r\n\r\n ngOnInit() {\r\n this.utility.setDirection(true);\r\n this.getRoutes();\r\n }\r\n getRoutes() {\r\n this.isLoading = true;\r\n this.routeService.getAllRoute().subscribe(data => {\r\n this.isLoading = false;\r\n this.routes = data;\r\n for (let index = 0; index < this.routes.length; index++) {\r\n let element = this.routes[index];\r\n if (element.route_type_ind == 1)\r\n element.route_type_ind = \"Standard descriptive\";\r\n if (element.route_type_ind == 3)\r\n element.route_type_ind = \"Standard with legs/places\";\r\n if (element.route_type_ind == 5)\r\n element.route_type_ind = \"Standard desc & legs\";\r\n if (element.route_type_ind == 11)\r\n element.route_type_ind = \"Carrier-defined descriptive\";\r\n if (element.route_type_ind == 13)\r\n element.route_type_ind = \"Carrier-defined with legs/places\";\r\n if (element.route_type_ind == 15)\r\n element.route_type_ind = \"Carrier-defined desc & legs\";\r\n this.routes[index] = element;\r\n }\r\n this.isEmpty = (this.routes.length == 0) ? true : false;\r\n this.utility.onSort(5);\r\n });\r\n }\r\n onConfirm(id) {\r\n\r\n this.showModal.showConfirm('Delete Standard Route', 'Are you sure you want to delete?', `You're about to delete Standard Route`, 'Yes', 'No')\r\n .subscribe((isConfirmed) => {\r\n if (isConfirmed) {\r\n this.delete(id)\r\n } else {\r\n return;\r\n }\r\n });\r\n\r\n }\r\n delete(id) {\r\n this.routeService.deleteRoutes(id).subscribe((x: any) => {\r\n //console.log(x);\r\n this.getRoutes();\r\n this.isLoading = false;\r\n this.toastr.success('Delete Route', 'Route deleted successfully');\r\n this.routr.navigateByUrl('/route/management/list');\r\n },\r\n error => {\r\n //console.log(error.error.Message)\r\n this.isLoading = false;\r\n this.toastr.error('Failed to save application. If the problem persist, please contact system administrator.', 'Save Application')\r\n // this.showModal.showError('Save Application','Failed to save application. If the problem persist, please contact system administrator.',error);\r\n return;\r\n });\r\n }\r\n\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
Manage {{this.lblHeading}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 4\" style=\"padding-left:0px;margin-left:0px;\">\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n Code\r\n \r\n \r\n Description\r\n \r\n \r\n Route Type\r\n \r\n \r\n Active?\r\n \r\n \r\n Sort Order\r\n \r\n \r\n Group\r\n \r\n Display?\r\n \r\n \r\n \r\n
{{cType.code}}{{cType.description}}{{cType.route_type_ind}}{{cType.is_active}}{{cType.sort_order}}{{cType.group_code}}{{utility.showDisplayIndicator(cType.display_ind)}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n No Standard Routes found.\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { RunCorrespondenceTasksService } from 'app/services/run-correspondence-tasks.service';\r\nimport { CompliancereturnsService } from 'app/services/compliancereturns.service';\r\n\r\n@Component({\r\n selector: 'app-run-correspondence-tasks',\r\n templateUrl: './run-correspondence-tasks.component.html',\r\n styleUrls: ['./run-correspondence-tasks.component.css']\r\n})\r\nexport class RunCorrespondenceTasksComponent implements OnInit {\r\n public lblHeading = 'Run Correspondence Tasks';\r\n\r\n public isReportVisible = false;\r\n public isExpiredReportVisible = false\r\n public isNotreturnedReportVisible = false\r\n public isFeesDueVisible = false;\r\n public isApprovedPermitsVisible = false;\r\n public isInvoicePermitsVisible: boolean = false;\r\n public isFirstComplianceReport: boolean = false;\r\n public isSecondComplianceReport: boolean = false;\r\n public isThirdComplianceReport: boolean = false;\r\n public isMonthyComplianceReturn: boolean = false;\r\n public isMonthyComplianceNew: boolean = false;\r\n\r\n public ExpiringReport: any;\r\n public ExpiredgReport: any;\r\n public NotReturnedReport: any;\r\n public FeesDueTReport: any;\r\n public ApprovedPermitsReport: any;\r\n public InvoicePermitsReport: any;\r\n public FirstComplianceReport: any;\r\n public SecondComplianceReport: any;\r\n public ThirdComplianceReport: any;\r\n public ComplianceReturnReport: any;\r\n public ComplianceReturnNewReport: any;\r\n\r\n public message = \"Processing...\";\r\n\r\n public isLoading = false;\r\n constructor(\r\n private service: RunCorrespondenceTasksService,\r\n public complianceservice: CompliancereturnsService\r\n ) { }\r\n\r\n ngOnInit() {\r\n }\r\n runExiryCheckTask() {\r\n this.isLoading = true;\r\n this.service.CreatePermitsExpiryReminder().subscribe(data => {\r\n this.isLoading = false;\r\n this.ExpiringReport = data;\r\n this.isReportVisible = true;\r\n });\r\n }\r\n runExpiredCheckTask() {\r\n this.isLoading = true;\r\n this.service.CreatePermitsExpiredReminder().subscribe(data => {\r\n this.isLoading = false;\r\n this.ExpiredgReport = data;\r\n this.isExpiredReportVisible = true;\r\n });\r\n }\r\n runNotReturnedCheckTask() {\r\n this.isLoading = true;\r\n this.service.CreatePermitsNotReturnedReminders().subscribe(data => {\r\n this.isLoading = false;\r\n this.NotReturnedReport = data;\r\n this.isNotreturnedReportVisible = true;\r\n });\r\n }\r\n runFeesDueTask() {\r\n this.isLoading = true;\r\n this.service.CreateMessagesForFeesDue().subscribe(data => {\r\n this.isLoading = false;\r\n this.FeesDueTReport = data;\r\n this.isFeesDueVisible = true;\r\n });\r\n }\r\n runApprovedPermitsTask() {\r\n this.isLoading = true;\r\n this.service.CreateApprovedPermitsNeedingConfirm().subscribe(data => {\r\n this.isLoading = false;\r\n this.ApprovedPermitsReport = data;\r\n this.isApprovedPermitsVisible = true;\r\n });\r\n }\r\n runInvoicePermitsTask() {\r\n this.isLoading = true;\r\n this.service.InvoicePermits().subscribe(data => {\r\n this.isLoading = false;\r\n this.InvoicePermitsReport = data;\r\n this.isInvoicePermitsVisible = true;\r\n });\r\n }\r\n\r\n runFirstComplianceReminder() {\r\n this.isLoading = true;\r\n this.service.FirstCompliance().subscribe(data => {\r\n this.isLoading = false;\r\n this.FirstComplianceReport = data;\r\n this.isFirstComplianceReport = true;\r\n });\r\n }\r\n\r\n runSecondComplianceReminder() {\r\n this.isLoading = true;\r\n this.service.SecondCompliance().subscribe(data => {\r\n this.isLoading = false;\r\n this.SecondComplianceReport = data;\r\n this.isSecondComplianceReport = true;\r\n });\r\n }\r\n\r\n runThirdComplianceReminder() {\r\n this.isLoading = true;\r\n this.service.ThirdCompliance().subscribe(data => {\r\n this.isLoading = false;\r\n this.ThirdComplianceReport = data;\r\n this.isThirdComplianceReport = true;\r\n });\r\n }\r\n\r\n runReturnsRecords() {\r\n this.isLoading = true;\r\n this.complianceservice.CreateComplianceLongTerm().subscribe(data => {\r\n this.isLoading = false;\r\n this.ComplianceReturnReport = data;\r\n this.isMonthyComplianceReturn = true;\r\n });\r\n }\r\n\r\n runReturnsNewRecords(){\r\n this.isLoading = true;\r\n this.complianceservice.CreateComplianceNewly().subscribe(data => {\r\n this.isLoading = false;\r\n this.ComplianceReturnNewReport = data;\r\n this.isMonthyComplianceNew = true;\r\n });\r\n }\r\n}\r\n","\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
Manage {{this.lblHeading}}
\r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n
\r\n 1. Permit expiry reminders
Create reminder messages for permits about to expire\r\n
\r\n \r\n
\r\n
\r\n
\r\n Process Report\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n
\r\n 2. Permit expired reminders
Send permit expiry notifications.\r\n
\r\n \r\n
\r\n
\r\n
\r\n Process Report\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n \r\n\r\n\r\n\r\n \r\n \r\n\r\n\r\n\r\n \r\n\r\n\r\n \r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n
\r\n 3. Permit return reminders
Send permit not returned notifications.\r\n
\r\n \r\n
\r\n
\r\n
\r\n Process Report\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n
\r\n 4. Fees due reminders
Create reminder messages for permit fees due. Will also un-submit applications where\r\n payments are overdue.\r\n
\r\n \r\n
\r\n
\r\n
\r\n Process Report\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n \r\n\r\n\r\n\r\n \r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n
\r\n 5. Fees due reminders
Create reminder messages for permit fees due. Will also un-submit applications where\r\n payments are overdue.\r\n
\r\n \r\n
\r\n
\r\n
\r\n Process Report\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n
6. Permit confirmation reminders
Create reminder messages for approved permits needing confirmation.\r\n
\r\n \r\n
\r\n
\r\n
\r\n Process Report\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n
7. reminder messages for compliance\r\n returns
First time compliance reminder for permits.\r\n
\r\n \r\n
\r\n
\r\n
\r\n Process Report\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n
8. reminder messages for compliance\r\n returns
Second time compliance reminder for permits.\r\n
\r\n \r\n
\r\n
\r\n
\r\n Process Report\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n
9. reminder messages for compliance\r\n returns
Third Time compliance reminder for permits.\r\n
\r\n \r\n
\r\n
\r\n
\r\n Process Report\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n
10. Monthly Compliance Returns Records\r\n
Create the records required to hold the data for the selected month's returns\r\n
\r\n \r\n
\r\n
\r\n
\r\n Process Report\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n
11. Compliance Returns Records for new\r\n permit
Create the records required to hold the data for the selected month's returns for newly\r\n issued permits. /td>\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n Process Report\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n \r\n\r\n\r\n\r\n \r\n \r\n\r\n \r\n\r\n\r\n \r\n\r\n\r\n \r\n\r\n\r\n \r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { RunCorrespondenceTasksService } from 'app/services/run-correspondence-tasks.service';\r\nimport { RunMaintenanceTasksService } from 'app/services/run-maintenance-tasks.service';\r\n\r\n\r\n@Component({\r\n selector: 'app-run-maintenance-tasks',\r\n templateUrl: './run-maintenance-tasks.component.html',\r\n styleUrls: ['./run-maintenance-tasks.component.css']\r\n})\r\nexport class RunMaintenanceTasksComponent implements OnInit {\r\n\r\n public lblHeading = 'Evolution Interface';\r\n public isSynchroniseReportVisible = false;\r\n\r\n public synchroniseAllAccountsReport: any;\r\n\r\n public message = \"Processing...\";\r\n\r\n public isLoading = false;\r\n InvoicePermitsReport:any;\r\n isInvoicePermitsVisible:boolean=false;\r\n constructor(private service: RunMaintenanceTasksService,private service1: RunCorrespondenceTasksService) { }\r\n\r\n ngOnInit() {\r\n\r\n }\r\n synchroniseBalance() {\r\n this.isLoading = true;\r\n this.service.synchronizeAllAccounts().subscribe(data => {\r\n this.synchroniseAllAccountsReport = data;\r\n this.isSynchroniseReportVisible = true;\r\n this.isLoading = false;\r\n });\r\n\r\n }\r\n runInvoicePermitsTask(){\r\n this.isLoading = true;\r\n this.service1.InvoicePermits().subscribe(data => {\r\n this.isLoading = false;\r\n this.InvoicePermitsReport = data;\r\n this.isInvoicePermitsVisible = true;\r\n });\r\n }\r\n}\r\n","\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
Manage {{this.lblHeading}}
\r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
1. Synchronise the balance with Evolution debtor account balance
Run the process described above
\r\n \r\n
\r\n
\r\n Process Report\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Source\r\n \r\n Description/Notes\r\n
# carrier accounts: {{synchroniseAllAccountsReport[\"CarrierAccounts\"]}}Carrier accounts that were checked.
# carriers as debtors: {{synchroniseAllAccountsReport[\"CarriersAsDebtors\"]}}Carrier accounts with matching debtor account.
# debtor accounts created: {{synchroniseAllAccountsReport[\"AccountCreated\"]}}New debtor accounts that were created.
# balance updated: {{synchroniseAllAccountsReport[\"BalanceChanged\"]}}How many iCBMS balances were updated.
# balance the same: {{synchroniseAllAccountsReport[\"BalanceNotChanged\"]}}Number where balances matched.
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
2. Create invoices for permit fees paid
Run the process described above
\r\n \r\n
\r\n
\r\n Process Report\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n \r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { PermitTypeService } from 'app/services/permit-type.service';\r\nimport { AlertComponent } from 'app/popup/alert.component';\r\nimport { FormControl, Validators, FormGroup } from '@angular/forms';\r\nimport { UtilityServiceService } from 'app/services/utility-service.service';\r\nimport { DialogService } from 'ng2-bootstrap-modal';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { StatusService } from 'app/services/status.service';\r\nimport { AuthWebService } from 'app/services/authweb.service';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\n@Component({\r\n selector: 'app-status',\r\n templateUrl: './status.component.html',\r\n styleUrls: ['./status.component.css']\r\n})\r\nexport class StatusComponent implements OnInit {\r\n\r\n form;\r\n pStatus: any = {};\r\n sub: any;\r\n lblHeading = '';\r\n btnActionLabel = '';\r\n isEdit: boolean; \r\n isCodeDup = false;\r\n isIdDup = false;\r\n selectedDisplay = 3;\r\n selectedSUI = 3;\r\n message = null;\r\n public isLoading = false;\r\n now = new Date();\r\n audit = { created: '', updated: '' };\r\n user = { LastName: '' };\r\n \r\n constructor(private statusService: StatusService, private authWebService: AuthWebService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n public utility: UtilityServiceService,private toastr:ToastrService) { }\r\n\r\n ngOnInit() {\r\n\r\n this.initForm();\r\n this.onChanges();\r\n this.user.LastName = (this.authWebService.userData) ? this.authWebService.userData.User.LastName : '';\r\n //console.log(this.authWebService.userData);\r\n this.sub = this.route.params.subscribe(params => {\r\n if (this.router.url.indexOf('edit') != -1) {\r\n this.isEdit = true;\r\n this.lblHeading = 'Edit Status';\r\n this.btnActionLabel = 'Update';\r\n const id = +params['id'];\r\n this.isLoading = true;\r\n this.statusService.getById(id).subscribe(result => {\r\n this.pStatus = result; \r\n this.isLoading = false;\r\n (this.form)\r\n .setValue({\r\n id: this.pStatus.id\r\n , code: this.pStatus.code\r\n , description: this.pStatus.description\r\n , status_use_ind: this.pStatus.status_use_ind\r\n , status_from_rule: this.pStatus.status_from_rule\r\n , status_to_rule: this.pStatus.status_to_rule\r\n , status_from: this.pStatus.status_from\r\n , status_to: this.pStatus.status_to\r\n , group_code: this.pStatus.group_code\r\n , sort_order: this.pStatus.sort_order\r\n , is_active: this.pStatus.is_active\r\n , display_ind: this.pStatus.display_ind\r\n , date_created: this.pStatus.date_created\r\n , date_modified: this.pStatus.date_modified\r\n , user_created: this.pStatus.user_created\r\n , user_modified: this.pStatus.user_modified\r\n , application: (this.pStatus.application) ? this.pStatus.application:null\r\n }, { onlySelf: true });\r\n this.audit = this.utility.setAuditAttributes(this.pStatus.date_created, this.pStatus.user_created, this.pStatus.date_modified, this.pStatus.user_modified);\r\n }); \r\n } else {\r\n this.isEdit = false;\r\n this.lblHeading = 'New Status';\r\n this.btnActionLabel = 'Save';\r\n this.audit = this.utility.setAuditAttributes(this.now, this.user.LastName, this.now, this.user.LastName); \r\n }\r\n\r\n\r\n });\r\n }\r\n\r\n\r\n initForm() {\r\n this.form = new FormGroup({\r\n id: new FormControl(this.pStatus.id, Validators.compose([Validators.required, Validators.min(1), this.checkIntegerType]))\r\n , code: new FormControl(this.pStatus.code, Validators.compose([Validators.required, Validators.maxLength(12)]))\r\n , description: new FormControl(this.pStatus.description, Validators.compose([Validators.maxLength(100)]))\r\n , status_use_ind: new FormControl(this.pStatus.status_use_ind, Validators.required)\r\n , status_from_rule: new FormControl(this.pStatus.status_from_rule, Validators.compose([Validators.maxLength(100)]))\r\n , status_to_rule: new FormControl(this.pStatus.status_to_rule, Validators.compose([Validators.maxLength(100)]))\r\n , status_from: new FormControl(this.pStatus.status_from, Validators.compose([this.checkNegative, this.checkIntegerType]))\r\n , status_to: new FormControl(this.pStatus.status_from, Validators.compose([this.checkNegative, this.checkIntegerType]))\r\n , group_code: new FormControl(this.pStatus.group_code, Validators.compose([Validators.required,Validators.maxLength(12)]))\r\n , sort_order: new FormControl(this.pStatus.sort_code, Validators.required)\r\n , is_active: new FormControl()\r\n , display_ind: new FormControl(this.pStatus.display_ind, Validators.required)\r\n , date_created: new FormControl()\r\n , date_modified: new FormControl()\r\n , user_created: new FormControl()\r\n , user_modified: new FormControl()\r\n , application: new FormControl()\r\n });\r\n this.form.patchValue(this.utility.defaults);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.sub.unsubscribe();\r\n }\r\n\r\n onSubmit(obj: any) {\r\n if (this.isCodeDup || this.isIdDup) { return; }\r\n this.pStatus = obj; \r\n this.message = (this.isEdit) ? \"Updating Status\" : \"Adding a new Status\";\r\n if (this.isEdit) {\r\n this.pStatus.date_modified = new Date().toLocaleString();\r\n this.pStatus.user_modified = this.user.LastName;\r\n this.isLoading = true; \r\n this.statusService.update(this.pStatus).subscribe(result => {\r\n this.pStatus = result;\r\n this.isLoading = false;\r\n // this.dialogService.addDialog(AlertComponent, { title: 'Update Status', message: `Status ${this.pStatus.code} updated succesfully.`, bold: `${this.pStatus.code}` });\r\n this.toastr.success(`Status ${this.pStatus.code} updated succesfully.`,'Update Status');\r\n this.navigate();\r\n }, error => {\r\n this.isLoading = false;\r\n // this.dialogService.addDialog(AlertComponent, { title: 'Update Status', message: `Status ${this.pStatus.code} was not updated succesfully.Please contact the system admin if the problem persists.`, bold: `${this.pStatus.code}` });\r\n this.toastr.error(`Status ${this.pStatus.code} was not updated succesfully.Please contact the system admin if the problem persists.`,'Update Status');\r\n });\r\n } else {\r\n this.pStatus.date_modified = this.pStatus.date_created = new Date().toLocaleString();\r\n this.pStatus.user_modified = this.pStatus.user_created = this.user.LastName; \r\n this.isLoading = true; \r\n this.statusService.add(this.pStatus).subscribe(result => {\r\n this.pStatus = result;\r\n this.isLoading = false;\r\n // this.dialogService.addDialog(AlertComponent, { title: 'New Status', message: `New Status ${this.pStatus.code} added successfully.`, bold: `${this.pStatus.code}` });\r\n this.toastr.success(`New Status ${this.pStatus.code} added successfully.`,'New Status');\r\n\r\n this.navigate();\r\n }, error => {\r\n this.isLoading = false;\r\n // this.dialogService.addDialog(AlertComponent, { title: 'New Status', message: `New Status ${this.pStatus.code} not added successfully.Please contact the system admin if the problem persists.`, bold: `${this.pStatus.code}` });\r\n this.toastr.success(`New Status ${this.pStatus.code} not added successfully.Please contact the system admin if the problem persists.`,'New Status');\r\n });\r\n }\r\n }\r\n\r\n navigate() {\r\n this.router.navigateByUrl('/status/list');\r\n }\r\n\r\n onDuplicates(control) {\r\n\r\n\r\n }\r\n\r\n onChanges(): void {\r\n this.form.get('code').valueChanges.subscribe(code => {\r\n if (code.length > 3) {\r\n this.statusService.checkByCode(code.trim()).subscribe((result:any) => {\r\n this.isCodeDup = (result.Status && !this.isEdit) ? true : false;\r\n }, error => {\r\n this.isCodeDup = false;\r\n\r\n });\r\n }\r\n });\r\n\r\n this.form.get('id').valueChanges.subscribe(id => {\r\n this.isIdDup = false;\r\n if (this.isInteger(id)) {\r\n this.statusService.checkById(id).subscribe((result:any) => {\r\n this.isIdDup = (result.Status && !this.isEdit) ? true : false;\r\n }, error => {\r\n this.isIdDup = false;\r\n });\r\n }\r\n \r\n });\r\n }\r\n\r\n\r\n\r\n onChangeValue() {\r\n\r\n }\r\n\r\n onSelectChange() {\r\n\r\n }\r\n\r\n checkNegative(control: FormControl) {\r\n let statusValue = control.value; \r\n if (statusValue<0) {\r\n return {\r\n checked: {\r\n negative: statusValue\r\n }\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n\r\n checkIntegerType(control: FormControl) {\r\n let statusValue = control.value;\r\n if (statusValue) {\r\n \r\n let intValue = /^\\d*$/.test(statusValue); \r\n if (!intValue && statusValue>0) {\r\n return {\r\n checkInt: {\r\n negative: statusValue\r\n }\r\n }\r\n }\r\n return null;\r\n }\r\n }\r\n\r\n isInteger = (num: any) => { return /^\\d*$/.test(num); }\r\n\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n
\r\n

Status: {{lblHeading}}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n Sorting And Displaying \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n
Created
\r\n
\r\n
Updated
\r\n
\r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { TransportAssocService } from 'app/services/transport-assoc.service';\r\nimport { AuthWebService } from 'app/services/authweb.service';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { DialogService } from 'ng2-bootstrap-modal';\r\nimport { UtilityServiceService } from 'app/services/utility-service.service';\r\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\r\nimport { AlertComponent } from 'app/popup/alert.component';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { SearchCountryField, TooltipLabel, CountryISO } from 'app/shared/projects/ngx-intl-tel-input/src/public_api';\r\n\r\n@Component({\r\n selector: 'app-transport-association',\r\n templateUrl: './transport-association.component.html',\r\n styleUrls: ['./transport-association.component.css']\r\n})\r\nexport class TransportAssociationComponent implements OnInit {\r\n\r\n form;\r\n transportData: any = {};\r\n sub: any;\r\n lblHeading = '';\r\n btnActionLabel = '';\r\n isEdit: boolean; \r\n isDup = false; \r\n selectedGroupCode: any = {};\r\n selectedDisplay = 3;\r\n message = null;\r\n now = new Date();\r\n audit = { created: '', updated: '' };\r\n user = { LastName: '' };\r\n mobnumPattern = /^\\+?(?:\\+?(\\d{1,3}))?[-. (]*(\\d{3})[-. )]*(\\d{3})[-. ]*(\\d{4})(?: *x(\\d+))?\\s*$/;\r\n\r\n\r\n //SADC Countries\r\nseparateDialCode = true;\r\nSearchCountryField = SearchCountryField;\r\nTooltipLabel = TooltipLabel;\r\nCountryISO = CountryISO;\r\ndefaultCountry:any = CountryISO.SouthAfrica;\r\ndefaultCountryPhone:any = CountryISO.SouthAfrica;\r\npreferredCountries: CountryISO[] = [\r\n CountryISO.Angola,\r\n CountryISO.Botswana,\r\n CountryISO.Comoros,\r\n CountryISO.CongoDRCJamhuriYaKidemokrasiaYaKongo,\r\n CountryISO.Lesotho,\r\n CountryISO.Madagascar,\r\n CountryISO.Malawi,\r\n CountryISO.Mauritius,\r\n CountryISO.Mozambique,\r\n CountryISO.Namibia,\r\n CountryISO.Seychelles,\r\n CountryISO.Swaziland,\r\n CountryISO.Zambia,\r\n CountryISO.Zimbabwe,\r\n ];\r\n\r\n\r\n \r\n public isLoading = false;\r\n\r\n constructor(private service: TransportAssocService, private authWebService: AuthWebService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n public utility: UtilityServiceService,private toastr: ToastrService) { }\r\n\r\n ngOnInit() {\r\n\r\n this.initForm(); \r\n this.onChanges();\r\n this.user.LastName = (this.authWebService.userData) ? this.authWebService.userData.User.LastName : '';\r\n this.sub = this.route.params.subscribe(params => {\r\n if (this.router.url.indexOf('edit') != -1) {\r\n this.isEdit = true;\r\n this.lblHeading = 'Edit Transport Association';\r\n this.btnActionLabel = 'Update';\r\n const id = +params['id'];\r\n this.isLoading = true;\r\n this.service.getById(id).subscribe(result => {\r\n this.transportData = result;\r\n this.isLoading = false;\r\n (this.form)\r\n .setValue({\r\n id: this.transportData.id\r\n , code: this.transportData.code\r\n , description: this.transportData.description\r\n , group_code: this.transportData.group_code\r\n , sort_order: this.transportData.sort_order\r\n , is_active: this.transportData.is_active\r\n , display_ind: this.transportData.display_ind\r\n , date_created: this.transportData.date_created\r\n , date_modified: this.transportData.date_modified\r\n , user_created: this.transportData.user_created\r\n , user_modified: this.transportData.user_modified\r\n , email: this.transportData.email\r\n , cellphone: this.transportData.cellphone\r\n , telephone: this.transportData.telephone\r\n , alternative_cellphone: this.transportData.alternative_cellphone\r\n , alternative_email: this.transportData.alternative_email\r\n //,fax:this.transportData.fax\r\n }, { onlySelf: true });\r\n this.audit = this.utility.setAuditAttributes(this.transportData.date_created, this.transportData.user_created, this.transportData.date_modified, this.transportData.user_modified);\r\n this.defaultCountry = this.transportData.iso2_cell;\r\n this.defaultCountryPhone = this.transportData.iso2_tele;\r\n });\r\n } else {\r\n this.isEdit = false;\r\n this.lblHeading = 'New Transport Association';\r\n this.btnActionLabel = 'Save';\r\n this.audit = this.utility.setAuditAttributes(this.now, this.user.LastName, this.now, this.user.LastName); \r\n }\r\n\r\n\r\n });\r\n }\r\n\r\n\r\n initForm() {\r\n this.form = new FormGroup({\r\n id: new FormControl()\r\n , code: new FormControl(this.transportData.code, Validators.compose([Validators.required, Validators.maxLength(12), Validators.pattern('[\\\\w\\-\\\\s\\\\/]+')]))\r\n , description: new FormControl(this.transportData.description,Validators.compose([Validators.required, Validators.maxLength(100)]))\r\n , group_code: new FormControl(this.transportData.group_code, Validators.compose([Validators.required, Validators.maxLength(12)]))\r\n , sort_order: new FormControl(this.transportData.sort_code)\r\n , is_active: new FormControl()\r\n , display_ind: new FormControl(this.transportData.display_ind)\r\n , date_created: new FormControl()\r\n , date_modified: new FormControl()\r\n , user_created: new FormControl()\r\n , user_modified: new FormControl()\r\n , email: new FormControl(this.transportData.email,Validators.compose([Validators.required, Validators.pattern(/^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/)]))\r\n , cellphone: new FormControl(this.transportData.cellphone,Validators.compose([Validators.required]))\r\n , telephone: new FormControl(this.transportData.telephone,Validators.compose([Validators.required]))\r\n //, fax: new FormControl(this.transportData.telephone)\r\n , alternative_cellphone: new FormControl(this.transportData.alternative_cellphone, Validators.compose([Validators.required]))\r\n , alternative_email: new FormControl(this.transportData.alternative_email, Validators.compose([Validators.pattern(/^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/)]))\r\n\r\n });\r\n this.form.patchValue(this.utility.defaults);\r\n \r\n }\r\n\r\n ngOnDestroy() {\r\n this.sub.unsubscribe();\r\n }\r\n ChangeCountry(event){\r\n //console.log(event);\r\n this.defaultCountry = event.iso2;\r\n }\r\n ChangeCountryPhone(event){\r\n this.defaultCountryPhone = event.iso2;\r\n \r\n }\r\n\r\n onSubmit(obj: any) {\r\n //console.log(obj)\r\n if (this.isDup) { return; }\r\n this.transportData = obj;\r\n this.message = (this.isEdit) ? \"Updating Transport Association...\" : \"Adding a new Transport Association...\";\r\n if (this.isEdit) {\r\n this.transportData.date_modified = new Date();\r\n this.transportData.user_modified = this.user.LastName;\r\n \r\n this.transportData.iso2_cell = this.defaultCountry;\r\n this.transportData.iso2_tele = this.defaultCountryPhone;\r\n\r\n this.transportData.dial_code_cell = obj.cellphone.dialCode\r\n this.transportData.cellphone = obj.cellphone.number\r\n this.transportData.dial_code_tele = obj.telephone.dialCode\r\n this.transportData.telephone = obj.telephone.number\r\n this.transportData.email = this.transportData.email.toLowerCase();\r\n this.transportData.alternative_email = this.transportData.alternative_email.toLowerCase();\r\n //console.log(this.transportData);\r\n\r\n\r\n\r\n\r\n this.isLoading = true;\r\n this.service.update(this.transportData).subscribe(result => {\r\n this.transportData = result;\r\n this.isLoading = false;\r\n // this.dialogService.addDialog(AlertComponent, { title: 'UpdateTransport Association', message: `Transport Association ${this.transportData.code} updated succesfully.`, bold: `${this.transportData.code}` });\r\n this.toastr.success(`Transport Association ${this.transportData.code} updated succesfully.`,'UpdateTransport Association');\r\n this.navigate();\r\n }, error => {\r\n this.isLoading = false;\r\n // this.dialogService.addDialog(AlertComponent, { title: `Transport Association`, message: `Failed to update Transport Association with ${this.transportData.code}.Please contact the system administrator if the problem persists.`, bold: `${this.transportData.code}` });\r\n this.toastr.error(`Failed to update Transport Association with ${this.transportData.code}.Please contact the system administrator if the problem persists.`,'UpdateTransport Association')\r\n\r\n });\r\n } else {\r\n this.transportData.date_modified = this.transportData.date_created = new Date();\r\n this.transportData.user_modified = this.transportData.user_created = this.user.LastName;\r\n this.transportData.iso2_cell = this.defaultCountry;\r\n this.transportData.iso2_tele = this.defaultCountryPhone;\r\n \r\n this.transportData.dial_code_cell = obj.cellphone.dialCode\r\n this.transportData.cellphone = obj.cellphone.number\r\n this.transportData.dial_code_tele = obj.telephone.dialCode\r\n this.transportData.telephone = obj.telephone.number\r\n this.transportData.email = this.transportData.email.toLowerCase();\r\n this.transportData.alternative_email = this.transportData.alternative_email.toLowerCase();\r\n \r\n //console.log(this.transportData);\r\n\r\n this.isLoading = true; \r\n this.service.add(this.transportData).subscribe(result => {\r\n this.transportData = result;\r\n this.isLoading = false;\r\n // this.dialogService.addDialog(AlertComponent, { title: 'New Transport Association', message: `New Transport Association ${this.transportData.code} added successfully.`, bold: `${this.transportData.code}` });\r\n this.toastr.success(`New Transport Association ${this.transportData.code} added successfully.`,'New Transport Association');\r\n this.navigate();\r\n }, error => {\r\n this.isLoading = false;\r\n // this.dialogService.addDialog(AlertComponent, { title: `New Transport Association`, message: `Failed to add Transport Association with ${this.transportData.code}.Please contact the system administrator if the problem persists.`, bold: `${this.transportData.code}` });\r\n this.toastr.error(`Failed to add Transport Association with ${this.transportData.code}.Please contact the system administrator if the problem persists.`,'New Transport Association');\r\n\r\n });\r\n }\r\n }\r\n\r\n navigate() {\r\n this.router.navigateByUrl('/transport/association/list');\r\n }\r\n\r\n\r\n\r\n onChanges(): void {\r\n this.form.get('code').valueChanges.subscribe(code => {\r\n\r\n if (code.length > 3) {\r\n this.service.checkByCode(code.trim()).subscribe((result:any) => {\r\n this.isDup = (result.Status && !this.isEdit) ? true : false;\r\n }, error => {\r\n this.isDup = false;\r\n\r\n });\r\n }\r\n });\r\n }\r\n\r\n onSelectChange() {\r\n console.dir(this.selectedDisplay);\r\n }\r\n\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n
\r\n

Transport Association:\r\n {{lblHeading}}

\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n

*Invalid

\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n

*Required

\r\n

*Invalid Email Address!

\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n

*Invalid alternative email address!

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n Sorting And Displaying\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
Created
\r\n
\r\n
Updated
\r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { AlertComponent } from 'app/popup/alert.component';\r\nimport { FormControl, Validators, FormGroup } from '@angular/forms';\r\nimport { DialogService } from 'ng2-bootstrap-modal';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { VehicleMakeService } from 'app/services/vehicle-make.service';\r\nimport { UtilityServiceService } from 'app/services/utility-service.service';\r\nimport { AuthWebService } from 'app/services/authweb.service';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\n@Component({\r\n selector: 'app-vehicle-make',\r\n templateUrl: './vehicle-make.component.html',\r\n styleUrls: ['./vehicle-make.component.css']\r\n})\r\nexport class VehicleMakeComponent implements OnInit {\r\n\r\n form;\r\n vMake: any = {};\r\n sub: any;\r\n lblHeading = '';\r\n btnActionLabel = '';\r\n isEdit: boolean; \r\n isDup = false; \r\n selectedGroupCode: any = {};\r\n selectedDisplay = 3;\r\n message = null;\r\n now = new Date();\r\n audit = { created: '', updated: '' };\r\n user = { LastName: '' };\r\n \r\n public isLoading = false;\r\n\r\n constructor(private service: VehicleMakeService, private authWebService: AuthWebService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n public utility: UtilityServiceService,private toastr:ToastrService) { }\r\n\r\n ngOnInit() {\r\n\r\n this.initForm(); \r\n this.onChanges();\r\n this.user.LastName = (this.authWebService.userData) ? this.authWebService.userData.User.LastName : '';\r\n this.sub = this.route.params.subscribe(params => {\r\n if (this.router.url.indexOf('edit') != -1) {\r\n this.isEdit = true;\r\n this.lblHeading = 'Edit Vehicle Make';\r\n this.btnActionLabel = 'Update';\r\n const id = +params['id'];\r\n this.isLoading = true;\r\n this.service.getById(id).subscribe(result => {\r\n this.vMake = result;\r\n this.isLoading = false;\r\n (this.form)\r\n .setValue({\r\n id: this.vMake.id\r\n , code: this.vMake.code\r\n , description: this.vMake.description\r\n , group_code: this.vMake.group_code\r\n , sort_order: this.vMake.sort_order\r\n , is_active: this.vMake.is_active\r\n , display_ind: this.vMake.display_ind\r\n , date_created: this.vMake.date_created\r\n , date_modified: this.vMake.date_modified\r\n , user_created: this.vMake.user_created\r\n , user_modified: this.vMake.user_modified\r\n , vehicle: (this.vMake.vehicle) ? this.vMake.vehicle:null\r\n }, { onlySelf: true });\r\n this.audit = this.utility.setAuditAttributes(this.vMake.date_created, this.vMake.user_created, this.vMake.date_modified, this.vMake.user_modified);\r\n });\r\n } else {\r\n this.isEdit = false;\r\n this.lblHeading = 'New Vehicle Make';\r\n this.btnActionLabel = 'Save';\r\n this.audit = this.utility.setAuditAttributes(this.now, this.user.LastName, this.now, this.user.LastName); \r\n }\r\n\r\n\r\n });\r\n }\r\n\r\n\r\n initForm() {\r\n this.form = new FormGroup({\r\n id: new FormControl()\r\n , code: new FormControl(this.vMake.code, Validators.compose([Validators.required, Validators.maxLength(12), Validators.pattern('[\\\\w\\-\\\\s\\\\/]+')]))\r\n , description: new FormControl(this.vMake.description, Validators.maxLength(100))\r\n , group_code: new FormControl(this.vMake.group_code, Validators.compose([Validators.required, Validators.maxLength(12)]))\r\n , sort_order: new FormControl(this.vMake.sort_code)\r\n , is_active: new FormControl()\r\n , display_ind: new FormControl(this.vMake.display_ind)\r\n , date_created: new FormControl()\r\n , date_modified: new FormControl()\r\n , user_created: new FormControl()\r\n , user_modified: new FormControl()\r\n , vehicle: new FormControl()\r\n });\r\n this.form.patchValue(this.utility.defaults);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.sub.unsubscribe();\r\n }\r\n\r\n onSubmit(obj: any) {\r\n if (this.isDup) { return; }\r\n this.vMake = obj;\r\n this.message = (this.isEdit) ? \"Updating Vehicle make...\" : \"Adding a new Vehicle Make...\";\r\n if (this.isEdit) {\r\n this.vMake.date_modified = new Date().toLocaleString();\r\n this.vMake.user_modified = this.user.LastName;\r\n this.isLoading = true;\r\n //console.log(JSON.stringify(obj));\r\n this.service.update(this.vMake).subscribe(result => {\r\n this.vMake = result;\r\n this.isLoading = false;\r\n // this.dialogService.addDialog(AlertComponent, { title: 'Update Vehicle Make', message: `Vehicle Make ${this.vMake.code} updated succesfully.`, bold: `${this.vMake.code}` });\r\n this.toastr.success(`Vehicle Make ${this.vMake.code} updated succesfully.`,'Update Vehicle Make');\r\n this.navigate();\r\n }, error => {\r\n this.isLoading = false;\r\n // this.dialogService.addDialog(AlertComponent, { title: `Update Vehicle Make`, message: `Failed to update Vehicle Make with ${this.vMake.code}.Please contact the system administrator if the problem persists.`, bold: `${this.vMake.code}` });\r\n this.toastr.error(`Failed to update Vehicle Make with ${this.vMake.code}.Please contact the system administrator if the problem persists.`,'Update Vehicle Make');\r\n });\r\n } else {\r\n this.vMake.date_modified = this.vMake.date_created = new Date().toLocaleString();\r\n this.vMake.user_modified = this.vMake.user_created = this.user.LastName;\r\n\r\n this.isLoading = true; \r\n this.service.add(this.vMake).subscribe(result => {\r\n this.vMake = result;\r\n this.isLoading = false;\r\n // this.dialogService.addDialog(AlertComponent, { title: 'New Vehicle Make', message: `New Vehicle Make ${this.vMake.code} added successfully.`, bold: `${this.vMake.code}` });\r\n this.toastr.success(`New Vehicle Make ${this.vMake.code} added successfully.`,'New Vehicle Make');\r\n this.navigate();\r\n }, error => {\r\n this.isLoading = false;\r\n // this.dialogService.addDialog(AlertComponent, { title: `New Vehicle Make`, message: `Failed to add New Vehicle Make with ${this.vMake.code}.Please contact the system administrator if the problem persists.`, bold: `${this.vMake.code}` });\r\n this.toastr.error(`Failed to add New Vehicle Make with ${this.vMake.code}.Please contact the system administrator if the problem persists.`,'New Vehicle Make');\r\n\r\n });\r\n }\r\n }\r\n\r\n navigate() {\r\n this.router.navigateByUrl('/vehicle/make/list');\r\n }\r\n\r\n onDuplicates(control) {\r\n\r\n\r\n }\r\n\r\n onChanges(): void {\r\n this.form.get('code').valueChanges.subscribe(code => {\r\n\r\n if (code.length > 3) {\r\n this.service.checkByCode(code.trim()).subscribe((result:any) => {\r\n this.isDup = (result.Status && !this.isEdit) ? true : false;\r\n }, error => {\r\n this.isDup = false;\r\n\r\n });\r\n }\r\n });\r\n }\r\n\r\n\r\n\r\n onChangeValue() {\r\n \r\n }\r\n\r\n onSelectChange() {\r\n console.dir(this.selectedDisplay);\r\n }\r\n\r\n\r\n\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
Vehicle Make {{lblHeading}}
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n Sorting And Displaying \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n
\r\n
\r\n
Created
\r\n
\r\n
Updated
\r\n
\r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { FormGroup, FormControl, Validators } from '@angular/forms'\r\n\r\n//Popup Components\r\nimport { AlertComponent } from '../../popup/alert.component';\r\nimport { DialogService } from 'ng2-bootstrap-modal';\r\nimport { VehicleTypeService } from 'app/services/vehicle-type.service';\r\nimport { UtilityServiceService } from 'app/services/utility-service.service';\r\nimport { AuthWebService } from 'app/services/authweb.service';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\n@Component({\r\n selector: 'app-vehicle-type',\r\n templateUrl: './vehicle-type.component.html',\r\n styleUrls: ['./vehicle-type.component.css']\r\n})\r\nexport class VehicleTypeComponent implements OnInit {\r\n form;\r\n vType: any = {};\r\n sub: any;\r\n lblHeading = '';\r\n btnActionLabel = '';\r\n isEdit: boolean; \r\n isDup = false; \r\n selectedDisplay = 3;\r\n message = null;\r\n now = new Date();\r\n audit = { created: '', updated: '' };\r\n user = { LastName: '' };\r\n \r\n public isLoading = false;\r\n\r\n constructor(private service: VehicleTypeService, private authWebService: AuthWebService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n public utility: UtilityServiceService,private toastr:ToastrService) { }\r\n\r\n ngOnInit() {\r\n\r\n this.initForm();\r\n this.onChanges();\r\n this.user.LastName = (this.authWebService.userData) ? this.authWebService.userData.User.LastName : '';\r\n this.sub = this.route.params.subscribe(params => {\r\n if (this.router.url.indexOf('edit') != -1) {\r\n this.isEdit = true;\r\n this.lblHeading = 'Edit Vehicle Type';\r\n this.btnActionLabel = 'Update';\r\n const id = +params['id'];\r\n this.isLoading = true;\r\n this.service.getById(id).subscribe(result => {\r\n this.vType = result;\r\n this.isLoading = false;\r\n (this.form)\r\n .setValue({\r\n id: this.vType.id\r\n , code: this.vType.code\r\n , description: this.vType.description\r\n , passengers: this.vType.passengers\r\n , passengers_min: this.vType.passengers_min\r\n , passengers_max: this.vType.passengers_max\r\n , group_code: this.vType.group_code\r\n , sort_order: this.vType.sort_order\r\n , is_active: this.vType.is_active\r\n , display_ind: this.vType.display_ind\r\n , date_created: this.vType.date_created\r\n , date_modified: this.vType.date_modified\r\n , user_created: this.vType.user_created\r\n , user_modified: this.vType.user_modified\r\n , vehicle: (this.vType.vehicle) ? this.vType.vehicle:null\r\n }, { onlySelf: true });\r\n this.audit = this.utility.setAuditAttributes(this.vType.date_created, this.vType.user_created, this.vType.date_modified, this.vType.user_modified);\r\n });\r\n } else {\r\n this.isEdit = false;\r\n this.lblHeading = 'Add New';\r\n this.btnActionLabel = 'Save';\r\n this.audit = this.utility.setAuditAttributes(this.now, this.user.LastName, this.now, this.user.LastName); \r\n }\r\n });\r\n }\r\n\r\n\r\n initForm() {\r\n this.form = new FormGroup({\r\n id: new FormControl()\r\n , code: new FormControl(this.vType.code, Validators.compose([Validators.required, Validators.maxLength(12), Validators.pattern('[\\\\w\\-\\\\s\\\\/]+')]))\r\n , description: new FormControl(this.vType.description, Validators.maxLength(100))\r\n , passengers: new FormControl(this.vType.passengers, Validators.compose([Validators.maxLength(50)]))\r\n , passengers_min: new FormControl(this.vType.passengers_min, Validators.compose([Validators.min(1), Validators.max(100)]))\r\n , passengers_max: new FormControl(this.vType.passengers_max, Validators.compose([Validators.min(1), Validators.max(200)]))\r\n , group_code: new FormControl(this.vType.group_code, Validators.compose([Validators.required, Validators.maxLength(12)]))\r\n , sort_order: new FormControl(this.vType.sort_code, Validators.required)\r\n , is_active: new FormControl()\r\n , display_ind: new FormControl(this.vType.display_ind, Validators.required)\r\n , date_created: new FormControl()\r\n , date_modified: new FormControl()\r\n , user_created: new FormControl()\r\n , user_modified: new FormControl()\r\n , vehicle: new FormControl()\r\n });\r\n this.form.patchValue(this.utility.defaults);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.sub.unsubscribe();\r\n }\r\n\r\n onSubmit(obj: any) { \r\n if (this.isDup) { return; }\r\n this.vType = obj;\r\n this.message = (this.isEdit) ? \"Updating Vehicle Type...\" : \"Adding a new Vehicle Type...\";\r\n if (this.isEdit) {\r\n this.vType.date_modified = new Date().toLocaleString();\r\n this.vType.user_modified = this.user.LastName;\r\n this.isLoading = true;\r\n //console.log(JSON.stringify(obj));\r\n this.service.update(this.vType).subscribe(result => {\r\n this.vType = result;\r\n this.isLoading = false;\r\n //this.dialogService.addDialog(AlertComponent, { title: 'Update Vehicle Type', message: `Vehicle Type ${this.vType.code} updated succesfully.`, bold: `${this.vType.code}` });\r\n this.toastr.success(`Vehicle Type ${this.vType.code} updated succesfully.`,'Update Vehicle Type');\r\n this.navigate();\r\n }, error => {\r\n this.isLoading = false;\r\n // this.dialogService.addDialog(AlertComponent, { title: `Update Vehicle Type`, message: `Failed to update Vehicle Type with ${this.vType.code}.Please contact the system administrator if the problem persists.`, bold: `${this.vType.code}` });\r\n this.toastr.error(`Failed to update Vehicle Type with ${this.vType.code}.Please contact the system administrator if the problem persists.`,'Update Vehicle Type');\r\n });\r\n } else {\r\n this.vType.date_modified = this.vType.date_created = new Date().toLocaleString();\r\n this.vType.user_modified = this.vType.user_created = this.user.LastName;\r\n\r\n this.isLoading = true;\r\n //console.log(JSON.parse(JSON.stringify(obj)));\r\n console.dir(this.vType);\r\n this.service.add(this.vType).subscribe(result => {\r\n this.vType = result;\r\n this.isLoading = false;\r\n // this.dialogService.addDialog(AlertComponent, { title: 'New Vehicle Type', message: `New Vehicle Type ${this.vType.code} added successfully.`, bold: `${this.vType.code}` });\r\n this.toastr.success(`New Vehicle Type ${this.vType.code} added successfully.`,'New Vehicle Type');\r\n this.navigate();\r\n }, error => {\r\n this.isLoading = false;\r\n // this.dialogService.addDialog(AlertComponent, { title: `New Vehicle Type`, message: `Failed to add New Vehicle Type with ${this.vType.code}.Please contact the system administrator if the problem persists.`, bold: `${this.vType.code}` });\r\n this.toastr.error(`Failed to add New Vehicle Type with ${this.vType.code}.Please contact the system administrator if the problem persists.`,'New Vehicle Type');\r\n });\r\n }\r\n }\r\n\r\n navigate() {\r\n this.router.navigateByUrl('/vehicle/type/list');\r\n }\r\n\r\n onDuplicates(control) {\r\n\r\n\r\n }\r\n\r\n onChanges(): void {\r\n this.form.get('code').valueChanges.subscribe(code => {\r\n\r\n if (code.length > 3) {\r\n this.service.checkByCode(code.trim()).subscribe((result:any) => {\r\n this.isDup = (result.Status && !this.isEdit) ? true : false;\r\n }, error => {\r\n this.isDup = false;\r\n\r\n });\r\n }\r\n }); \r\n }\r\n \r\n onChangeValue() {\r\n \r\n }\r\n\r\n onSelectChange() {\r\n\r\n }\r\n \r\n\r\n\r\n\r\n\r\n}\r\n","
\r\n
\r\n
\r\n
Vehicle Type {{lblHeading}}
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n\r\n \r\n\r\n \r\n
\r\n
\r\n Sorting And Displaying \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n
Created
\r\n
\r\n
Updated
\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { PermitService } from 'app/services/permit.service';\r\nimport { UtilityServiceService } from 'app/services/utility-service.service';\r\nimport { ApplicationService } from 'app/services/application.service';\r\nimport { StatusService } from 'app/services/status.service';\r\nimport { PermitTypeService } from 'app/services/permit-type.service';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\n@Component({\r\n selector: 'app-view-permit',\r\n templateUrl: './view-permit.component.html',\r\n styleUrls: ['./view-permit.component.css']\r\n})\r\nexport class ViewPermitComponent implements OnInit {\r\n permits: any = [];\r\ngridload:boolean;\r\npageSize: number = 10;\r\npageSizeMax: number = 2147483647; // C# Int32.MaxValue\r\npageNumber: number = 1;\r\nCount: number = 0;\r\ntypes\r\nisEmpty: boolean = false;\r\nstatusesFilter: any = [];\r\nselectedItems: any = [];\r\ndropdownSettings: any = {};\r\nShowFilter = false;\r\n\r\nmessage = \"Processing your request...\";\r\n\r\nactiveItems: any = [];\r\nactiveSettings: any = {};\r\nactiveShowFilter = false;\r\nactives = [\r\n { id:1, text: 'Active' },\r\n { id:0, text: 'Inactive' },\r\n];\r\ncategory = [\r\n { id:1, text: 'Select permit type' }\r\n];\r\n\r\ncarrierName:any = null;\r\ndateFrom:any;\r\ndateTo:any;\r\nstatus:any;\r\nisActive:any;\r\npermit_type:any = null;\r\npermit_num:any = null;\r\nvehicle_num:any = null;\r\nstatuses:any = [];\r\nisActives:any;\r\ndate = new Date;\r\ndate1 = new Date;\r\n\r\nformattedDate\r\n constructor(private permitService:PermitService,public utility:UtilityServiceService,\r\n private applicationService:ApplicationService,private statusSerevice:StatusService,\r\n private permitTypService:PermitTypeService, private toaster:ToastrService,) { }\r\n\r\n ngOnInit() {\r\n //this.date.setMonth(this.date.getMonth()-1);\r\n this.date1.setMonth(this.date1.getMonth()+1-1)\r\n //console.log(this.date1.setMonth(this.date1.getMonth()-1));\r\n this.formattedDate = this.date1.toISOString().slice(0,10);\r\n //console.log(this.date1.toISOString().slice(0,10))\r\n\r\n // this.getAppPermits();\r\n this.getStatus();\r\n this.InitMultiselect();\r\n this.getPermitTypes();\r\n this.InitActiveMultiselect();\r\n // this.initializeDates();\r\n }\r\n initializeDates() {\r\n //if (this.dateFrom == \"\" || this.dateTo == \"\") {\r\n let g = new Date();\r\n g.setDate(g.getDate() - 90);\r\n\r\n let mm = (g.getMonth() + 1).toString();\r\n if (mm.length == 1) {\r\n mm = \"0\" + mm;\r\n }\r\n let dd = (g.getDate()).toString();\r\n if (dd.length == 1)\r\n dd = \"0\" + dd;\r\n\r\n this.dateFrom = g.getFullYear().toString() + \"-\" + mm + \"-\" + dd;\r\n\r\n let m = (new Date().getMonth() + 1).toString();\r\n if (m.length == 1)\r\n m = \"0\" + m;\r\n let d = (new Date().getDate()).toString();\r\n if (d.length == 1)\r\n d = \"0\" + d;\r\n this.dateTo = new Date().getFullYear() + \"-\" + m + \"-\" + d;\r\n //}\r\n }\r\n\r\n getStatus(){\r\n this.statusSerevice.getAll().subscribe(x =>{\r\n //console.log(x);\r\n this.statusesFilter = x;\r\n })\r\n }\r\n getPermitTypes(){\r\n this.permitTypService.getAll().subscribe(x =>{\r\n //console.log(x);\r\n this.types = x;\r\n })\r\n }\r\n InitMultiselect() {\r\n this.dropdownSettings = {\r\n singleSelection: false,\r\n idField: 'id',\r\n textField: 'description',\r\n selectAllText: 'Select All',\r\n unSelectAllText: 'UnSelect All',\r\n itemsShowLimit: 10,\r\n allowSearchFilter: this.ShowFilter,\r\n maxHeight: 120,\r\n closeDropDownOnSelection: false\r\n };\r\n }\r\n InitActiveMultiselect() {\r\n this.activeSettings = {\r\n singleSelection: false,\r\n idField: 'id',\r\n textField: 'text',\r\n selectAllText: 'Select All',\r\n unSelectAllText: 'UnSelect All',\r\n itemsShowLimit: 10,\r\n allowSearchFilter: this.activeShowFilter,\r\n maxHeight: 120,\r\n closeDropDownOnSelection: false\r\n };\r\n }\r\n onItemSelect(item: any) { \r\n this.statuses.push(item.id)\r\n }\r\n onDeSelect(item: any) { \r\n this.statuses.forEach((element,index) => {\r\n if(element == item.id){\r\n this.statuses.splice(index,1);\r\n\r\n }\r\n }); \r\n\r\n }\r\n \r\n onSelectAll(items: any) { \r\n //console.log(items)\r\n this.statuses = [];\r\n items.forEach(item => {\r\n this.statuses.push(item.id);\r\n });\r\n // this.statuses = items \r\n }\r\n onActiveItemSelect(item: any){\r\n //console.log(item)\r\n this.isActive = item.id\r\n }\r\n onActiveSelectAll(items: any){\r\n this.isActives = items;\r\n }\r\n onActiveDeSelect(items: any){\r\n\r\n }\r\n\r\n reset(){\r\n location.reload();\r\n }\r\n\r\n checkKey(event){\r\n const charCode = (event.which) ? event.which : event.keyCode;\r\n if (charCode == 13) {\r\n this.onSearch();\r\n return;\r\n }\r\n }\r\n\r\n onSearch(){\r\n if(this.dateFrom !== undefined && this.dateTo === undefined){\r\n return this.toaster.warning('Expiry Date To is required!','Expiry Date');\r\n }\r\n if(this.dateTo !== undefined && this.dateFrom === undefined){\r\n return this.toaster.warning('Expiry Date From is required!','Expiry Date');\r\n }\r\n if(this.carrierName === \"\"){\r\n this.carrierName = null;\r\n }\r\n if(this.permit_num === \"\"){\r\n this.permit_num = null;\r\n }\r\n if(this.vehicle_num === \"\"){\r\n this.vehicle_num = null;\r\n }\r\n \r\n let object = {\r\n carrierName:this.carrierName,\r\n dateFrom:this.dateFrom,\r\n dateTo:this.dateTo,\r\n status:this.status,\r\n isActive:this.isActive,\r\n permit_type:this.permit_type,\r\n permit_num:this.permit_num,\r\n vehicle_num:this.vehicle_num,\r\n statuses: this.statuses,\r\n isActives:this.isActives,\r\n pageSize: this.pageSize,\r\n pageNumber:this.pageNumber\r\n\r\n }\r\n //console.log(object);\r\n //postAllAppPermits\r\n this.gridload = true;\r\n this.applicationService.postAllAppPermits(object).subscribe((x:any) =>{\r\n if(x ==null){\r\n this.permits =[];\r\n this.Count = 0;\r\n this.gridload =false;\r\n return\r\n }\r\n this.permits = x.Items\r\n //alert(JSON.stringify(this.permits));\r\n //console.log(this.permits);\r\n this.Count = x.Count;\r\n \r\n this.gridload =false;\r\n },error =>{\r\n this.gridload =false;\r\n\r\n });\r\n }\r\n\r\n getAppPermits(){\r\n this.gridload =true;\r\n this.applicationService.getAllAppPermits().subscribe((x:any) =>{ \r\n this.permits = x.Items\r\n this.Count = x.Count; \r\n this.gridload =false;\r\n }); \r\n }\r\n pageSizeChange(){\r\n this.onSearch();\r\n }\r\n pageSizes() {\r\n\t\treturn [5, 10, 25, 50, 100, 500, this.pageSizeMax];\r\n }\r\n onPage(page){\r\n this.pageNumber = page\r\n this.onSearch();\r\n return page;\r\n }\r\n pageSizeName(value) {\r\n\t\tif (value === this.pageSizeMax) return 'All';\r\n\t\treturn value;\r\n\t}\r\n\r\n}\r\n","
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
 Permit Enquiry\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n\r\n
\r\n Filters\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Permit type:\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n
\r\n
\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Account NumberPermit NumberTypeStartEndStatusVehicle TypeRegistration No
\r\n {{item.AccountNumber}} \r\n \r\n \r\n \r\n
\r\n \r\n {{item.PermitType}}\r\n \r\n
\r\n
\r\n
\r\n {{perm.date_valid_from | date:'dd/MM/yyyy'}}\r\n
\r\n
 \r\n
\r\n {{perm.date_valid_to | date:'dd/MM/yyyy'}}\r\n
\r\n
{{item.status}}\r\n
\r\n {{perm.vehicle_type}}\r\n
\r\n
\r\n
\r\n {{perm.vehicle_reg_num}}\r\n
\r\n
\r\n

Use your mouse to hover over a code to see the description

\r\n
= 5\">\r\n \r\n \r\n \r\n \r\n \r\n
\r\n Show :\r\n \r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n No permits found.\r\n \r\n \r\n\r\n \r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\n\r\n\r\n//import { PreBootService } from '../services/preboot.service'\r\nimport { NavigationService } from '../services/navigation.service'\r\n\r\nimport { environment } from '../../environments/environment';\r\n\r\nimport { AuthenticationService } from '../services/authentication.service'\r\nimport { MenuService } from '../services/menu.service'\r\nimport { AuthWebService } from 'app/services/authweb.service';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n@Component ({\r\n selector: 'app-menu',\r\n templateUrl: 'menu.component.html',\r\n styleUrls: ['menu.component.css'],\r\n providers: []\r\n})\r\nexport class MenuComponent implements OnInit {\r\n\r\n public ParentItems : any = [];\r\n public ChildItems: any = [];\r\n public hasAdmin: boolean;\r\n \r\n private subMenuCache: any = {};\r\n //public authentication;\r\n public loggedInUser;\r\n public UserData: any = [];\r\n\r\n\r\n constructor(public authentication: AuthWebService,\r\n private navService: NavigationService, \r\n private auth: AuthenticationService, \r\n private menu: MenuService,\r\n private router: Router,\r\n private http: HttpClient ) {\r\n\r\n // this.authentication = auth;\r\n \r\n this.UserData = environment.authWebApi.userData;\r\n console.log(this.UserData);\r\n if(this.UserData != null){\r\n this.sortMenu(this.UserData)\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n \r\n }\r\n\r\n hasChildren(parent){\r\n\r\n if(this.ChildItems.some(x => x.MainMenuID === parent.ID))\r\n return true\r\n }\r\n\r\n\r\n sortMenu(data){ \r\n\r\n if(data.MainMenus.length > 0){\r\n\r\n let count = data.MainMenus.length;\r\n\r\n for (let i = 0; i < count; i++) {\r\n\r\n this.ParentItems.push(data.MainMenus[i])\r\n }\r\n \r\n let Ccount = data.SubMenus.length; \r\n \r\n for (let i = 0; i < Ccount; i++) {\r\n \r\n if(data.SubMenus[i].MenuItemYN == true)\r\n {\r\n this.ChildItems.push(data.SubMenus[i])\r\n }\r\n }\r\n \r\n }\r\n \r\n }\r\n\r\n\r\n subMenus(mainMenu) {\r\n\r\n // data.forEach(element => {\r\n // if(element.CODE == 'ADMIN'){\r\n // this.hasAdmin = true;\r\n // }\r\n // });\r\n \r\n ////console.log(mainMenu)\r\n\r\n if (!this.hasAdmin) {\r\n if (mainMenu.Code == \"ADMIN\") {\r\n this.hasAdmin = true;\r\n }\r\n }\r\n\r\n \r\n\r\n if (typeof this.subMenuCache[mainMenu.ID] !== 'undefined') {\r\n return this.subMenuCache[mainMenu.ID];\r\n }\r\n\r\n if (this.authentication.userData && this.authentication.userData.SubMenus) {\r\n return this.subMenuCache[mainMenu.ID] = this.authentication.userData.SubMenus.filter((sm) => sm.MenuItemYN && sm.MainMenuID === mainMenu.ID);\r\n } else {\r\n return this.subMenuCache[mainMenu.ID] = [];\r\n }\r\n }\r\n\r\n pathFromScreenName(screenName: string) {\r\n let leftSideOfQuestionMark = (screenName + '').split('?', 2)[0];\r\n return leftSideOfQuestionMark;\r\n }\r\n\r\n queryParamsFromScreenName(screenName: string) {\r\n\r\n let result = {};\r\n let rightSideOfQuestionMark = (screenName + '').split('?', 2)[1];\r\n let parameters = (rightSideOfQuestionMark + '').split('&');\r\n\r\n for (let parameter of parameters) {\r\n let tokens = parameter.split('=', 2);\r\n result[tokens[0]] = tokens[1];\r\n }\r\n\r\n return result;\r\n }\r\n\r\n navAuthWeb(){\r\n const url = environment.authWebApi.client;\r\n window.open(url);\r\n }\r\n navSharePoint(){\r\n //console.log(this.UserData)\r\n const url = environment.authWebApi.client;\r\n window.open(url);\r\n }\r\n}\r\n\r\n","
\r\n
\r\n \"iCBMS\"\r\n
\r\n
\r\n
\r\n
\r\n

\r\n Contact us: +27 (0)12 471 2121 | customercare@cbrta.co.za
Mondays 9am to 4pm; Tuesdays to Fridays 7:30am to 4pm.\r\n

\r\n
\r\n
\r\n \r\n
\r\n
\r\n","export class Socialusers {\r\n provider: string | undefined;\r\n id: string | undefined;\r\n email: string | undefined;\r\n name: string | undefined;\r\n photoUrl: string | undefined;\r\n token?: string;\r\n idToken?: string;\r\n }\r\n ","import { Component, OnInit } from '@angular/core';\r\nimport { Router, ActivatedRoute, Params } from '@angular/router';\r\nimport { CarrierService } from 'app/services/carrier.service';\r\nimport { CurrencyFormat } from 'app/pipes/currencyFormat.pipe';\r\nimport { PopupService } from 'app/services/shared/popup.service';\r\nimport { AuthWebService } from 'app/services/authweb.service';\r\nimport { accounting } from 'accounting';\r\nimport { PermitService } from 'app/services/permit.service';\r\nimport { ApplicationService } from 'app/services/application.service';\r\nimport { StatusService } from 'app/services/status.service';\r\nimport { RouteService } from 'app/services/route.service';\r\nimport { UtilityServiceService } from 'app/services/utility-service.service';\r\nimport { environment } from 'environments/environment';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { StorageService } from 'app/services/storage.service';\r\nimport { VehicleTypeService } from 'app/services/vehicle-type.service';\r\nimport { ConfirmDialogService } from 'app/services/shared/confirm-dialog/confirm-dialog.service';\r\nimport { data } from 'jquery';\r\nimport { PermitTypeService } from 'app/services/permit-type.service';\r\n\r\ndeclare var $;\r\n\r\n@Component({\r\n selector: 'app-permit-list-application',\r\n templateUrl: './permit-list-application.component.html',\r\n styleUrls: ['./permit-list-application.component.css'],\r\n providers: [CurrencyFormat, RouteService]\r\n})\r\nexport class PermitListApplicationComponent implements OnInit {\r\n dataCntrl: any = { carrierID: -1, carrier: {}, applications: [], applicationtype: {}, vehicles: [], applicationId: -1 };\r\n pageSize: number = 10;\r\n pageSizeMax: number = 2147483647; // C# Int32.MaxValue\r\n pageNumber: number = 1;\r\n Count: number = 0;\r\n pageload: boolean;\r\n gridload: boolean = false;\r\n direction = false;\r\n user\r\n acc: any = { link_person: '', status: '' };\r\n application: any;\r\n status: any = \"\";\r\n statuses: any = [];\r\n routes: any = [];\r\n vehTypes: any = {};\r\n statusesFilter: any = [];\r\n selectedItems: any = [];\r\n selectedPermitTypes: any = [];\r\n dropdownSettings: any = {};\r\n ShowFilter = false;\r\n keyword: any = {};\r\n permitNumber: String;\r\n\r\n carrierNumber: string;\r\n routeName: string;\r\n flags = { flagAN: 1, flagNM: 1, flagLU: 1, flagCT: 1, flagAP: 1, flagPT: 1, flagST: 1, flagDS: 1 };\r\n ranks = { flagAN: 1, flagNM: 2, flagLU: 3, flagCT: 4, flagAP: 5, flagPT: 6, flagST: 7, flagDS: 8 };\r\n sortLabels = { flagAN: \"AccountNumber\", flagNM: \"Name\", flagLU: \"LeadUser\", flagCT: \"CarrierType\", flagAP: \"ApplicationNumber\", flagPT: \"PermitType\", flagST: \"Status\", flagDS: \"DateSubmitted\" };\r\n limitSelection = false;\r\n criteria = \"DateSubmitted\";\r\n rankCtrl: number = 8;\r\n isDef: boolean = true;\r\n permits: any = [];\r\n isEmpty: boolean = false;\r\n count: number = 0;\r\n message = 'Loading permits. Please wait...';\r\n permitObj: any = { permits: [], vehicles: [] };\r\n vehicles: any = [];\r\n mySearchKey\r\n PermitStatus10: any = 0;\r\n appId = 0;\r\n pdfSrc: any;\r\n isLoadingImg = false;\r\n loadCompleted: boolean = false;\r\n permitTypes: any = [];\r\n\r\n permitStatus1: number; // Saved but not submitted\r\n permitStatus2: number; // Submitted\r\n permitStatus4: number; // Approved\r\n permitStatus6: number; // Quote accepted\r\n permitStatus7: number; // Quote & details accepted\r\n permitStatus8: number; // Printed\r\n permitStatus10: number; // Ready for printing\r\n permitStatus11: number; // Expired\r\n permitStatus12: number; // Rejeted or Declined\r\n permitStatus13: number; // Returned\r\n permitStatus15: number; // Cancelled\r\n\r\n constructor(private router: Router, private activeRoute: ActivatedRoute,\r\n private confirmDialogService:ConfirmDialogService,\r\n private carrierService: CarrierService,\r\n private permitService: PermitService,\r\n private statusService: StatusService,\r\n private applicationService: ApplicationService,\r\n private routeService: RouteService,\r\n private vehicleService: VehicleTypeService,\r\n public utility: UtilityServiceService,\r\n private toaster: ToastrService,\r\n private session: StorageService,\r\n private permitTypeService : PermitTypeService,\r\n public currformat: CurrencyFormat, public showModal: PopupService, private authWebService: AuthWebService) {\r\n this.user = (this.authWebService.userData) ? this.authWebService.userData.User : null;\r\n }\r\n\r\n onReset = () => {\r\n this.selectedItems = [];\r\n this.selectedPermitTypes = [];\r\n this.permitNumber = null;\r\n this.routeName = null; \r\n this.initKeyword();\r\n this.utility.page = 1;\r\n this.message = 'Loading permit applications, please wait...';\r\n this.getApplications();\r\n }\r\n\r\n onItemSelect(item: any) {\r\n }\r\n onDeSelect(item: any) {\r\n }\r\n onSelectAll(items: any) {\r\n }\r\n \r\n onSearch = () => {\r\n this.gridload = true;\r\n if (!this.isSearchable()) {\r\n this.toaster.info(\"Please provide at least one filter value.\", \"Permit Approval Search\", { timeOut: 5000 });\r\n return;\r\n }\r\n this.setSearchKeywords();\r\n this.utility.page = 1;\r\n this.message = \"Searching for carrier accounts, please wait...\";\r\n\r\n this.carrierService.searchCarrierPermits(this.keyword, 1,this.keyword.CarrierID, this.pageSize, this.rankCtrl,this.direction).subscribe((result:any) => {\r\n this.permits = result.Items; \r\n this.setApplicationData(result); \r\n\r\n }, error => {\r\n this.gridload = false;\r\n this.loadCompleted = true;\r\n this.isEmpty=false;\r\n });\r\n\r\n }\r\n \r\n loadPermitTypes = () => {\r\n this.permitTypeService.get().subscribe(result => {\r\n this.permitTypes = result;\r\n });\r\n }\r\n // loadStatuses = () => {\r\n // alert('loadStatuses');\r\n // this.statusService.statusesDDL(2).subscribe(result => {\r\n // this.statuses = result.map(row => {\r\n // return { id: row.id, desc: row.desc };\r\n // });\r\n // // this.statuses.sort((a,b) => a.sort_order > b.sort_order ? 1 : -1 && a.group_code > b.group_code ? 1 : -1 && a.id > b.id ? 1 : -1)\r\n // this.statuses.sort((a,b) => a.sort_order > b.sort_order ? 1 : -1 && a.desc > b.desc ? 1 : -1)\r\n // this.loadAccounts();\r\n // });\r\n\r\n // }\r\n\r\n setSearchKeywords = () => {\r\n this.keyword.CarrierID = this.dataCntrl.carrierID; \r\n this.keyword.permitNumber=(this.permitNumber) ? this.permitNumber : \"All\";\r\n this.keyword.PermitTypes = (this.selectedPermitTypes) ? this.selectedPermitTypes.map(pt => { return pt.id; }) : [];\r\n this.keyword.Statuses = (this.selectedItems) ? this.selectedItems.map(status => { return status.id; }) : [];\r\n }\r\n initKeyword = () => {\r\n this.keyword = { permitNumber: \"All\", Statuses: [], PermitTypes: [] };\r\n this.retrieveDefaultStatuses();\r\n }\r\n\r\n isSearchable = () => {\r\n return (this.permitNumber != null ||this.routeName != null || this.selectedItems.length > 0 || this.selectedPermitTypes.length > 0);\r\n }\r\n checkKey(event){\r\n const charCode = (event.which) ? event.which : event.keyCode;\r\n if (charCode == 13) {\r\n this.onSearch();\r\n return;\r\n }\r\n }\r\n retrieveDefaultStatuses = () => {\r\n if (this.authWebService.userData) {\r\n this.permitStatus2 = + this.authWebService.userData.Configurations.find(config => config.Code == \"PermitStatus2\").Value; // submitted\r\n this.permitStatus4 = + this.authWebService.userData.Configurations.find(config => config.Code == \"PermitStatus4\").Value; // approved\r\n this.permitStatus6 = + this.authWebService.userData.Configurations.find(config => config.Code == \"PermitStatus6\").Value; // application and permit fee quote has been accepted\r\n this.permitStatus8 = + this.authWebService.userData.Configurations.find(config => config.Code == \"PermitStatus8\").Value; // permit has been printed\r\n this.keyword.Statuses = [this.permitStatus2, 74]; // Submitted, STATUS CODE 74 = Submitted - Compliance\r\n }\r\n }\r\n\r\n InitMultiselect() {\r\n this.dropdownSettings = {\r\n singleSelection: false,\r\n idField: 'id',\r\n textField: 'description',\r\n selectAllText: 'Select All',\r\n unSelectAllText: 'UnSelect All',\r\n itemsShowLimit: 10,\r\n allowSearchFilter: this.ShowFilter,\r\n maxHeight: 210,\r\n closeDropDownOnSelection: false\r\n };\r\n }\r\n\r\n\r\n\r\n ngOnInit() {\r\n \r\n ////console.log(this.user);\r\n if (environment.authWebApi.systemData != null && environment.authWebApi.systemData.Configurations != null) {\r\n this.permitStatus1 = environment.authWebApi.systemData.Configurations.find(p => p.Code == 'PermitStatus1').Value;\r\n this.permitStatus2 = environment.authWebApi.systemData.Configurations.find(p => p.Code == 'PermitStatus2').Value;\r\n this.permitStatus4 = environment.authWebApi.systemData.Configurations.find(p => p.Code == 'PermitStatus4').Value;\r\n this.permitStatus6 = environment.authWebApi.systemData.Configurations.find(p => p.Code == 'PermitStatus6').Value;\r\n this.permitStatus7 = environment.authWebApi.systemData.Configurations.find(p => p.Code == 'PermitStatus7').Value;\r\n this.permitStatus8 = environment.authWebApi.systemData.Configurations.find(p => p.Code == 'PermitStatus8').Value;\r\n this.permitStatus10 = environment.authWebApi.systemData.Configurations.find(p => p.Code == 'PermitStatus10').Value;\r\n this.permitStatus11 = environment.authWebApi.systemData.Configurations.find(p => p.Code == 'PermitStatus11').Value;\r\n this.permitStatus12 = environment.authWebApi.systemData.Configurations.find(p => p.Code == 'PermitStatus12').Value;\r\n this.permitStatus13 = environment.authWebApi.systemData.Configurations.find(p => p.Code == 'PermitStatus13').Value;\r\n this.permitStatus15 = environment.authWebApi.systemData.Configurations.find(p => p.Code == 'PermitStatus15').Value;\r\n }\r\n this.PermitStatus10 = this.authWebService.userData.Configurations.find(p => p.Code == 'PermitStatus10').Value\r\n if (this.router.url.indexOf('cancel') > 0) {\r\n this.activeRoute.params.subscribe((params: Params) => {\r\n this.dataCntrl.carrierID = params['id'];\r\n this.appId = params['appid'];\r\n }\r\n\r\n );\r\n }\r\n this.activeRoute.params.subscribe((params: Params) => {\r\n this.dataCntrl.carrierID = params['id'];\r\n }\r\n\r\n );\r\n this.utility.changeKey = 0;\r\n this.getStatus();\r\n this.loadPermitTypes();\r\n this.getApplications();\r\n this.getCarrier(); \r\n this.loadAccounts();\r\n \r\n this.initKeyword();\r\n // this.loadStatuses();\r\n this.getRoutes();\r\n this.InitMultiselect();\r\n // this.getAllVehicleTypes();\r\n\r\n \r\n }\r\n\r\n copyPermit(id) {\r\n this.gridload = true;\r\n this.permitService.copyPermit(id).subscribe((data:any) => {\r\n this.gridload = false;\r\n //console.log(data);\r\n let num_of_renewals: any = data.application.permit_type.num_renewals_allowed;\r\n \r\n let renewal_count: any = data.application.permits.find(p=>p.id == id).renewal_num;\r\n if (num_of_renewals == 0 || renewal_count > num_of_renewals) {\r\n if (num_of_renewals == 0) {\r\n this.toaster.error(\"Permit Renewal is not allowed on this Permit Type\", \"Renew Permit\");\r\n } else {\r\n this.toaster.error(\"You have already exceeded the renewal limit on this permit\", \"Renew Permit\");\r\n }\r\n $(\"#selectControl option[value='']\").prop('selected', true);\r\n return false;\r\n } else {\r\n this.renewPermit(data, id);\r\n }\r\n })\r\n }\r\n\r\n renewPermit(data, id) {\r\n let myPermit = data.application.permits[data.application.permits.length -1];\r\n //alert(JSON.stringify(myPermit));\r\n if (myPermit.renewal_num == null) {\r\n myPermit.renewal_num = 1;\r\n } else {\r\n myPermit.renewal_num = parseInt(myPermit.renewal_num) + 1;\r\n }\r\n this.updatePermit(data, id);\r\n }\r\n\r\n \r\n updatePermit(res, id) {\r\n \r\n this.permitService.upadatePermit(res.application.permits.find(p=>p.id==id)).subscribe(result => {\r\n res.application.permit = result;\r\n res.permit = result;\r\n this.permitService.RenewPermit(res).subscribe((res1:any) => {\r\n console.log(res1);\r\n let url: any = \"carrier/permit/application/renew/\" + res1.permit.id + \"/\" + this.dataCntrl.carrierID + \"/\" + true;\r\n this.router.navigate([url]);\r\n\r\n })\r\n })\r\n }\r\n getApplications() {\r\n this.gridload = true;\r\n //console.log(this.dataCntrl);\r\n this.carrierService.getCarrierPermits(this.dataCntrl.carrierID, this.pageNumber, this.pageSize, this.appId).subscribe(result => {\r\n this.setApplicationData(result);\r\n \r\n }, error => {\r\n this.gridload = false;\r\n this.loadCompleted = true;\r\n this.isEmpty=false;\r\n });\r\n \r\n\r\n }\r\n onSort() {\r\n this.direction = !this.direction;\r\n }\r\n\r\n\r\n setApplicationData(data) {\r\n this.loadCompleted = false;\r\n \r\n //console.log(data);\r\n //console.log(data)\r\n data.Items.forEach(element => {\r\n element.total_fees = this.formatCurrency(element.total_fees);\r\n });\r\n\r\n let count: any = 0;\r\n //this.dataCntrl.applications = [];\r\n let listItems: any = [];\r\n listItems = data.Items;\r\n\r\n \r\n\r\n let arrayList: any = [];\r\n let permitList: any = [];\r\n listItems.forEach(item => {\r\n permitList.push(item.permits)\r\n //.permits = item.permits\r\n this.vehicles = item.vehicle\r\n\r\n // permitList.push(item.vehicle)\r\n // permitList = [ ...item.permits, ...item.vehicle];\r\n\r\n \r\n\r\n //console.log(\"------------\" + JSON.stringify(this.dataCntrl.applications));\r\n })\r\n\r\n listItems.forEach(currentItem => {\r\n let permit: any = currentItem;\r\n this.applicationService.getById(permit.application_id).subscribe(result => {\r\n let application: any = result;\r\n //alert(JSON.stringify(application));\r\n // application.permit.id = permit.id;\r\n // application.permit.permit_num = permit.permit_num;\r\n\r\n // insert permit status\r\n let status: any = this.statuses.find(x => x.id == permit.status_id);\r\n application.status_id = status.id;\r\n application.status = status.description;\r\n\r\n // retrieve the route description\r\n // let route: any = this.routes.find(rt => rt.id == application.route_id);\r\n // //console.log(this.routes);\r\n // //console.log(route);\r\n // application.route_desccription = route.description;\r\n\r\n application.registration_number = permit.vehicle_reg_num;\r\n\r\n // if (application.vehicle.length > 0) {\r\n // this.getVehicle(application, permit.id);\r\n // } else {\r\n // application.vehicle_type_code = \"\";\r\n // application.vehicle_type = \"\";\r\n // } \r\n // let vehicle: any = application.vehicle.find(x => x.permit_id == permit.id);\r\n // application.vehicle_type_code = vehicle.code;\r\n // application.vehicle_type = vehicle.description; \r\n\r\n permit.application = application;\r\n arrayList.push(Object.assign({},permit)); \r\n\r\n }, error => {\r\n this.gridload = false;\r\n permit.application = null;\r\n arrayList.push(Object.assign({},permit));\r\n \r\n });\r\n count++;\r\n });\r\n\r\n \r\n setTimeout(() => {\r\n //alert(JSON.stringify(arrayList));\r\n this.gridload = false;\r\n this.Count = data.Count;\r\n this.dataCntrl.permits = arrayList;\r\n // alert(JSON.stringify(this.dataCntrl.permits));\r\n //console.log(this.dataCntrl.applications)\r\n this.loadCompleted = true;\r\n }, 6000);\r\n }\r\n\r\n sortByAsc(list) {\r\n \r\n return list.sort((a, b) => {\r\n var x = a.permit_num + a.permit_issue; var y = b.permit_num + b.permit_issue;\r\n return ((x < y) ? -1 : (x > y) ? 1 : 0);\r\n });\r\n }\r\n\r\n getStatus() {\r\n this.statusService.getAll().subscribe(result => {\r\n this.statuses = result; \r\n })\r\n } \r\n\r\n // getStatusDesc(app, id) {\r\n // if (id != null) {\r\n // let status: any = this.statuses.find(x => x.id == id);\r\n\r\n // app.status_id = id\r\n // app.status = status.code;\r\n // app.status_desc = status.description;\r\n // } \r\n // else {\r\n // app.status_desc = \"\"\r\n // }\r\n // }\r\n\r\n getRoutes() {\r\n this.routeService.getAllRoute().subscribe(data => {\r\n //console.log(data);\r\n this.routes = data;\r\n });\r\n }\r\n\r\n // getPlaceDesc(res) {\r\n // if (res.routes_id != null) {\r\n // let route: any = this.routes.find(x => x.id == res.routes_id);\r\n // res.route_code = route.code;\r\n // res.route_desc = route.description;\r\n // } else {\r\n // res.route_code = \"\";\r\n // res.route_desc = \"\";\r\n // }\r\n // }\r\n\r\n // getVehicle(res, id) {\r\n\r\n // let vehicleList = res.vehicle;\r\n // let code: string = '';\r\n // let description: string = '';\r\n\r\n // if (id != null) {\r\n\r\n // let vehicle: any = vehicleList.find(x => x.permit_id == id);\r\n // if (vehicle != undefined && vehicle != null) {\r\n\r\n // let vType: any = this.vehTypes.find(x => x.id == vehicle.vehicle_type_id);\r\n // if (vType != undefined && vType != null) {\r\n\r\n // code = vType.code;\r\n // description = vType.description;\r\n // }\r\n // }\r\n // }\r\n\r\n // res.vehicle_type_code = code;\r\n // res.vehicle_type = description;\r\n // }\r\n\r\n // getAllVehicleTypes() {\r\n // this.vehicleService.loadvehicletypes().subscribe(data => {\r\n // //console.log(data);\r\n // this.vehTypes = data;\r\n // });\r\n // }\r\n\r\n formatCurrency(value) {\r\n return accounting.formatMoney(value, 'R', 2, ' ', '.');\r\n }\r\n\r\n getCarrier() {\r\n this.pageload = true;\r\n this.carrierService.getById(this.dataCntrl.carrierID).subscribe(result => {\r\n this.setCarrierData(result);\r\n //console.log(result)\r\n this.pageload = false;\r\n }, error => {\r\n this.pageload = false;\r\n //console.log(error);\r\n });\r\n }\r\n\r\n setCarrierData(data) {\r\n if (data.account_balance != 0) {\r\n data.account_balance = -(parseFloat(data.account_balance));\r\n }\r\n data.account_balance = data.account_balance != 0 ? this.currformat.transform(parseFloat(data.account_balance)) : 'R 0.00';\r\n this.dataCntrl.carrier = data; \r\n }\r\n loadAccounts() {\r\n if (this.user) {\r\n this.carrierService.listCarrierAccountsByUserId(this.user.Id).subscribe((result:any) => {\r\n //console.log(result.find(x => x.id == this.dataCntrl.carrierID))\r\n this.acc = result.find(x => x.id == this.dataCntrl.carrierID);\r\n if (this.acc.account_balance != 0) {\r\n this.acc.account_balance = -(parseFloat(this.acc.account_balance));\r\n }\r\n //console.log(\"this.acc \" +JSON.stringify( this.acc) );\r\n }, error => {\r\n\r\n })\r\n }\r\n }\r\n onBack() {\r\n this.router.navigateByUrl('/carrier/accounts');\r\n }\r\n\r\n editApplication(id) {\r\n\r\n this.router.navigateByUrl(`/carrier/permit/edit/${id}`);\r\n \r\n }\r\n\r\n viewApplication(id) {\r\n this.router.navigateByUrl(`/carrier/permit/edit/${id}/false`); //false to just the application\r\n }\r\n\r\n onPage(page) {\r\n this.pageNumber = page\r\n this.getApplications();\r\n return page;\r\n }\r\n\r\n pageSizeName(value) {\r\n if (value === this.pageSizeMax) return 'All';\r\n return value;\r\n }\r\n\r\n pageSizes() {\r\n return [5, 10, 25, 50, 100, 500, this.pageSizeMax];\r\n }\r\n\r\n pageSizeChange() {\r\n this.getApplications();\r\n }\r\n navigatePermit1(item, change) {\r\n if (change.value == 'edit') {\r\n let url: any = \"carrier/permit/application/edit/\" + item.id;\r\n this.router.navigate([url]);\r\n }\r\n else {\r\n let permitStatus: any = environment.authWebApi.systemData.Configurations.find(config => config.Code == \"PermitStatus9\").Value;\r\n permitStatus = parseInt(permitStatus);\r\n let dateValidTo: any = item.application.permit.date_valid_to;\r\n let add30date: any = null;\r\n let dec30date: any = null;\r\n let currentDate: any = new Date();\r\n if (dateValidTo != null) {\r\n let mod = new Date(dateValidTo);\r\n mod.setDate(mod.getDate() + 30);\r\n add30date = mod;\r\n let mod1 = new Date(dateValidTo);\r\n mod1.setDate(mod1.getDate() - 30 + 1);\r\n dec30date = mod1;\r\n //console.log(currentDate);\r\n //console.log(dec30date);\r\n // if(item.status_id==permitStatus && dec30date.getTime()<=currentDate.getTime()){\r\n // this.toaster.error(\"yy\");\r\n // return false;\r\n // }\r\n if (currentDate.getTime() < dec30date.getTime()) {\r\n this.toaster.error(\"You can only apply to renew a permit if it is within 30 days of expiry date.\");\r\n return false;\r\n }\r\n }\r\n // this.showModal.showYesNo('Renew Permit', `Are you sure you want to renew ${item.permit_num} permit ?`, `You're about to renew permit`, 'Yes', 'No')\r\n // .subscribe((isConfirmed) => {\r\n\r\n // if (isConfirmed) {\r\n // //console.log(item)\r\n // this.copyPermit(item.id);\r\n\r\n // } else {\r\n // $(\"#selectControl option[value='']\").prop('selected', true);\r\n // return false;\r\n // }\r\n // });\r\n this.confirmDialogService.confirmThis(`Are you sure you want to renew ${item.permit_num} permit ?`, () => { \r\n this.copyPermit(item.id);\r\n\r\n \r\n }, () => { \r\n $(\"#selectControl option[value='']\").prop('selected', true);\r\n return false;\r\n })\r\n\r\n }\r\n }\r\n\r\n navigatePermit(item, change) {\r\n localStorage.setItem(\"oldAppId\",item.application.id);\r\n switch (change.value) {\r\n case 'view' :\r\n localStorage.setItem('permitNum',item.application.number_of_permits);\r\n this.router.navigate(['/carrier/permit/application/view', item.application.id]);\r\n break;\r\n\r\n case 'edit' :\r\n localStorage.setItem('permitNum',item.application.number_of_permits);\r\n this.router.navigate(['/carrier/permit/application/edit', item.application.id]);\r\n break;\r\n\r\n case 'duplicate':\r\n if(new Date(item.date_valid_to) < new Date())\r\n {\r\n this.toaster.warning(`Cannot duplicate an expired permit.`, `Duplicate Permit`);\r\n setTimeout(() => {\r\n this.getApplications();\r\n this.getCarrier();\r\n this.loadAccounts();\r\n this.toaster.clear();\r\n $(\"#selectControl option[value='']\").prop('selected', true);\r\n }, 5000);\r\n return;\r\n }\r\n if (item.is_valid && item.application.permit_type.can_get_duplicate) {\r\n this.permitService.CheckPermitIssued(item.permit_num,item.permit_issue).subscribe(res=>{\r\n if(res){\r\n let username: any = this.user.LastName;\r\n this.permitService.ManageDuplicate(item.id, username).subscribe((data:any) => {\r\n let url: any = \"carrier/permit/application/duplicate/\" + data.appliId;\r\n this.router.navigate([url]);\r\n });\r\n }\r\n else{\r\n //this.toaster.error(\"You cannot request a duplicate for this permit because there is an application in progress for this permit or it's already issued.\", \"The permit is not a valid permit.\");\r\n this.requestDeletePopup(\"Duplicate\",\"There is a pending/ incomplete “Duplicate” application for this Permit, please delete it before you start a new application\", item );\r\n //this.getApplications();\r\n $(\"#selectControl option[value='']\").prop('selected', true);\r\n return false;\r\n }\r\n })\r\n\r\n // let url: any = \"carrier/permit/application/duplicate/\" + item.id;\r\n // this.router.navigate([url]);\r\n }\r\n else {\r\n this.toaster.error(\"You cannot request a duplicate for this type of permit.\", \"The permit is not a valid permit.\");\r\n $(\"#selectControl option[value='']\").prop('selected', true);\r\n this.getApplications();\r\n }\r\n break;\r\n\r\n case 'renew':\r\n this.message = \"Loading. Please wait...\"\r\n this.gridload = true;\r\n let permitStatus: any = environment.authWebApi.systemData.Configurations.find(config => config.Code == \"PermitStatus9\").Value;\r\n permitStatus = parseInt(permitStatus);\r\n let dateValidTo: any = item.date_valid_to;\r\n let add30date: any = null;\r\n let dec30date: any = null;\r\n let currentDate: any = new Date();\r\n //console.log('renew');\r\n if (dateValidTo != null) {\r\n let mod = new Date(dateValidTo);\r\n mod.setDate(mod.getDate() + 30);\r\n add30date = mod;\r\n let mod1 = new Date(dateValidTo);\r\n mod1.setDate(mod1.getDate() - 30 + 1);\r\n dec30date = mod1;\r\n //console.log(currentDate);\r\n //console.log(dec30date);\r\n if (currentDate.getTime() < dec30date.getTime()) {\r\n this.toaster.error(\"You can only apply to renew a permit if it is within 30 days of expiry date.\");\r\n this.getApplications();\r\n $(\"#selectControl option[value='']\").prop('selected', true);\r\n return false;\r\n }\r\n }\r\n this.permitService.GetAllApplicationDetails(item.permit_num, item.renewal_num == null || item.renewal_num == undefined? 0 :item.renewal_num ).subscribe(res => {\r\n this.gridload = false;\r\n if (res) {\r\n\r\n // this.showModal.showYesNo('Renew Permit', `Are you sure you want to renew permit ${item.permit_num} ?`, `Click 'Yes' to confirm or 'No' to abort`, 'Yes', 'No')\r\n // .subscribe((isConfirmed) => {\r\n\r\n // if (isConfirmed) {\r\n // this.copyPermit(item.id);\r\n\r\n // } else {\r\n // $(\"#selectControl option[value='']\").prop('selected', true);\r\n // return false;\r\n // }\r\n // });\r\n this.confirmDialogService.confirmThis(`Are you sure you want to renew permit ${item.permit_num} ?`, () => { \r\n this.copyPermit(item.id);\r\n\r\n \r\n }, () => { \r\n $(\"#selectControl option[value='']\").prop('selected', true);\r\n return false;\r\n })\r\n } else {\r\n $(\"#selectControl option[value='']\").prop('selected', true);\r\n this.toaster.error(\"You cannot Renew this permit as it is already renewed\", \"Renew Permit\");\r\n return false;\r\n }\r\n } ,error => {\r\n this.toaster.error(`Error retrieving permit information. The server error response code is Error ${error.status} : ${error.statusText}`, `ERROR : Renew Permit`);\r\n $(\"#selectControl option[value='']\").prop('selected', true);\r\n return;\r\n });\r\n break;\r\n case 'timetable':\r\n case 'route':\r\n ////console.log('Permit Data : ', item.application.permit.id);\r\n ////console.log('Username : ', this.user.LastName);\r\n if(new Date(item.date_valid_to) < new Date())\r\n {\r\n this.toaster.warning(`Cannot ammend route on expired permit.`, `Route Amendment`);\r\n setTimeout(() => {\r\n this.getApplications();\r\n this.getCarrier();\r\n this.loadAccounts();\r\n this.toaster.clear();\r\n $(\"#selectControl option[value='']\").prop('selected', true);\r\n }, 5000);\r\n return;\r\n }\r\n\r\n this.permitService.CheckPermitIssued(item.permit_num,item.permit_issue).subscribe(res=>{\r\n if(res){\r\n const is_route = (change.value == 'route') ? true : false;\r\n this.utility.changeKey = 1;\r\n this.processChangeRoute(item.id, this.user.LastName, is_route, item);\r\n }else{\r\n //this.toaster.error(\"You cannot amend route for this permit because there is an application in progress this permit or it's already issued\", \"Route Amendment\");\r\n this.requestDeletePopup(\"Route Amendment\",\"There is a pending/ incomplete “Route Amendment” application for this Permit, please delete it before you start a new application\", item );\r\n $(\"#selectControl option[value='']\").prop('selected', true);\r\n return false;\r\n }\r\n });\r\n break;\r\n case 'compliance':\r\n \r\n const compliance = {\r\n carrierId: item.application.carrier.id,\r\n carrierName: item.application.carrier.name,\r\n carrierNum: item.application.carrier.carrier_code,\r\n carrierTradingName: item.application.carrier.trading_name,\r\n carrierRegNum: item.application.carrier.registration_number,\r\n permitKey: item.id,\r\n permitNum: item.permit_num,\r\n permitType: item.application.permit_type.description,\r\n vehicle_reg_num: item.vehicle_reg_num,\r\n freight_passenger_ind: item.application.permit_type.freight_passenger_ind,\r\n url: `carrier/permit/application/mypermits/${item.application.carrier.id}`\r\n };\r\n // this.session.setCompliance(compliance);\r\n this.router.navigate(['/carrier/compliance/application'] ,{ queryParams: { id:item.application.carrier.id,appID:item.application_id, compID:item.id,typeId:item.permit_type_id} });\r\n\r\n // this.router.navigate([this.utility.cplURL]);\r\n break;\r\n case 'vehicle': \r\n this.permitService.CheckPermitIssued(item.permit_num,item.permit_issue).subscribe(res=>{\r\n if(res){\r\n if(new Date(item.date_valid_to) < new Date())\r\n {\r\n this.toaster.warning(`Cannot replace vehicle on expired permit.`, `Vehicle Replacement`);\r\n setTimeout(() => {\r\n this.getApplications();\r\n this.getCarrier();\r\n this.loadAccounts();\r\n this.toaster.clear();\r\n $(\"#selectControl option[value='']\").prop('selected', true);\r\n }, 5000);\r\n return;\r\n }\r\n if (item.application.vehicle.length > 0) {\r\n const is_vehicle = (change.value == 'vehicle') ? true : false;\r\n this.utility.changeKey = 3;\r\n this.processChangeVehicle(item.id, this.user.LastName, is_vehicle);\r\n }\r\n else\r\n {\r\n this.toaster.warning(`Please make sure that there is a vehicle to be replaced.`, `Vehicle Replacement`);\r\n setTimeout(() => {\r\n this.getApplications();\r\n this.getCarrier();\r\n this.loadAccounts();\r\n this.toaster.clear();\r\n $(\"#selectControl option[value='']\").prop('selected', true);\r\n }, 5000);\r\n }\r\n }else{\r\n //this.toaster.error(\"You cannot Replace Vehicle for this permit because there is an application in progress this permit or it's already issued\",\"Vehicle Replacement\");\r\n this.requestDeletePopup(\"Vehicle Replacement\",\"There is a pending/incomplete “Replacement” application for this Permit, please delete it before you start a new application\", item );\r\n \r\n $(\"#selectControl option[value='']\").prop('selected', true);\r\n return false;\r\n }\r\n });\r\n break;\r\n case 'permitCorrection':\r\n if(new Date(item.date_valid_to) < new Date())\r\n {\r\n this.toaster.warning(`Cannot correct an expired permit.`, `Permit Correction`);\r\n setTimeout(() => {\r\n this.getApplications();\r\n this.getCarrier();\r\n this.loadAccounts();\r\n this.toaster.clear();\r\n $(\"#selectControl option[value='']\").prop('selected', true);\r\n }, 5000);\r\n return;\r\n }\r\n this.permitService.CheckPermitIssued(item.permit_num,item.permit_issue).subscribe(res=>{\r\n if(res){\r\n this.manageCorrectPermit(item.id, this.user.LastName);\r\n }else{\r\n //this.toaster.error(\"You cannot do Error Correction for this permit because there is an application in progress for this permit or it's already issued\",\"Error Correction\");\r\n this.requestDeletePopup(\"Error Correction\",\"There is a pending/ incomplete “Error Correction” application for this Permit, please delete it before you start a new application\", item );\r\n $(\"#selectControl option[value='']\").prop('selected', true);\r\n return false;\r\n }\r\n });\r\n break;\r\n\r\n case 'myNum' :\r\n return this.router.navigate(['under-construction']);\r\n\r\n case 'confirm':\r\n\r\n //console.log('Permit status:' + item);\r\n if (item.status_id < this.permitStatus13) {\r\n this.toaster.warning(\"Permit must have been approved before you can confirm the details\");\r\n return;\r\n }\r\n\r\n\r\n if (item.status_id > this.permitStatus7) {\r\n this.toaster.warning(\"Permit has already been processed and you cannot change it\");\r\n return;\r\n }\r\n\r\n\r\n // this.router.navigate(['/carrier/permit/application/view/'], {queryParams: {id:item.application.permit.id, constatus: 2}});\r\n this.router.navigate(['/carrier/permit/application/view/' + item.application_id + '/' + 2]);\r\n break;\r\n\r\n case 'cancelApp':\r\n this.cancelApplication(item.id);\r\n break;\r\n case 'viewPermit':\r\n this.viewPrintedPermit(item.id);\r\n break;\r\n\r\n case 'delete':\r\n this.deleteApplication(item.id);\r\n break;\r\n }\r\n }\r\n\r\n requestDeletePopup(header, message, item)\r\n {\r\n let permDescription = item.permit_num +'/' + (item.permit_issue+1);\r\n // this.showModal.showYesNo(header, message, `You're about to delete pending permit: ` + permDescription, 'Yes', 'No')\r\n // .subscribe((isConfirmed) => {\r\n // if (isConfirmed) {\r\n // this.pageload = true;\r\n // this.permitService.deletePermitByPermitNumAndIssueNum(item.permit_num, item.permit_issue+1).subscribe(deleted =>{\r\n // this.pageload = true; \r\n // if(deleted)\r\n // {\r\n // this.toaster.success('Deleted Permit \"' + permDescription + '\", you can proceed' );\r\n // }\r\n // else{\r\n // this.toaster.error('Cannot delete Permit \"' + permDescription + '\"' );\r\n // }\r\n // });\r\n // } else {\r\n \r\n // return false;\r\n // }\r\n // });\r\n this.confirmDialogService.confirmThis(message + \" You're about to delete pending permit: \"+ permDescription, () => { \r\n \r\n this.pageload = true;\r\n this.permitService.deletePermitByPermitNumAndIssueNum(item.permit_num, item.permit_issue+1).subscribe(deleted =>{\r\n this.pageload = true; \r\n if(deleted)\r\n {\r\n this.toaster.success('Deleted Permit \"' + permDescription + '\", you can proceed' );\r\n }\r\n else{\r\n this.toaster.error('Cannot delete Permit \"' + permDescription + '\"' );\r\n }\r\n });\r\n \r\n }, () => { \r\n return false;\r\n })\r\n\r\n }\r\n\r\n viewPrintedPermit(id) {\r\n let obj = {\r\n pId: id,\r\n ReportName: 'Permit'\r\n\r\n }\r\n //console.log(obj);\r\n\r\n this.gridload = true;\r\n this.isLoadingImg = true;\r\n this.permitService.PrintingPermitView(obj).subscribe(data => {\r\n let objectURL = URL.createObjectURL(data);\r\n //console.log(objectURL);\r\n document.getElementById('btnShowPrintView').click()\r\n this.pdfSrc = objectURL;\r\n this.gridload = false;\r\n this.isLoadingImg = false;\r\n\r\n })\r\n }\r\n isCanBeAmended = (item: any) => {\r\n const data = item;\r\n if (!data.permits[0].is_valid)\r\n return false;\r\n else {\r\n return (data.permit_type.can_amend_route || data.permit_type.can_amend_timetable || data.permit_type.can_replace_vehicle);\r\n }\r\n }\r\n\r\n isComplianceReturned = (item: any) => {\r\n const data = item.application;\r\n //console.log(data.permit);\r\n return (data.permit.cplce_return_id > 0);\r\n\r\n }\r\n\r\n\r\n\r\n processChangeRoute = (perm_id, username, is_route,application) => {\r\n this.message = 'Processing your request, please wait...!';\r\n this.gridload = true;\r\n localStorage.setItem(\"timetable\",application.application.permit_type.timetable_reqd);\r\n this.permitService.changeRoute(perm_id, username, is_route).subscribe((resp:any) => {\r\n this.gridload = false;\r\n let url: any = `carrier/permit/application/change/${resp.appliId}/${is_route}`;\r\n this.router.navigate([url]);\r\n\r\n }, error => {\r\n this.gridload = false;\r\n this.toaster.error(\"Your request could not be processed succesfully.Please contact the system admin if the problem persists.\");\r\n\r\n });\r\n }\r\n\r\n processChangeVehicle(permit_id, username, isVehicle) {\r\n this.message = 'Processing your request, please wait...!';\r\n this.gridload = true;\r\n this.permitService.changeVehicle(permit_id, username, isVehicle).subscribe((resp:any) => {\r\n this.gridload = false;\r\n let url: any = `carrier/permit/application/change/${resp.appliId}/vehicle`;\r\n this.router.navigate([url]);\r\n\r\n }, error => {\r\n this.gridload = false;\r\n this.toaster.error(\"Your request could not be processed succesfully.Please contact the system admin if the problem persists.\");\r\n\r\n });\r\n }\r\n manageCorrectPermit(id, user) {\r\n this.message = 'Processing your request, please wait...!';\r\n this.gridload = true;\r\n let correctDays1: any = environment.authWebApi.systemData.Configurations.find(config => config.Code == \"CorrectDays1\").Value;\r\n\r\n this.permitService.managePermitCorrection(id).subscribe(data => {\r\n if (data === true) {\r\n this.processPermitCorrection(id, user);\r\n // let url: any = `carrier/permit/application/change/${appid}/correction`;//remove when permit type code is avail\r\n // this.router.navigate([url]);\r\n } else {\r\n // let url: any = `carrier/permit/application/change/${appid}/correction`;\r\n // this.router.navigate([url]);\r\n this.toaster.error('You cannot request a change after ' + correctDays1 + ' day(s)');\r\n $(\"#selectControl option[value='']\").prop('selected', true);\r\n }\r\n this.gridload = false;\r\n\r\n }, error => {\r\n this.gridload = false;\r\n this.toaster.error(\"Your request could not be processed succesfully.Please contact the system admin if the problem persists.\");\r\n $(\"#selectControl option[value='']\").prop('selected', true);\r\n })\r\n\r\n }\r\n processPermitCorrection(perm_id, username) {\r\n this.permitService.corrections(perm_id, username).subscribe((resp:any) => {\r\n let url: any = `carrier/permit/application/change/${resp.appliId}/correction`;\r\n this.router.navigate([url]);\r\n\r\n }, error => {\r\n this.toaster.error(\"Your request could not be processed succesfully.Please contact the system admin if the problem persists.\");\r\n\r\n });\r\n }\r\n cancelApplication(id) {\r\n \r\n this.confirmDialogService.confirmThis('Are you sure that you want to cancel your application. If your application fee has been paid you cannot get it refunded. If your permit fee has been paid, you must contact us to apply for a refund.', () => { \r\n \r\n this.confirmDialogService.confirmThis('You are about to cancel your permit. Press Yes to continue and cancel the permit.', () => { \r\n \r\n this.message = 'Processing your request, please wait...!';\r\n this.gridload = true;\r\n\r\n this.permitService.UpdatePermitStatus(id).subscribe(data => {\r\n if (data === true) {\r\n this.toaster.success('The permit was cancelled successfully');\r\n this.getApplications();\r\n\r\n } else {\r\n\r\n // this.toaster.error('You cannot request a change after ' + correctDays1 + ' day(s)');\r\n }\r\n this.gridload = false;\r\n\r\n }, error => {\r\n this.gridload = false;\r\n this.toaster.error(\"Your request could not be processed succesfully.Please contact the system admin if the problem persists.\");\r\n\r\n })\r\n\r\n \r\n }, () => { \r\n return false;\r\n })\r\n \r\n }, () => { \r\n return false;\r\n })\r\n }\r\n\r\n\r\n deleteApplication(applicationData) {\r\n \r\n \r\n \r\n this.confirmDialogService.confirmThis('Are you sure you want to delete this permit application?.', () => { \r\n \r\n this.message = 'Processing your request, please wait...!';\r\n this.gridload = true;\r\n\r\n this.applicationService.deleteApplication(applicationData.id).subscribe(data => { \r\n if (data === true) {\r\n this.toaster.success('The Permit Application was deleted successfully');\r\n this.getApplications();\r\n console.log(\"app\",applicationData.id);\r\n\r\n } else {\r\n\r\n // this.toaster.error('You cannot request a change after ' + correctDays1 + ' day(s)');\r\n }\r\n this.gridload = false;\r\n\r\n }, error => {\r\n this.gridload = false;\r\n this.toaster.error(\"Your request could not be processed succesfully.Please contact the system admin if the problem persists.\");\r\n\r\n })\r\n \r\n }, () => { \r\n return false;\r\n })\r\n}\r\n\r\n\r\n // deleteApplication(id) {\r\n \r\n \r\n \r\n // this.confirmDialogService.confirmThis('Are you sure you want to delete this permit application?.', () => { \r\n \r\n // this.message = 'Processing your request, please wait...!';\r\n //this.gridload = true;\r\n\r\n //this.permitService.UpdatePermitStatus(id).subscribe(data => {\r\n // this.permitService.deletePermit(id).subscribe(data => {\r\n // if (data === true) {\r\n // this.toaster.success('The Permit Application was deleted successfully');\r\n // this.getApplications();\r\n\r\n // } else {\r\n\r\n // this.toaster.error('You cannot request a change after ' + correctDays1 + ' day(s)');\r\n // }\r\n // this.gridload = false;\r\n\r\n // }, error => {\r\n // this.gridload = false;\r\n // this.toaster.error(\"Your request could not be processed succesfully.Please contact the system admin if the problem persists.\");\r\n\r\n // })\r\n \r\n // }, () => { \r\n // return false;\r\n // })\r\n // }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n}\r\n","
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
Permits for Account {{dataCntrl.carrier.name}}
\r\n
\r\n
\r\n {{user?.UserName}}\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
Account NumberAccount NameTrading NameRegistration NumberLead UserCarrier Type DescriptionAccount BalanceAccount Status
{{acc.account_number}}{{acc.account_name}}{{acc.trading_name}}{{acc.reg_number}}{{acc.link_person}}{{acc.carrier_type_description}}{{dataCntrl.carrier.account_balance}}{{acc.status}}
\r\n
\r\n
\r\n\r\n
\r\n
\r\n Filters\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
PermitNum / IssuePermit TypeStartEndRegistration NumberRouteStatus\r\n \r\n \r\n Apply for Permit\r\n \r\n
{{item.permit_num}} / {{item.permit_issue}}{{item.application.permit_type.description}}\r\n {{item.date_valid_from | date:'dd/MM/yyyy'}}\r\n {{item.date_valid_to | date:'dd/MM/yyyy'}}{{item.vehicle_reg_num}}{{item.application.route_summary}}\r\n {{item.application.status}}\r\n \r\n\r\n
\r\n\r\n\r\n \r\n 0\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Permit#TypeStartEndStatusVehicleRoute\r\n \r\n \r\n Add\r\n \r\n
TypeRegistration
{{a.listRes.carrier.carrier_code}}{{p.permit_num}} / {{p.permit_issue}}\r\n {{p.face_value_num}}{{a.listRes.permit_type.code}}\r\n {{p.date_valid_from | date:'dd/MM/yyyy'}}\r\n {{p.date_valid_to | date:'dd/MM/yyyy'}}{{p.status_id}}-{{p.status_description}}{{item.listRes.vehicle_type_code}}{{item.listRes.registration_number}}{{a.route_code}}\r\n \r\n
\r\n
\r\n\r\n\r\n\r\n\r\n

0\">Click on the Underlined link to view account information

\r\n
5\">\r\n \r\n \r\n \r\n \r\n \r\n
\r\n Show :\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n No permits found.\r\n \r\n \r\n\r\n \r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
Printed Permit
\r\n \r\n
\r\n
\r\n\r\n \r\n\r\n \r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit, ViewChild, Input } from '@angular/core';\r\nimport { ActivatedRoute, Params, Router } from '@angular/router';\r\nimport { PopupService } from '../../../services/shared/popup.service';\r\nimport { CurrencyFormat } from '../../../pipes/currencyFormat.pipe';\r\nimport { CarrierService } from '../../../services/carrier.service';\r\nimport { ApplicationService } from '../../../services/application.service';\r\nimport { PermitService } from '../../../services/permit.service';\r\nimport { VehicleService } from '../../../services/vehicle.service';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { AppVehicleComponent } from '../shared/app-vehicle/app-vehicle.component'\r\nimport { PermitTypeDocumentService } from 'app/services/permit-type-document.service';\r\nimport { DocumentsServiceService } from 'app/services/documents-service.service';\r\nimport { UtilityServiceService } from 'app/services/utility-service.service';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { DatePipe } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'app-new-permit-application',\r\n templateUrl: './new-permit-application.component.html',\r\n styleUrls: ['./new-permit-application.component.css'],\r\n providers: [CurrencyFormat,PermitTypeDocumentService]\r\n})\r\nexport class NewPermitApplicationComponent implements OnInit {\r\n @Input('ctrlData') ctrlData: any;\r\n\r\n @Input('isPermitDoc') isPermitDoc : boolean = false;\r\n\r\n @ViewChild(AppVehicleComponent) vehicleComp: AppVehicleComponent;\r\n\r\n dataCntrl: any = { carrierID: -1, permittypeSelected: false, selectedtype: '', disableTypes: false, processStarted: false, currentTab: '', formValid: false, isViewEditControl: false, carrier: {}, application: {}, permit: {}, permittype: {}, vehicles: [], permitTypesDocLinks: [] };\r\n StartComplete: boolean;\r\n VehicleComplete: boolean;\r\n canSave: boolean;\r\n canSubmit: boolean;\r\n pageload: boolean;\r\n tabload: boolean;\r\n\r\n activeTab = 'permitype';\r\n disableTabs: boolean = true;\r\n myreference: '';\r\n username: any;\r\n iconCtrl = 1;\r\n disableBtn: boolean = false;\r\n isProcess: boolean = false;\r\n showMenuBtn: boolean = false;\r\n showPage: boolean;\r\n listvehicles: any = [];\r\n permitNum: any = 1;\r\n routesNum: any = 2;\r\n uploadsNum: any = 3;\r\n cnfNum: any = 4;\r\n timeTableNum: any = 3;\r\n viewPage: boolean = false;\r\n duplicateApp: boolean = false;\r\n amendApp: boolean = false;\r\n displayIsDuplicateLoader: boolean = false;\r\n isDuplicated: boolean = false;\r\n isEditMode: boolean = false;\r\n changeRouteTimetable: boolean = false;\r\n processHeader: string = \"\";\r\n carrierName: string = \"\";\r\n isReplaceVehicle: boolean = false;\r\n isCorrectPermit: boolean = false;\r\n isPermitRenewal: boolean = false;\r\n carrierNameNew: string = \"\";\r\n permitCode: string = \"\";\r\n permitNumber: string = \"\";\r\n viewAppId:any=null;\r\n viewPermitCount:any=null;\r\n permitStatus13: any;\r\n constructor(private router: Router, private activeRoute: ActivatedRoute, private showModal: PopupService,\r\n private carrierService: CarrierService, public currformat: CurrencyFormat,\r\n public applicationService: ApplicationService, public permitService: PermitService,private permitTypeDocumentService: PermitTypeDocumentService,\r\n public vehicleService: VehicleService, public utility: UtilityServiceService,private documentsServiceService: DocumentsServiceService,\r\n private toastr: ToastrService, private routr: Router, private datePipe: DatePipe, private permitSevc: PermitService) { }\r\n\r\n ngOnInit() {\r\n \r\n this.isEditMode = this.router.url.indexOf('edit') > 0 && this.router.url.indexOf('duplicate') < 0;\r\n \r\n this.utility.timetableActive = false;\r\n this.duplicateApp = this.router.url.indexOf('duplicate') > 0;\r\n this.amendApp = this.router.url.indexOf('change') > 0;\r\n this.isReplaceVehicle = this.router.url.indexOf('vehicle') > 0;\r\n this.isCorrectPermit = this.router.url.indexOf('correction') > 0;\r\n this.isPermitRenewal = this.router.url.indexOf('renew') > 0;\r\n this.changeRouteTimetable = this.router.url.indexOf('change') > 0;\r\n this.displayIsDuplicateLoader = this.router.url.indexOf('duplicate') > 0;\r\n \r\n if (this.router.url.indexOf('new') > 0) this.processHeader = \"New Application\";//selected-vehicle\r\n if (this.router.url.indexOf('view') > 0) this.processHeader = \"View Application\";\r\n if (this.router.url.indexOf('edit') > 0){\r\n this.activeRoute.params.subscribe((params: Params) => {\r\n this.dataCntrl.application.id = params['id']; \r\n const isSelectedVehicle = params['isSelectedVehicle']; \r\n if(isSelectedVehicle != null || isSelectedVehicle != undefined){\r\n this.processHeader = \"New Application\";\r\n\r\n }else{\r\n this.processHeader = \"Edit Application\";\r\n\r\n }\r\n });\r\n } \r\n if(this.processHeader!=null || this.processHeader=='' || this.processHeader != \"View Application\"){\r\n if(localStorage.getItem('aplFlag')!=undefined && localStorage.getItem('aplFlag')=='new'){\r\n this.processHeader = \"New Application\";\r\n }\r\n }\r\n if (this.router.url.indexOf('duplicate') > 0) this.processHeader = \"Duplicate Application\"; \r\n if (this.router.url.indexOf('change') > 0) this.processHeader = \"Amendment Application\";\r\n if (this.router.url.indexOf('renew') > 0) this.processHeader = \"Renewal Application\";\r\n if (this.router.url.indexOf('correction') > 0) this.processHeader = \"Permit Correction\";\r\n if (this.router.url.indexOf('vehicle') > 0) this.processHeader = \"Replace Vehicle\";\r\n if (this.router.url.indexOf('completepayment') > 0) this.processHeader = \"Complete Payment\";\r\n if (this.router.url.indexOf('duplicate') > 0 || this.router.url.indexOf('change') > 0) {\r\n this.activeRoute.params.subscribe((params: Params) => {\r\n this.applicationService.getById(params['id']).subscribe((data:any) => {\r\n this.carrierNameNew = data.carrier.name;\r\n this.permitCode = data.permit_type.code; \r\n this.permitNumber = data.permits[0].permit_num;\r\n\r\n if (this.router.url.indexOf('renew') > 0) {\r\n this.dataCntrl.permittype = data.permit_type;\r\n }\r\n \r\n });\r\n });\r\n } \r\n \r\n \r\n if (environment.authWebApi.systemData != null && environment.authWebApi.systemData.Configurations != null) {\r\n this.permitStatus13 = environment.authWebApi.systemData.Configurations.find(p => p.Code == 'PermitStatus13').Value;\r\n }\r\n\r\n if (this.router.url.indexOf('new') > 0 || localStorage.getItem('aplFlag')=='new') {\r\n this.activeRoute.params.subscribe((params: Params) => {\r\n this.dataCntrl.carrierId=params['id'];\r\n // if(localStorage.getItem('carrierId')!=undefined && localStorage.getItem('carrierId')!=null){\r\n // this.dataCntrl.carrierId=localStorage.getItem('carrierId');\r\n // }\r\n this.carrierService.getById(this.dataCntrl.carrierId).subscribe((data:any) => {\r\n \r\n this.carrierNameNew = data.name;\r\n });\r\n });\r\n }\r\n if (this.router.url.indexOf('edit') < 0 && this.router.url.indexOf('duplicate') < 0) {\r\n if (environment.authWebApi.userData.Roles.find(p => p.Code != 'ADMIN')) {\r\n this.activeRoute.params.subscribe((params: Params) => {\r\n this.dataCntrl.carrierID = params['id'];\r\n this.dataCntrl.status = params['constatus'];\r\n //console.log(params['constatus'])\r\n //console.log(params['id'])\r\n //console.log(this.dataCntrl.carrierID)\r\n //console.log(params['type']);\r\n if (params['type'] != \"\") {\r\n this.dataCntrl.isSaveAndCon = false;\r\n }\r\n this.getCarrier();\r\n this.carrierService.getById(params['id']).subscribe((data:any) => {\r\n this.carrierName = data.name;\r\n });\r\n });\r\n if(this.dataCntrl.status == 2)\r\n {\r\n this.dataCntrl.currentTab = '';\r\n }\r\n else{\r\n this.dataCntrl.currentTab = 'permitype';\r\n }\r\n\r\n this.username = environment.authWebApi.userData.User.Username;\r\n }\r\n }\r\n\r\n // if (this.router.url.indexOf('edit') > 0) {\r\n // }\r\n if (this.router.url.indexOf('edit') > 0 || this.router.url.indexOf('view') > 0) {\r\n \r\n this.activeRoute.params.subscribe((params: Params) => {\r\n // if (environment.authWebApi.userData.Roles.find(p => p.Code == 'ADMIN')) {\r\n this.disableBtn = true;\r\n this.applicationService.getById(params['id']).subscribe((data:any) => {\r\n this.applicationService.dataControlTrackChanges = data;\r\n this.dataCntrl.application = data;\r\n // if(localStorage.getItem(\"permitNum\")!=undefined && localStorage.getItem(\"permitNum\")!=null){\r\n // let permitCount:any=parseInt(localStorage.getItem(\"permitNum\"));\r\n // this.viewPermitCount=permitCount;\r\n // if(permitCount>1){\r\n // this.viewAppId=params['id'];\r\n // }else{\r\n // if(data.permit.permit_num!=null && data.permit.permit_num>0){\r\n // this.viewAppId=data.permit.permit_num;\r\n // }else{\r\n // this.viewAppId=params['id'];\r\n // }\r\n // }\r\n // }\r\n \r\n this.dataCntrl.carrierID = data.carrier_id;\r\n this.dataCntrl.permit_type_id = data.permit_type_id;\r\n this.dataCntrl.permit = data.permit;\r\n \r\n \r\n this.dataCntrl.permittype = data.permit_type;\r\n this.isProcess = false;\r\n if (environment.authWebApi.userData.Roles.find(p => p.Code == 'ADMIN')) {\r\n //console.log('This is process Admin')\r\n this.dataCntrl.currentTab = 'permitype';\r\n // this.ctrlData.currentTab = 'permitype';\r\n //this.getCarrier();\r\n this.showPage = true;\r\n }\r\n this.carrierName = this.dataCntrl.application.carrier.name;\r\n });\r\n\r\n //}\r\n });\r\n }\r\n if (this.router.url.indexOf('edit') > 0) {\r\n this.activeRoute.params.subscribe((params: Params) => {\r\n if (environment.authWebApi.userData.Roles.find(p => p.Code == 'ADMIN')) {\r\n this.disableBtn = true;\r\n //console.log('This is Admin')\r\n this.carrierName = this.dataCntrl.application.carrier.name;\r\n }\r\n });\r\n }\r\n if (this.router.url.indexOf('process') > 0) {\r\n this.activeRoute.params.subscribe((params: Params) => {\r\n // this.ctrlData = this.dataCntrl;\r\n //console.log(params['id'])\r\n this.getApp(params['id']);\r\n //console.log(this.dataCntrl.application)\r\n if (environment.authWebApi.userData.Roles.find(p => p.Code == 'ADMIN')) {\r\n this.isProcess = true;\r\n //console.log('This is process Admin')\r\n this.dataCntrl.currentTab = 'permitype';\r\n\r\n // this.ctrlData.currentTab = 'permitype';\r\n //this.getCarrier();\r\n }\r\n });\r\n\r\n }\r\n this.onActive();\r\n if (this.router.url.indexOf('view') > 0) {\r\n this.utility.activeTab = 1;\r\n this.showPage = true;\r\n this.utility.confirmCtrl = true;\r\n // if (this.router.url.indexOf('view') > 0) {\r\n // this.viewPage = false;\r\n // // this.utility.confirmCtrl = false;\r\n // } else {\r\n // this.viewPage = true;\r\n // this.utility.confirmCtrl = true;\r\n // }\r\n } else {\r\n this.utility.activeTab = 1;\r\n this.showPage = true;\r\n //console.log('Change Key = ', this.utility.changeKey);\r\n }\r\n\r\n if (this.router.url.indexOf('duplicate') > 0) {\r\n //console.log(this.dataCntrl);\r\n setTimeout(() => {\r\n this.applicationService.setTab(0);\r\n this.onActive();\r\n this.displayIsDuplicateLoader = false;\r\n if (this.router.url.indexOf('edit') > 0 && this.router.url.indexOf('duplicate') > 0 && !this.isDuplicated) {\r\n this.applicationService.setTab(4);\r\n this.onActive();\r\n this.isDuplicated = true;\r\n }\r\n this.carrierName = this.dataCntrl.application.carrier.name;\r\n\r\n }, 7000);\r\n this.activeRoute.params.subscribe((params: Params) => {\r\n if (environment.authWebApi.userData.Roles.find(p => p.Code == 'ADMIN')) {\r\n this.disableBtn = true;\r\n //console.log('This is Admin')\r\n }\r\n });\r\n }\r\n // if (this.router.url.indexOf('edit') > 0) {\r\n // this.activeRoute.params.subscribe((params: Params) => {\r\n // this.dataCntrl.application.id = params['id'];\r\n // const isSelectedVehicle = params['isSelectedVehicle'];\r\n // if(isSelectedVehicle){\r\n // //console.log(isSelectedVehicle)\r\n\r\n // this.utility.activeTab = 2;\r\n // }\r\n // });\r\n\r\n // }\r\n if (this.router.url.indexOf('correction') > 0) {\r\n this.activeRoute.params.subscribe((params: Params) => {\r\n this.dataCntrl.application.id = params['id'];\r\n if (environment.authWebApi.userData.Roles.find(p => p.Code == 'ADMIN')) {\r\n this.disableBtn = true;\r\n //console.log('This is Admin')\r\n }\r\n //this.carrierName = this.dataCntrl.application.carrier.name;\r\n //console.log(params['id']);\r\n });\r\n this.getCarrier();\r\n setTimeout(() => {\r\n this.utility.activeTab = 0;\r\n\r\n }, 400);\r\n }\r\n if (this.router.url.indexOf('completepayment') > 0) {\r\n this.activeRoute.params.subscribe((params: Params) => {\r\n this.getApp(params['id']);\r\n\r\n this.utility.activeTab = 6;\r\n this.applicationService.setTab(6);\r\n });\r\n }\r\n \r\n if (this.router.url.indexOf('new') > 0) {\r\n this.utility.dontAllowConfirm = true;\r\n } else {\r\n this.activeRoute.params.subscribe((params: Params) => {\r\n this.applicationService.getById(params['id']).subscribe((result:any) => {\r\n this.checkAllowConfirm(result.id, result.permit_type.id);\r\n });\r\n });\r\n }\r\n }\r\n\r\n showMenu(dropdown) {\r\n this.showMenuBtn = !this.showMenuBtn\r\n }\r\n getApp(id) {\r\n this.applicationService.getById(id).subscribe((data:any) => {\r\n //console.log(data);\r\n this.dataCntrl.application = data;\r\n this.dataCntrl.carrierID = data.carrier_id;\r\n this.getCarrier();\r\n })\r\n }\r\n getCarrier() {\r\n this.pageload = true;\r\n this.carrierService.getById(this.dataCntrl.carrierID).subscribe(result => {\r\n this.setCarrierData(result);\r\n this.pageload = false;\r\n }, error => {\r\n this.pageload = false;\r\n //console.log(error);\r\n });\r\n }\r\n\r\n setCarrierData(data) {\r\n data.account_balance = data.account_balance != 0 ? this.currformat.transform(parseFloat(data.account_balance)) : 'R 0.00';\r\n this.dataCntrl.carrier = data;\r\n this.dataCntrl.application.carrier_id = data.id;\r\n this.dataCntrl.application.person_id = data.person_id;\r\n }\r\n cancel() {\r\n this.routr.navigateByUrl('permit/approval')\r\n }\r\n approve() {\r\n this.routr.navigateByUrl('permit/approval/correspondence')\r\n }\r\n tabChanged(tab) {\r\n this.dataCntrl.currentTab = tab;\r\n this.disableButtons();\r\n switch (tab) {\r\n case 'permitype': {\r\n this.canSave = this.dataCntrl.permittypeSelected ? true : false;\r\n this.activeTab = tab;\r\n break;\r\n }\r\n case 'vehicle': {\r\n this.canSave = true;\r\n this.activeTab = tab;\r\n break;\r\n }\r\n case 'route': {\r\n this.canSave = true;\r\n this.activeTab = tab;\r\n break;\r\n }\r\n case 'motivation': {\r\n this.canSave = true;\r\n this.activeTab = tab;\r\n break;\r\n }\r\n case 'uploads': {\r\n this.canSave = true;\r\n this.activeTab = tab;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n disableButtons() {\r\n this.canSave = false;\r\n this.canSubmit = false;\r\n }\r\n\r\n onStart() {\r\n this.saveApplication();\r\n this.canSave = true;\r\n this.dataCntrl.processStarted = true;\r\n this.disableTabs = this.dataCntrl.permittypeSelected ? false : true;\r\n this.activeTab = 'vehicle';\r\n this.dataCntrl.currentTab = 'vehicle';\r\n }\r\n\r\n onCancel() {\r\n if (this.dataCntrl.processStarted == true && this.dataCntrl.application.id == undefined) {\r\n this.showModal.showConfirm('Cancel Application', 'Are you sure you want to cancel?', `Your application has not been saved. If you continue to cancel without saving, you will loose all your data.`, 'Yes', 'No')\r\n .subscribe((isConfirmed) => {\r\n if (isConfirmed) {\r\n this.router.navigateByUrl(`/carrier/permit/application/${this.dataCntrl.carrierID}`);\r\n } else {\r\n return;\r\n }\r\n });\r\n } else {\r\n this.router.navigateByUrl(`/carrier/permit/application/${this.dataCntrl.carrierID}`);\r\n }\r\n }\r\n\r\n onSave() {\r\n switch (this.dataCntrl.currentTab) {\r\n case 'permitype': {\r\n if (this.dataCntrl.application.id == undefined) {\r\n \r\n this.saveApplication();\r\n } else {\r\n this.showModal.showAlert('Save Application', 'Application saved successfully');\r\n }\r\n break;\r\n }\r\n case 'vehicle': {\r\n this.saveVehicles();\r\n break;\r\n }\r\n case 'route': {\r\n this.saveRoute();\r\n break;\r\n }\r\n case 'motivation': {\r\n this.saveMotivation();\r\n break;\r\n }\r\n case 'uploads': {\r\n if (this.dataCntrl.application.id == undefined) {\r\n this.saveApplication();\r\n } else {\r\n this.showModal.showAlert('Save Application', 'Application saved successfully');\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n\r\n saveApplication() {\r\n this.tabload = true;\r\n this.dataCntrl.application.date_modified = this.dataCntrl.application.date_created = new Date();\r\n this.dataCntrl.application.user_modified = this.dataCntrl.application.user_created = this.username;\r\n \r\n \r\n this.applicationService.postApplication(this.dataCntrl.application)\r\n .subscribe((result:any) => {\r\n this.dataCntrl.application = result;\r\n if(this.dataCntrl.permit.length > 0)\r\n this.dataCntrl.permit.forEach(permit => {\r\n permit.permit_type_id = result.permit_type_id;\r\n permit.application_id = result.id;\r\n //alert('savedApp');\r\n \r\n this.savePermit(permit);\r\n });\r\n },\r\n error => {\r\n this.tabload = false;\r\n this.showModal.showError('Save Application', 'Failed to save application. If the problem persist, please contact system administrator.', error);\r\n\r\n return;\r\n });\r\n }\r\n\r\n savePermit(permit) {\r\n permit.date_modified = permit.date_created = new Date();\r\n permit.user_modified = permit.user_created = this.username;\r\n permit.permit_fee = this.dataCntrl.permittype.current_fee == null ? 0 : this.dataCntrl.permittype.current_fee;\r\n permit.application_fee = this.dataCntrl.permittype.current_application_fee == null ? 0 : this.dataCntrl.permittype.current_application_fee;\r\n this.permitService.postPermit(permit)\r\n .subscribe((result:any) => {\r\n var index = this.dataCntrl.permit.findIndex(x=>x.id == result.id);\r\n this.dataCntrl.permits[index] = result;\r\n // this.dataCntrl.permit = result;\r\n this.tabload = false;\r\n },\r\n error => {\r\n this.tabload = false\r\n this.showModal.showError('Save Application', 'Failed to save application. If the problem persist, please contact system administrator.', error);\r\n return;\r\n });\r\n }\r\n\r\n saveVehicles() {\r\n this.tabload = true;\r\n this.dataCntrl.vehicles.forEach(element => {\r\n //element.permit_id = this.dataCntrl.permit.id;\r\n \r\n element.date_modified = element.date_created = new Date();\r\n element.user_modified = element.user_created = this.username;\r\n });\r\n\r\n if (this.dataCntrl.application.id == undefined) {\r\n this.saveApplication();\r\n } else {\r\n this.vehicleService.postVehicle(this.dataCntrl.vehicles)\r\n .subscribe(result => {\r\n this.dataCntrl.vehicles = result;\r\n this.updateVehiclelist(result);\r\n ///this.toastr.success('Saved Step 1 Successfully','Step 1');\r\n },\r\n error => {\r\n this.tabload = false;\r\n this.showModal.showError('Save Application', 'Failed to save application. If the problem persist, please contact system administrator.', error);\r\n return;\r\n });\r\n }\r\n }\r\n\r\n updateVehiclelist(data) {\r\n this.vehicleComp.listvehicles = data;\r\n this.tabload = false;\r\n //this.nextFrame();\r\n }\r\n\r\n saveRoute() {\r\n \r\n this.tabload = true;\r\n if (this.dataCntrl.application.id == undefined) {\r\n this.saveApplication();\r\n } else {\r\n this.applicationService.putApplication(this.dataCntrl.application)\r\n .subscribe(result => {\r\n this.dataCntrl.application = result;\r\n this.tabload = false;\r\n this.showModal.showAlert('Save Application', 'Route saved successfully');\r\n },\r\n error => {\r\n this.tabload = false;\r\n this.showModal.showError('Save Application', 'Failed to save application. If the problem persist, please contact system administrator.', error);\r\n return;\r\n });\r\n }\r\n }\r\n\r\n saveMotivation() {\r\n this.tabload = true;\r\n if (this.dataCntrl.application.id == undefined) {\r\n this.saveApplication();\r\n } else {\r\n this.applicationService.putApplication(this.dataCntrl.application)\r\n .subscribe(result => {\r\n this.dataCntrl.application = result;\r\n this.tabload = false;\r\n this.showModal.showAlert('Save Application', 'Motivation saved successfully');\r\n },\r\n error => {\r\n //console.log(error)\r\n this.tabload = false;\r\n this.showModal.showError('Save Application', 'Failed to save application. If the problem persist, please contact system administrator.', error);\r\n return;\r\n });\r\n }\r\n }\r\n onActive() {\r\n \r\n this.applicationService.getTab().subscribe(x => {\r\n \r\n if (x >= 0) {\r\n this.utility.activeTab = x;\r\n \r\n if(this.utility.activeTab == 2 && this.isReplaceVehicle) \r\n {\r\n \r\n this.dataCntrl.application.permit_type_id = 16;\r\n }\r\n }\r\n\r\n })\r\n }\r\n onActive1(tabNum) {\r\n \r\n if(this.router.url.indexOf('view')>0){\r\n this.applicationService.setTab(tabNum);\r\n this.onActive();\r\n\r\n\r\n }\r\n if(tabNum==1){\r\n if(this.router.url.indexOf('edit')>0){\r\n if(this.dataCntrl.application.id !=null){\r\n this.router.navigate(['carrier/permit/application/edit/',this.dataCntrl.application.id ]);\r\n }\r\n }\r\n }\r\n \r\n \r\n if (Object.keys(this.dataCntrl.permittype).length > 0 && this.router.url.indexOf('view')<0) {\r\n \r\n if (this.dataCntrl.application.id != null) {\r\n //console.log(this.dataCntrl.application.vehicle[0]);\r\n if((this.dataCntrl.application.vehicle.length==0 || (this.dataCntrl.application.vehicle.length==1 && this.dataCntrl.application.vehicle[0]==undefined)) && tabNum>2 && \r\n (this.dataCntrl.permittype.temp_long_ind==1 || (this.dataCntrl.permittype.temp_long_ind==2 && this.dataCntrl.permittype.freight_passenger_ind==1) ||\r\n (this.dataCntrl.permittype.temp_long_ind==2 && this.dataCntrl.permittype.freight_passenger_ind==2 && this.dataCntrl.application.status_id==this.permitStatus13))) {\r\n this.applicationService.setTab(2);\r\n this.onActive();\r\n return false;\r\n }else if(this.dataCntrl.application.route_id==null && tabNum>3){\r\n this.applicationService.setTab(3);\r\n this.onActive();\r\n return false;\r\n }else if(this.dataCntrl.application.motivation_detail==\"\" && tabNum>4){\r\n this.applicationService.setTab(4);\r\n this.onActive();\r\n return false;\r\n }else if(this.utility.timetableActive && this.router.url.indexOf('view')<0){\r\n if(this.dataCntrl.timeTableList!=undefined && this.dataCntrl.timeTableList.length==0 && tabNum>5){\r\n this.applicationService.setTab(5);\r\n this.onActive();\r\n return false;\r\n }else if(this.dataCntrl.uploadedDocs!=undefined && this.dataCntrl.uploadedDocs.length==0 && tabNum>6){\r\n this.applicationService.setTab(6);\r\n this.onActive();\r\n return false;\r\n }\r\n }else if( this.router.url.indexOf('view')<0 && this.dataCntrl.uploadedDocs!=undefined && this.dataCntrl.uploadedDocs.length==0 && tabNum>5){\r\n this.applicationService.setTab(5);\r\n this.onActive();\r\n return false;\r\n }\r\n this.applicationService.setTab(tabNum);\r\n this.onActive();\r\n } else {\r\n this.toastr.warning('Please save and continue', 'Permit Type');\r\n }\r\n\r\n } else {\r\n if (tabNum != 1 && this.router.url.indexOf('view')<0) {\r\n if(tabNum>1 && Object.keys(this.dataCntrl.permittype).length == 0){\r\n this.toastr.warning('Please select your Permit Type ', 'Permit Type');\r\n this.applicationService.setTab(1);\r\n this.onActive();\r\n return false;\r\n }\r\n }\r\n\r\n }\r\n\r\n }\r\n nextFrame = () => {\r\n this.utility.activeTab = 3;\r\n this.utility.confirmCtrl = true;\r\n this.iconCtrl = 3;\r\n }\r\n getSavedVehicleByPermit(id) {\r\n this.pageload = true;\r\n this.listvehicles = [];\r\n\r\n this.permitSevc.getAppPer().subscribe((data:any) => {\r\n \r\n let permits: any = \"\";\r\n permits = data.filter(i => i.application_id == this.dataCntrl.application.id );\r\n this.vehicleService.getAllVehicles().subscribe((x: any) => {\r\n if (permits.length > 0) {\r\n for (let p = 0; p < permits.length; p++) {\r\n //console.log(permits[p].id)\r\n\r\n //console.log(x.filter(i => i.permit_id == permits[p].id))\r\n let allVeh = x.filter(i => i.permit_id == permits[p].id);\r\n\r\n if (allVeh.length > 0) {\r\n for (let v = 0; v < allVeh.length; v++) {\r\n\r\n this.vehicleService.getAllVe(allVeh[v].permit_id).subscribe((vehicles:any) => {\r\n //console.log(vehicles)\r\n let object = {\r\n id: vehicles.id,\r\n vehicle_type_id: vehicles.vehicle_type_id,\r\n vehicle_make_id: vehicles.vehicle_make_id,\r\n vehicle_make: vehicles.vehicle_make,\r\n vehicle_type: vehicles.vehicle_type,\r\n is_current: false,\r\n registration_number: vehicles.registration_number,\r\n // seating_capacity:vehicles.seating_capacity,\r\n number_passengers: vehicles.number_passengers,\r\n gvn: vehicles.gvn,\r\n vin: vehicles.vin,\r\n date_license_expiry: this.datePipe.transform(vehicles.date_license_expiry, 'dd/MM/yyyy'),\r\n start_date: this.datePipe.transform(vehicles.start_date, 'dd/MM/yyyy'),\r\n editMode: false\r\n }\r\n //console.log(object)\r\n // if(this.listvehicles.length === data.vehicle.length){\r\n // //console.log('Its 0')\r\n // this.listvehicles = this.dataCntrl.vehicles ;\r\n // this.pageload = false;\r\n\r\n // return;\r\n // }\r\n this.listvehicles.push(object);\r\n this.pageload = false;\r\n\r\n //console.log(this.listvehicles)\r\n\r\n\r\n this.listvehicles.sort(function (a, b) {\r\n if (a.id < b.id) { return -1; }\r\n if (a.id > b.id) { return 1; }\r\n return 0;\r\n })\r\n //console.log(this.dataCntrl.vehicles);\r\n }, error => {\r\n this.pageload = false;\r\n //console.log(this.listvehicles);\r\n this.dataCntrl.vehicles = this.listvehicles;\r\n })\r\n\r\n }\r\n }\r\n\r\n this.pageload = false;\r\n this.dataCntrl.vehicles = this.listvehicles;\r\n\r\n\r\n }\r\n } else {\r\n this.pageload = false;\r\n //console.log(this.listvehicles);\r\n this.dataCntrl.vehicles = this.listvehicles;\r\n\r\n\r\n }\r\n\r\n // this.newListvehicles.push(x)\r\n // //console.log(this.newListvehicles)\r\n // this.dataCntrl.vehicles = this.newListvehicles\r\n // // this.listvehicles = this.dataCntrl.vehicles;\r\n\r\n\r\n\r\n }, error => {\r\n this.pageload = false;\r\n //console.log(this.listvehicles);\r\n this.dataCntrl.vehicles = this.listvehicles;\r\n })\r\n\r\n\r\n }, error => {\r\n this.pageload = false;\r\n //console.log(this.listvehicles);\r\n this.dataCntrl.vehicles = this.listvehicles;\r\n })\r\n }\r\n\r\n orderTabSequence = (isPlus, seq) => {\r\n return (isPlus) ? seq : seq;\r\n }\r\n\r\n checkAllowConfirm(applicationId, permitTypeId) {\r\n this.displayIsDuplicateLoader = true;\r\n if (this.router.url.indexOf('view') > 0) {\r\n this.utility.dontAllowConfirm = false;\r\n }\r\n else\r\n {\r\n this.permitTypeDocumentService.getLinkedAndUnlinkedDoctypes(permitTypeId).subscribe(permitTypeDocs => {\r\n let permitTypeDocList = permitTypeDocs[\"PermitLinked\"].filter(status => status.is_mandatory == true);\r\n this.documentsServiceService.getPermitById(applicationId).subscribe((applicationDocs:any) => {\r\n let applicationDocList = applicationDocs;\r\n if (applicationDocList.length >= permitTypeDocList.length)\r\n {\r\n let docFound: string = \"\";\r\n let count: number = 0;\r\n\r\n // determine if all mandatory documents have been uploaded\r\n permitTypeDocList.forEach(doc => {\r\n docFound = applicationDocList.find(appDoc => appDoc.code === doc.code)\r\n if (docFound != undefined && docFound != null) {\r\n count++;\r\n }\r\n });\r\n\r\n //console.log(count);\r\n\r\n // if count equals number of mandatory documents, all mandatory documents have been uploaded\r\n if (count == permitTypeDocList.length){\r\n this.utility.dontAllowConfirm = false;\r\n } else {\r\n this.utility.dontAllowConfirm = true;\r\n }\r\n }\r\n else {\r\n this.utility.dontAllowConfirm = true;\r\n }\r\n }\r\n , error => {\r\n if (error.status != 404) {\r\n this.toastr.error(`Error during permit application. The server error response code is Error ${error.status} : ${error.statusText}`, `ERROR : Permit Application`);\r\n // this.toastr.error(error.status + \" - \" + error.statusText, 'SYSTEM ERROR! (new-permit-application)');\r\n }\r\n else {\r\n if (permitTypeDocList.length == 0) {\r\n this.utility.dontAllowConfirm = false;\r\n } else {\r\n this.utility.dontAllowConfirm = true;\r\n }\r\n \r\n }\r\n });\r\n }\r\n , error => {\r\n if (error.status != 404) {\r\n this.toastr.error(`Error during permit application. The server error response code is Error ${error.status} : ${error.statusText}`, `ERROR : Permit Application`);\r\n // this.toastr.error(error.status + \" - \" + error.statusText, 'SYSTEM ERROR! (new-permit-application)');\r\n }\r\n else {\r\n this.utility.dontAllowConfirm = true;\r\n }\r\n });\r\n }\r\n this.displayIsDuplicateLoader = false;\r\n }\r\n}\r\n","
\r\n \r\n
\r\n
\r\n
\r\n
\r\n

{{processHeader}} for {{carrierNameNew}}. Permit: {{permitCode}} - {{permitNumber}}\r\n \r\n {{viewAppId}}\r\n

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, Params, Router } from '@angular/router';\r\nimport { CurrencyFormat } from '../../pipes/currencyFormat.pipe';\r\nimport { CarrierService } from '../../services/carrier.service';\r\nimport { PopupService } from '../../services/shared/popup.service';\r\nimport { AuthWebService } from 'app/services/authweb.service';\r\nimport { accounting } from 'accounting';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { ApplicationService } from '../../services/application.service';\r\nimport { UtilityServiceService } from 'app/services/utility-service.service';\r\nimport { environment } from 'environments/environment';\r\nimport { PermitService } from 'app/services/permit.service';\r\nimport { RouteService } from 'app/services/route.service';\r\nimport { Observable } from 'rxjs';\r\nimport { PermitTypeService } from 'app/services/permit-type.service';\r\nimport { ConfirmDialogService } from 'app/services/shared/confirm-dialog/confirm-dialog.service';\r\n\r\ndeclare var $;\r\n\r\n@Component({\r\n selector: 'app-permit-application',\r\n templateUrl: './permit-application.component.html',\r\n styleUrls: ['./permit-application.component.css'],\r\n providers: [CurrencyFormat]\r\n})\r\nexport class PermitApplicationComponent implements OnInit {\r\n dataCntrl: any = { carrierID: -1, carrier: {}, applications: [], applicationtype: {} };\r\n pageSize: number = 10;\r\n pageSizeMax: number = 2147483647; // C# Int32.MaxValue\r\n pageNumber: number = 1;\r\n Count: number = 0;\r\n pageload: boolean;\r\n gridload: boolean;\r\n permitStatus14: any = 0;\r\n permitStatus13: any = 0;\r\n permitStatus7:any = 0;\r\n permitStatus6:any = 0;\r\n permitStatus2:any = 0;\r\n user\r\n acc: any = { link_person: '', status: '' };\r\n PermitStatus10:any = 0;\r\n message = '';\r\n loadCompleted: boolean = false;\r\n \r\n vehicles: any = 0;\r\n lineTotal: any = 0;\r\n totalFee: any = 0;\r\n chargeInd: any = 0;\r\n submissionAmt: any = 0;\r\n paidAmt: any = 0;\r\n dueAmt: any = 0;\r\n\r\n permitTypes: any = {};\r\n\r\n constructor(public applicationService: ApplicationService, private router: Router, private activeRoute: ActivatedRoute,private confirmDialogService: ConfirmDialogService,\r\n private carrierService: CarrierService, private permitTypeService: PermitTypeService, private toaster: ToastrService,\r\n public currformat: CurrencyFormat, public showModal: PopupService, private authWebService: AuthWebService,public utility: UtilityServiceService,private permitService: PermitService,) {\r\n this.user = (this.authWebService.userData) ? this.authWebService.userData.User : null;\r\n }\r\n\r\n ngOnInit() {\r\n this.PermitStatus10 = this.authWebService.userData.Configurations.find(p => p.Code == 'PermitStatus10').Value\r\n\r\n //console.log(this.dataCntrl.application);\r\n //console.log(this.user);\r\n if (environment.authWebApi.systemData != null && environment.authWebApi.systemData.Configurations != null) {\r\n this.permitStatus14 = environment.authWebApi.systemData.Configurations.find(p => p.Code == 'PermitStatus14').Value;\r\n this.permitStatus13 = environment.authWebApi.systemData.Configurations.find(p => p.Code == 'PermitStatus13').Value;\r\n this.permitStatus7 = environment.authWebApi.systemData.Configurations.find(p => p.Code == 'PermitStatus7').Value;\r\n this.permitStatus6 = environment.authWebApi.systemData.Configurations.find(p => p.Code == 'PermitStatus6').Value;\r\n this.permitStatus2 = environment.authWebApi.systemData.Configurations.find(p => p.Code == 'PermitStatus2').Value;\r\n }\r\n this.activeRoute.params.subscribe((params: Params) => {\r\n this.dataCntrl.carrierID = params['id'];\r\n //alert(this.dataCntrl.carrierID);\r\n });\r\n this.utility.changeKey = 0;\r\n this.getApplications();\r\n this.getCarrier();\r\n this.loadAccounts();\r\n this.getPermitTypes();\r\n\r\n }\r\n navigateTo(value, list) {\r\n //console.log(value)\r\n if (value === 'myNum') {\r\n return this.router.navigate(['under-construction']);\r\n }\r\n if (value == 'renew') {\r\n this.confirmDialogService.confirmThis('Are you sure you want to renew this permit?',\r\n () => {\r\n let url: any = \"carrier/permit/application/renew/\" + list.id + \"/\" + list.carrier_id + \"/\" + true;\r\n this.router.navigate([url]);\r\n \r\n }, () => { \r\n //No here\r\n $(\"#selectControl option[value='']\").prop('selected', true);\r\n return false;\r\n })\r\n }\r\n\r\n if (value == 'view') {\r\n //console.log(list);\r\n if(list.status_id == 74)\r\n {\r\n let url: any = '/carrier/compliance/return/list/' + list.carrier_id + \"/\" + 0 + '/' + true + '/' + list.id;\r\n this.router.navigate([url]);\r\n //this.router.navigate(['/carrier/compliance/application'] ,{ queryParams: { id:list.carrier_id,appID:list.id, compID:item.id,typeId:list.permit_type_id} });\r\n }\r\n else{\r\n // localStorage.setItem('permitNum',list.number_of_permits);\r\n this.router.navigate(['/carrier/permit/application/view', list.id]);\r\n }\r\n }\r\n\r\n if (value == 'edit') {\r\n let PermitStatus2 = this.authWebService.userData.Configurations.find(c => c.Code == \"PermitStatus2\").Value\r\n if (list.status_id < PermitStatus2 || list.status_id == this.permitStatus13 || list.status_id == PermitStatus2) {\r\n this.router.navigate(['/carrier/permit/application/edit', list.id]);\r\n }\r\n else {\r\n this.toaster.warning(\"You may only edit an application that has not been submitted. You can try unsubmit the application.\", \"\");\r\n }\r\n }\r\n\r\n if (value == 'delete') {\r\n this.deleteApplication(list);\r\n }\r\n\r\n if (value == \"unsubmit\") {\r\n //console.log(list);\r\n let PermitStatus10 = this.authWebService.userData.Configurations.find(c => c.Code == \"PermitStatus10\").Value\r\n let permStatusesIsLess = true;\r\n list.permits.forEach(element => {\r\n if (element.status_id >= PermitStatus10)\r\n permStatusesIsLess = false;\r\n });\r\n if ((list.permits.length == 1 && list.permits[0].status_id < PermitStatus10) || list.status_id < PermitStatus10 && permStatusesIsLess) {\r\n // this.showModal.showYesNo('Unsubmit Application', 'Are you sure you wish to unsubmit the application?', `If you have paid any fees they will be credited to your account and you can use the credit to pay for another application.`, 'Yes', 'No')\r\n // .subscribe((isConfirmed) => {\r\n // if (isConfirmed) {\r\n // this.gridload = true; \r\n // this.applicationService.UnsubmitApp(list.id, 3).subscribe(data => {\r\n // this.toaster.success(\"Your application \" + list.id + \" has been unsubmitted. You can edit it and resubmit it at any time. If you have already been invoiced, your account has been credited and you can use these funds to pay for another permit application.\", \"\");\r\n // this.gridload = false;\r\n // this.getApplications();\r\n // this.getCarrier();\r\n // this.loadAccounts();\r\n // });\r\n // } else {\r\n // return;\r\n // }\r\n // });\r\n this.confirmDialogService.confirmThis(\"Are you sure you wish to unsubmit the application? If you have paid any fees they will be credited to your account and you can use the credit to pay for another application.\", () => { \r\n \r\n this.gridload = true; \r\n this.applicationService.UnsubmitApp(list.id, 3).subscribe(data => {\r\n this.toaster.success(\"Your application \" + list.id + \" has been unsubmitted. You can edit it and resubmit it at any time. If you have already been invoiced, your account has been credited and you can use these funds to pay for another permit application.\", \"\");\r\n this.gridload = false;\r\n this.getApplications();\r\n this.getCarrier();\r\n this.loadAccounts();\r\n });\r\n \r\n }, () => { \r\n return;\r\n })\r\n } else {\r\n this.toaster.warning(\"You may not unsubmit an application where the permit has been printed or if the application consists of many permits and payment has been made. You can try and unsubmit the individual permit applications from the permits list screen.\", \"\");\r\n }\r\n }\r\n\r\n if(value == \"confirm\"){\r\n console.dir(list.permits);\r\n //console.log(list.permits.length)\r\n if(list.permits.length == 1)\r\n {\r\n\r\n if(list.permits[0].status_id< this.permitStatus13)\r\n {\r\n this.toaster.warning(\"Permit must have been approved before you can confirm the details\");\r\n return;\r\n }\r\n\r\n\r\n if(list.permits[0].status_id> this.permitStatus7)\r\n {\r\n this.toaster.warning(\"Permit has already been processed and you cannot change it\");\r\n return;\r\n }\r\n\r\n\r\n this.router.navigate(['/carrier/permit/application/view/'+ list.permits[0].id + '/' + 2]);\r\n }\r\n if(list.permits.length > 1)\r\n {\r\n this.toaster.warning(\"This application contains more than one permit. Please select the permit on the Permits list screen\");\r\n return;\r\n }\r\n }\r\n if (value == 'cancelApp') {\r\n this.cancelApplication(list);\r\n }\r\n\r\n if(value == \"completepayment\"){\r\n if (this.sufficientFunds(list) == true) {\r\n localStorage.setItem('oldAppId',list.id);\r\n this.router.navigate(['/carrier/permit/application/change/'+ list.id +'/completepayment']);\r\n }\r\n else {\r\n this.toaster.warning(`The account balance on this carrier account is insuffecient to complete payment on this appliation. Please try again after the account balance has been increased.`, `Insuffecient Funds`);\r\n $(\"#selectControl option[value='']\").prop('selected', true);\r\n return;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n getApplications() {\r\n var thisCarrier = this.dataCntrl;\r\n this.gridload = true;\r\n this.loadCompleted = false;\r\n this.carrierService.getCarrierApplications(this.dataCntrl.carrierID, this.pageNumber, this.pageSize).subscribe(result => {\r\n this.setApplicationData(result);\r\n }, error => {\r\n this.gridload = false;\r\n this.loadCompleted = true;\r\n });\r\n }\r\n\r\n viewAcc(list, url) {\r\n if (list.status == 'AccountStatus3') {\r\n this.toaster.error('Your Carrier account has not been approved');\r\n return false;\r\n } else {\r\n this.router.navigate([url, list.carrierID]);\r\n }\r\n }\r\n\r\n setApplicationData(data) {\r\n let numPermits: any;\r\n data.Items.forEach(element => {\r\n element.total_fees = this.formatCurrency(element.total_fees);\r\n \r\n if (element.number_of_permits > 1) {\r\n if(element.status_id == 74)\r\n {\r\n numPermits = element.vehicle.filter(x => x != null && x.permit != null && x.permit.status_id == 74);\r\n }\r\n else\r\n {\r\n numPermits = element.vehicle.filter(x => x != null);\r\n }\r\n if (numPermits.length > 0) {\r\n element.number_of_permits = numPermits.length;\r\n } else {\r\n element.number_of_permits = 1;\r\n }\r\n }\r\n });\r\n this.Count = data.Count\r\n this.dataCntrl.applications = data.Items\r\n //console.log(data.Items);\r\n this.gridload = false;\r\n this.loadCompleted = true;\r\n }\r\n formatCurrency(value) {\r\n return accounting.formatMoney(value, 'R', 2, ' ', '.');\r\n }\r\n getCarrier() {\r\n this.pageload = true;\r\n this.carrierService.getById(this.dataCntrl.carrierID).subscribe(result => {\r\n this.setCarrierData(result);\r\n //console.log(result)\r\n this.pageload = false;\r\n }, error => {\r\n this.pageload = false;\r\n //console.log(error);\r\n });\r\n }\r\n\r\n setCarrierData(data) {\r\n if (data.account_balance != 0) {\r\n data.account_balance = -(parseFloat(data.account_balance));\r\n }\r\n data.account_balance = data.account_balance != 0 ? this.currformat.transform(parseFloat(data.account_balance)) : 'R 0.00';\r\n this.dataCntrl.carrier = data;\r\n //console.log(this.dataCntrl.carrier);\r\n }\r\n loadAccounts() {\r\n if (this.user) {\r\n this.carrierService.listCarrierAccountsByUserId(this.user.Id).subscribe((result:any) => {\r\n //console.log(result.find(x => x.id == this.dataCntrl.carrierID))\r\n this.acc = result.find(x => x.id == this.dataCntrl.carrierID);\r\n if (this.acc.account_balance != 0) {\r\n this.acc.account_balance = -(parseFloat(this.acc.account_balance));\r\n }\r\n this.acc.account_balance = this.formatCurrency(this.acc.account_balance)\r\n\r\n }, error => {\r\n\r\n })\r\n }\r\n }\r\n\r\n getPermitTypes(){\r\n this.permitTypeService.getAll().subscribe(result => {\r\n this.permitTypes = result;\r\n });\r\n }\r\n\r\n onBack() {\r\n this.router.navigateByUrl('/carrier/accounts');\r\n }\r\n\r\n editApplication(id) {\r\n this.showModal.showAlert('Edit Application', 'This feature will be available in release 2');\r\n }\r\n\r\n viewApplication(id) {\r\n this.router.navigateByUrl(`/carrier/permit/edit/${id}/false`); //false to just the application\r\n }\r\n\r\n onPage(page) {\r\n this.pageNumber = page\r\n this.getApplications();\r\n return page;\r\n }\r\n\r\n pageSizeName(value) {\r\n if (value === this.pageSizeMax) return 'All';\r\n return value;\r\n }\r\n\r\n pageSizes() {\r\n return [5, 10, 25, 50, 100, 500, this.pageSizeMax];\r\n }\r\n\r\n pageSizeChange() {\r\n this.getApplications();\r\n }\r\n cancelApplication(item){\r\n //console.log(item)\r\n // this.showModal.showYesNo('Cancel Permit', 'Are you sure that you want to cancel your application. If your application fee has been paid you cannot get it refunded. If your permit fee has been paid, you must contact us to apply for a refund.', ``, 'Yes', 'No')\r\n // .subscribe((isConfirmed) => {\r\n\r\n // if (isConfirmed) {\r\n // this.showModal.showYesNo('Confirm', 'You are about to cancel your permit. Press Yes to continue and cancel the permit.', ``, 'Yes', 'No')\r\n // .subscribe((isConfirmed) => {\r\n\r\n // if (isConfirmed) {\r\n\r\n // if(item.permits.length === 1){\r\n // this.message = 'Processing your request, please wait...!';\r\n // this.gridload = true;\r\n // this.permitService.UpdatePermitStatus(item.permits[0].id).subscribe(data => {\r\n // if (data === true) {\r\n // this.toaster.success('The permit was cancelled successfully');\r\n // this.getApplications();\r\n // this.getCarrier();\r\n // this.loadAccounts();\r\n\r\n // } else {\r\n\r\n // // this.toaster.error('You cannot request a change after ' + correctDays1 + ' day(s)');\r\n // }\r\n // // this.gridload = false;\r\n\r\n // }, error => {\r\n // this.gridload = false;\r\n // this.toaster.error(\"Your request could not be processed succesfully.Please contact the system admin if the problem persists.\");\r\n\r\n // })\r\n // }\r\n // else{\r\n // this.toaster.info('This application contains more than one permit. Please select the permit on the Permits list screen.')\r\n // this.router.navigateByUrl(`/carrier/permit/application/cancel/permit/${item.carrier_id}/${item.id}`);\r\n // }\r\n\r\n\r\n // } else {\r\n // return false;\r\n // }\r\n // });\r\n\r\n // } else {\r\n // return false;\r\n // }\r\n // });\r\n this.confirmDialogService.confirmThis(\"Are you sure that you want to cancel your application? If your application fee has been paid you cannot get it refunded. If your permit fee has been paid, you must contact us to apply for a refund.\", () => { \r\n \r\n this.confirmDialogService.confirmThis(\"You are about to cancel your permit. Press Yes to continue and cancel the permit.\", () => { \r\n \r\n if(item.permits.length === 1){\r\n this.message = 'Processing your request, please wait...!';\r\n this.gridload = true;\r\n this.permitService.UpdatePermitStatus(item.permits[0].id).subscribe(data => {\r\n if (data === true) {\r\n this.toaster.success('The permit was cancelled successfully');\r\n this.getApplications();\r\n this.getCarrier();\r\n this.loadAccounts();\r\n \r\n } else {\r\n \r\n // this.toaster.error('You cannot request a change after ' + correctDays1 + ' day(s)');\r\n }\r\n // this.gridload = false;\r\n \r\n }, error => {\r\n this.gridload = false;\r\n this.toaster.error(\"Your request could not be processed succesfully.Please contact the system admin if the problem persists.\");\r\n \r\n })\r\n }\r\n else{\r\n this.toaster.info('This application contains more than one permit. Please select the permit on the Permits list screen.')\r\n this.router.navigateByUrl(`/carrier/permit/application/cancel/permit/${item.carrier_id}/${item.id}`);\r\n }\r\n \r\n }, () => { \r\n return false;\r\n })\r\n \r\n }, () => { \r\n return false;\r\n })\r\n }\r\n\r\n deleteApplication(applicationData)\r\n {\r\n if (applicationData.id == undefined || applicationData.id == null) {\r\n this.router.navigate(['/carrier/permit/application/' + this.dataCntrl.carrierID]);\r\n } else {\r\n this.confirmDialogService.confirmThis('Are you sure you want to delete application no ' + applicationData.id + '?', () => { \r\n \r\n this.message = 'Processing your request, please wait...';\r\n this.gridload = true;\r\n\r\n console.log(\"delete application\");\r\n\r\n // applicationData.permits.forEach(permit => {\r\n // this.deletePermits(permit.id)\r\n // });\r\n // setTimeout(() => {\r\n \r\n // }, 8000);\r\n this.deleteApp(applicationData.id);\r\n\r\n \r\n \r\n }, () => { \r\n //No here\r\n }) \r\n // this.showModal.showYesNo('Delete Application', 'Are you sure you want to delete application no ' + applicationData.id + '?', `You're about to delete application`, 'Yes', 'No').subscribe((isConfirmed) => {\r\n // if (isConfirmed) {\r\n // this.message = 'Processing your request, please wait...';\r\n // this.gridload = true;\r\n\r\n // console.log(\"delete application\");\r\n\r\n // // applicationData.permits.forEach(permit => {\r\n // // this.deletePermits(permit.id)\r\n // // });\r\n // // setTimeout(() => {\r\n \r\n // // }, 8000);\r\n // this.deleteApp(applicationData.id);\r\n\r\n // }\r\n // else {\r\n // return;\r\n // }\r\n // });\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n deletePermits(id) {\r\n this.pageload = true;\r\n this.permitService.deletePermit(id).subscribe(x => { });\r\n }\r\n\r\n deleteApp(id){ \r\n this.applicationService.deleteApplication(id).subscribe(x =>\r\n {\r\n if (x != null) {\r\n this.gridload = false;\r\n this.toaster.clear();\r\n this.toaster.success('The Permit Application was deleted successfully.', 'Delete Application');\r\n this.refreshPage()\r\n setTimeout(() => {\r\n this.toaster.clear();\r\n //clearTimeout();\r\n }, 2500);\r\n }\r\n else {\r\n setTimeout(() => { \r\n console.log('retry delete application');\r\n }, 8000);\r\n }\r\n }\r\n , error =>\r\n {\r\n this.gridload = false;\r\n console.log(JSON.stringify(error));\r\n this.toaster.error(error.status + \" - \" + error.statusText, 'SYSTEM ERROR! (Application delete)');\r\n \r\n this.getApplications();\r\n });\r\n }\r\n\r\n deleteAppAgain(id) {\r\n this.applicationService.deleteApplication(id).subscribe(x => {\r\n if (typeof(x) == 'object') {\r\n this.toaster.success('The Permit Application was deleted successfully.', 'Delete Application');\r\n this.refreshPage()\r\n\r\n setTimeout(() => {\r\n this.toaster.clear();\r\n // clearTimeout();\r\n this.gridload = false;\r\n }, 2500);\r\n\r\n } else {\r\n this.gridload = false;\r\n this.toaster.error('There was a problem deleting the Permit Application. If the problem persists, please contact the system administrator.');\r\n let newRouterLink = '/carrier/permit/application/' + this.dataCntrl.carrierID;\r\n this.router.navigate(['/']).then(() => { this.router.navigate([newRouterLink]); });\r\n }\r\n });\r\n }\r\n\r\n refreshPage() {\r\n if (this.dataCntrl.applications.length > 1) {\r\n this.getApplications();\r\n }\r\n else {\r\n let newRouterLink = '/carrier/permit/application/' + this.dataCntrl.carrierID;\r\n this.router.navigate(['/']).then(() => { this.router.navigate([newRouterLink]); });\r\n }\r\n }\r\n\r\n sufficientFunds(appl) : boolean {\r\n this.getDueAmount(appl);\r\n let acntBal: any = 0;\r\n \r\n if (this.dataCntrl['carrier'].account_balance != null) {\r\n acntBal = (this.dataCntrl['carrier'].account_balance).toString().replace(/\\s+/g, \"\");\r\n acntBal = acntBal.replace(\"R\", \"\");\r\n }\r\n \r\n if (acntBal < this.dueAmt){\r\n return false;\r\n } else {\r\n return true;\r\n } \r\n }\r\n\r\n getDueAmount(application) {\r\n\r\n // let application = applic.;\r\n let prmtType = this.permitTypes.find(x => x.id = application.permit_type_id && x.charge_when_ind != 0);\r\n\r\n if (application != undefined) {\r\n\r\n let applFee = application['permits'][0].application_fee;\r\n let prmtFee = application['permits'][0].permit_fee;\r\n\r\n this.vehicles = application.vehicle\r\n this.dueAmt = 0;\r\n this.submissionAmt = 0;\r\n\r\n if (this.vehicles == null || this.vehicles == undefined) {\r\n application.vehicles = [];\r\n }\r\n this.totalFee = (applFee + prmtFee) * application.vehicle.length;\r\n if (this.vehicles == null || this.vehicles.length == 0) {\r\n this.totalFee = applFee;\r\n }\r\n if (this.vehicles == null || this.vehicles.length == 0) {\r\n this.submissionAmt = applFee;\r\n }\r\n\r\n this.chargeInd = prmtType.charge_when_ind;\r\n\r\n if (this.chargeInd == 1 && this.vehicles.length > 0) {\r\n this.submissionAmt = (applFee) * this.vehicles.length;\r\n this.dueAmt = this.submissionAmt - this.paidAmt;\r\n }\r\n if (this.chargeInd == 2 && this.vehicles.length > 0) {\r\n this.submissionAmt = (applFee) * this.vehicles.length + (prmtFee) * this.vehicles.length;\r\n this.dueAmt = this.submissionAmt - this.paidAmt;\r\n }\r\n }\r\n }\r\n\r\n}\r\n","
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n Manage Permit Applications for {{dataCntrl.carrier.name}}
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
Account NumberAccount NameTrading NameLead UserAccount StatusAccount Balance
{{acc.account_number}}{{acc.account_name}}{{acc.trading_name}}{{acc.link_person}}{{acc.status}}{{acc.account_balance}}
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
#ApplicationPermit TypeDate SubmittedNo of PermitsTotal FeesStatus\r\n \r\n Apply for Permit \r\n \r\n
{{ pageSize * (pageNumber - 1) + (i+1) }}{{item.id}}{{item.permit_type}}{{item.submission_date | date:'dd/MM/yyyy'}}{{item.number_of_permits}}{{item.total_fees}}{{item.status_desc}}\r\n \r\n
\r\n
10\">\r\n \r\n \r\n \r\n \r\n \r\n
\r\n Show :\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
No Applications Found
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n","import {Component, OnInit, Input, Pipe, ViewChild, ElementRef} from '@angular/core';\r\nimport {PopupService} from 'app/services/shared/popup.service';\r\nimport {ToastrService} from 'ngx-toastr';\r\nimport {ApplicationService} from 'app/services/application.service';\r\nimport {UtilityServiceService} from 'app/services/utility-service.service';\r\nimport {FormControl, Validators, FormGroup, FormBuilder} from '@angular/forms';\r\nimport {PermitService} from 'app/services/permit.service';\r\nimport {DomSanitizer} from '@angular/platform-browser';\r\nimport {Router, ActivatedRoute, Params} from '@angular/router';\r\nimport {VehicleService} from 'app/services/vehicle.service';\r\n// import * as jsPDF from 'jspdf';\r\n// import 'jspdf-autotable';\r\nimport {CarrierService} from 'app/services/carrier.service';\r\nimport {CurrencyFormat} from 'app/pipes/currencyFormat.pipe';\r\nimport {AuthWebService} from 'app/services/authweb.service';\r\nimport {accounting} from 'accounting';\r\nimport {CorspdcService} from 'app/services/corspdc.service';\r\nimport {CountryService} from 'app/services/country.service';\r\nimport {PermitTypeDocumentService} from 'app/services/permit-type-document.service';\r\nimport {DatePipe} from '@angular/common';\r\nimport {VehicleMakeService} from 'app/services/vehicle-make.service';\r\nimport {VehicleTypeService} from 'app/services/vehicle-type.service';\r\nimport {RouteService} from 'app/services/route.service';\r\nimport {environment} from '../../../../environments/environment';\r\nimport {ConfirmDialogService} from 'app/services/shared/confirm-dialog/confirm-dialog.service';\r\n\r\nvar jsPDF = require('jspdf');\r\nrequire('jspdf-autotable');\r\ndeclare var $;\r\n// declare var jsPDF: any;\r\n// @Pipe({ name: 'safeHtml' })\r\n\r\n\r\n@Component({\r\n selector: 'app-renew-permit',\r\n templateUrl: './renew-permit.component.html',\r\n styleUrls: ['./renew-permit.component.css'],\r\n providers: [PermitTypeDocumentService, RouteService, CurrencyFormat]\r\n})\r\nexport class RenewPermitComponent implements OnInit {\r\n public isLoading = false;\r\n helphtml;\r\n linkhtml;\r\n form: FormGroup;\r\n @Input() dataCntrl: any;\r\n userDetails: any = null;\r\n totalFee: any = '';\r\n termsFlag: boolean = false;\r\n public pageload = false;\r\n enabledBtnsFlag: boolean = false;\r\n @ViewChild('content') content: ElementRef;\r\n status_id: number;\r\n email_body = '';\r\n decl_date = new Date();\r\n vehicles: any = [];\r\n lineTotal\r\n isProcess: boolean = true;\r\n submissionAmt: any = 0;\r\n paidAmt: any = 0;\r\n invoiceNumber: any = '';\r\n invoiceRes: any = null;\r\n dueAmt: any = 0;\r\n debtorAccountId: any;\r\n accountBalance: any = 0;\r\n chargeInd: any = 0;\r\n renewCrId: any = '';\r\n renewFlag: boolean = false;\r\n country\r\n linkedDocs: any = [];\r\n listvehicles: any = [];\r\n myLoader: boolean = false;\r\n message: any = 'Proccessing. Please wait...'\r\n list_vehicle_make: any;\r\n selectedVMake: any;\r\n ownRoutes: any = [];\r\n count: any = 0;\r\n showBlock: boolean = false;\r\n permitStatus: any;\r\n permitStatus2: number;\r\n permitStatus6: number;\r\n isDuplicateMode: boolean = false;\r\n replaceVehicle: boolean = false;\r\n isStandard: boolean = false;\r\n isCorrection: boolean = false;\r\n isLongTermCorrection: boolean = false;\r\n frghtPass = '';\r\n applicationId;\r\n\r\n constructor(private sanitizer: DomSanitizer, private showModal: PopupService, private toastr: ToastrService,\r\n private applicationService: ApplicationService, public utility: UtilityServiceService, private permitService: PermitService,\r\n private router: Router, private vehicleService: VehicleService, private vehicleMakeService: VehicleMakeService,\r\n private carrierService: CarrierService, private crspdService: CorspdcService, private routeService: RouteService,\r\n private activeRoute: ActivatedRoute,\r\n public currformat: CurrencyFormat,\r\n private authWebService: AuthWebService,\r\n private countryService: CountryService,\r\n private service: PermitTypeDocumentService,\r\n private datePipe: DatePipe, private permitSevc: PermitService, private confirmDialogService: ConfirmDialogService) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n if (environment.authWebApi.systemData != null && environment.authWebApi.systemData.Configurations != null) {\r\n this.permitStatus2 = environment.authWebApi.systemData.Configurations.find(p => p.Code == 'PermitStatus2').Value;\r\n this.permitStatus6 = environment.authWebApi.systemData.Configurations.find(p => p.Code == 'PermitStatus6').Value;\r\n }\r\n this.userDetails = environment.authWebApi.userData.User;\r\n //console.log(this.userDetails);\r\n this.setHTMLDATA();\r\n this.activeRoute.params.subscribe((params: Params) => {\r\n if (params['type']) {\r\n this.renewFlag = true;\r\n this.renewCrId = params['crId'];\r\n this.getApplication(params['id']);\r\n }\r\n });\r\n\r\n }\r\n\r\n getApplication(id) {\r\n this.pageload = true;\r\n this.permitService.copyPermit(id).subscribe(res => {\r\n this.dataCntrl = res;\r\n this.dataCntrl.permittype = this.dataCntrl.permit.permit_type;\r\n console.log('Data Cntrl', this.dataCntrl);\r\n this.vehicles = this.dataCntrl.vehicles;\r\n this.showBlock = true;\r\n this.populateData();\r\n this.getCarrier();\r\n console.log('Data Cntrl', this.dataCntrl);\r\n }, error => {\r\n console.error(error);\r\n })\r\n }\r\n\r\n populateData() {\r\n this.pageload = true;\r\n this.chargeInd = this.dataCntrl.application.permit_type.charge_when_ind;\r\n\r\n this.count = this.count + 1;\r\n this.paidAmt = 0;\r\n this.dueAmt = 0;\r\n this.submissionAmt = 0;\r\n\r\n if (this.dataCntrl.vehicles == null || this.dataCntrl.vehicles == undefined) {\r\n this.dataCntrl.vehicles = [];\r\n }\r\n\r\n // Paid Amount\r\n if (this.dataCntrl.permit.application_invoice_link != null && (this.dataCntrl.permit.application_invoice_link).substring(0, 3) == 'INV') {\r\n if (this.dataCntrl.vehicles.length == 0) {\r\n this.paidAmt = this.dataCntrl.application.permit.application_fee\r\n } else {\r\n this.paidAmt = this.dataCntrl.application.permit.application_fee * this.dataCntrl.vehicles.length;\r\n }\r\n }\r\n if (this.dataCntrl.permit.permit_invoice_link != null && (this.dataCntrl.permit.permit_invoice_link).substring(0, 3) == 'INV') {\r\n if (this.dataCntrl.vehicles.length == 0) {\r\n this.paidAmt = this.paidAmt + this.dataCntrl.application.permit.permit_fee\r\n } else {\r\n this.paidAmt = this.paidAmt + this.dataCntrl.application.permit.permit_fee * this.dataCntrl.vehicles.length;\r\n }\r\n }\r\n\r\n // Total Fee\r\n this.totalFee = (this.dataCntrl.permit.application_fee + this.dataCntrl.permit.permit_fee);\r\n if (this.vehicles == null || this.vehicles.length == 0) {\r\n this.totalFee = this.dataCntrl.application.permit.application_fee;\r\n this.lineTotal = this.dataCntrl.application.permit.application_fee;\r\n }\r\n\r\n this.lineTotal = (parseFloat(this.dataCntrl.permit.application_fee) + parseFloat(this.dataCntrl.permit.permit_fee));\r\n this.lineTotal = this.formatCurrency(this.lineTotal);\r\n\r\n this.totalFee = this.formatCurrency(this.totalFee);\r\n\r\n // Application & Permit Fee\r\n if (this.vehicles.length > 0) {\r\n this.submissionAmt = (this.dataCntrl.permit.application_fee * this.vehicles.length) + (this.dataCntrl.permit.permit_fee * this.vehicles.length);\r\n this.dueAmt = this.submissionAmt - this.paidAmt;\r\n }\r\n // this.dataCntrl.permit.application_fee = this.formatCurrency(this.dataCntrl.application.permit.application_fee);\r\n // this.dataCntrl.application.permit.permit_fee = this.formatCurrency(this.dataCntrl.permit.permit_fee)\r\n\r\n this.submissionAmt = this.formatCurrency(this.submissionAmt);\r\n this.paidAmt = this.formatCurrency(this.paidAmt);\r\n this.dueAmt = this.formatCurrency(this.dueAmt);\r\n\r\n this.pageload = false;\r\n }\r\n\r\n formatCurrency(value) {\r\n return accounting.formatMoney(value, 'R', 2, ' ', '.');\r\n }\r\n\r\n setHTMLDATA() {\r\n\r\n if (environment.authWebApi.systemData != null) {\r\n this.linkhtml = environment.authWebApi.systemData.Configurations.find(p => p.Code == 'HTMLDec2');\r\n }\r\n }\r\n\r\n getCarrier() {\r\n this.pageload = true;\r\n this.carrierService.getById(this.dataCntrl.application.carrier.id).subscribe((result: any) => {\r\n this.setDebtorAccount(result.carrier_account_id);\r\n this.setCarrierData(result);\r\n this.pageload = false;\r\n }, error => {\r\n this.pageload = false;\r\n });\r\n }\r\n\r\n setDebtorAccount(carrierAccountId) {\r\n this.carrierService.getDebtorAccount(carrierAccountId).subscribe((result: any) => {\r\n this.debtorAccountId = result.customer_code;\r\n }, error => {\r\n });\r\n }\r\n changes() {\r\n this.form.statusChanges.subscribe(\r\n result =>\r\n this.dataCntrl.formValid = result == 'VALID' ? true : false\r\n );\r\n }\r\n setCarrierData(data) {\r\n if (data.account_balance != null) {\r\n this.accountBalance = data.account_balance * -1;\r\n if (!data.account_balance.toString().includes('R')) {\r\n if (parseFloat(data.account_balance) != 0) {\r\n data.account_balance = -(parseFloat(data.account_balance));\r\n }\r\n data.account_balance = data.account_balance != 0 ? this.currformat.transform(parseFloat(data.account_balance)) : 'R 0.00';\r\n }\r\n }\r\n // this.dataCntrl.carrier = data;\r\n this.dataCntrl.application.carrier = data;\r\n $('#carrierName').html(data.name);\r\n this.listCountries(data.country_id);\r\n }\r\n cancelApplication() {\r\n // if (this.dataCntrl.application.id == undefined && this.dataCntrl.application.id == null) {\r\n this.router.navigate(['/carrier/permit/application/' + this.dataCntrl.application.carrier.id]);\r\n // } else {\r\n // this.showModal.showYesNo('Delete Application', 'Are you sure you want to delete this application for a Permit Renewal?', `Click 'Yes' to delete or 'No' to return to the application`, 'Yes', 'No')\r\n // .subscribe((isConfirmed) => {\r\n // if (isConfirmed) {\r\n // this.deleteApplication()\r\n // } else {\r\n // return;\r\n // }\r\n // });\r\n // }\r\n }\r\n deleteApplication() {\r\n //console.log(\"delete application\");\r\n this.pageload = true;\r\n\r\n this.permitService.deletePermit(this.dataCntrl.permit.id).subscribe(x => {\r\n //console.log(x);\r\n this.deleteApp(this.dataCntrl.application.id);\r\n this.pageload = false;\r\n\r\n this.router.navigate(['/carrier/permit/application/' + this.dataCntrl.application.carrier.id]);\r\n\r\n })\r\n }\r\n deleteApp(id) {\r\n this.applicationService.deleteApplication(id).subscribe(x => {\r\n //console.log(x);\r\n })\r\n }\r\n SubmitApplication() {\r\n // this.showModal.showYesNo('Confirm Application', `Are you sure you want to submit application for a Permit ?. A confirmation email will be sent to '${this.userDetails.EmailAddress}'.`, `Please access your Portal for next steps.`, 'Ok', 'Cancel')\r\n // .subscribe((isConfirmed) => {\r\n // if(isConfirmed) {\r\n // // this.determineStatus();\r\n // this.saveConfirmation();\r\n // }\r\n // else\r\n // {\r\n // return;\r\n // }\r\n // }\r\n // );\r\n this.confirmDialogService.confirmThis(`Are you sure you want to submit application for a Permit ?. A confirmation email will be sent to '${this.userDetails.EmailAddress}'. Please access your Portal for next steps.`, () => {\r\n\r\n this.saveConfirmation();\r\n\r\n }, () => {\r\n return;\r\n })\r\n }\r\n saveConfirmation() {\r\n\r\n if (!this.termsFlag) {\r\n this.pageload = false;\r\n return this.toastr.error('Please agree the terms', 'Error');\r\n }\r\n\r\n this.updateConfm();\r\n }\r\n PayGate() {\r\n this.router.navigate(['/carrier/fundaccount/' + this.renewCrId]);\r\n }\r\n listCountries(id) {\r\n this.countryService.listCountries().subscribe((result: any) => {\r\n if (id != null) {\r\n this.country = result.find(x => x.id == id);\r\n this.country = this.country.desc;\r\n }\r\n }, error => {\r\n this.isLoading = false;\r\n });\r\n }\r\n checkTerms(event) {\r\n if (event.target.checked) {\r\n this.termsFlag = true;\r\n } else {\r\n this.termsFlag = false;\r\n }\r\n }\r\n disbledBtn() {\r\n let dueAmt: any = 0;\r\n if (!this.termsFlag) {\r\n return true;\r\n } else {\r\n let acntBal: any = 0;\r\n if (this.dataCntrl.application.carrier.account_balance != null) {\r\n acntBal = (this.dataCntrl.application['carrier'].account_balance).toString().replace(/\\s+/g, '');\r\n acntBal = acntBal.replace('R', '');\r\n // acntBal = parseFloat(acntBal.replace(\"-\", \"\"));\r\n }\r\n\r\n if (this.dueAmt != null && this.dueAmt != undefined && this.dueAmt != '') {\r\n dueAmt = this.dueAmt.replace(' ', '');\r\n dueAmt = parseFloat(dueAmt.replace('R', ''));\r\n }\r\n\r\n if (acntBal < dueAmt) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n }\r\n retrieveSubmitStatus() {\r\n if (this.authWebService.userData) {\r\n\r\n this.status_id = +environment.authWebApi.systemData.Configurations.find(config => config.Code == 'AccountStatus2').Value;\r\n this.dataCntrl.application.status_id = this.status_id;\r\n this.dataCntrl.application.submission_date = new Date();\r\n //console.log(this.dataCntrl.application);\r\n this.applicationService.putApplication(this.dataCntrl.application)\r\n .subscribe(result => {\r\n //console.log(result);\r\n this.updatePermit(this.status_id);\r\n this.toastr.success(`Your permit application was submitted successfully`, 'success');\r\n this.router.navigate(['carrier/permit/application/' + this.renewCrId]);\r\n this.pageload = false;\r\n },\r\n error => {\r\n //console.log(error);\r\n this.pageload = false;\r\n return;\r\n });\r\n }\r\n }\r\n\r\n updatePermit(status_id) {\r\n this.dataCntrl['application'].permit.status_id = status_id;\r\n if (this.vehicles == null || this.vehicles.length == 0) {\r\n this.dataCntrl['application']['permit'].application_fee = parseFloat(this.dataCntrl['application']['permit'].application_fee.replace(/[^\\d\\.]*/g, ''));\r\n this.dataCntrl['application']['permit'].permit_fee = 0;\r\n }\r\n this.permitService.upadatePermit(this.dataCntrl['application']['permit']).subscribe(result => {\r\n this.dataCntrl['application']['permit'] = result;\r\n\r\n })\r\n\r\n }\r\n\r\n //New updateConfirm\r\n //New updateConfirm\r\n updateConfm() {\r\n this.pageload = true;\r\n if (!this.termsFlag) {\r\n this.pageload = false;\r\n return this.toastr.warning('Please agree the terms');\r\n }\r\n const config: any = environment.authWebApi.systemData.Configurations.find(config => config.Code == \"SubmitEmail2\");\r\n\r\n let payload: any = Object();\r\n payload['carrier_id'] = this.dataCntrl.application.carrier.id;\r\n payload['application_id'] = this.dataCntrl.application.id;\r\n payload['permit_id'] = this.dataCntrl.application.permits[0].id;\r\n payload['document_id1'] = null;\r\n payload['document_id2'] = null;\r\n payload['document_id3'] = null;\r\n payload['corspdc_type_ind'] = 3;\r\n payload['body_text'] = config.Value;\r\n payload['notes'] = null;\r\n payload['attachment'] = null;\r\n payload['subject'] = config.Description;\r\n payload['send_receive_ind'] = 11;\r\n payload['comm_type_ind'] = 3;\r\n payload['num_bookmarks'] = 0;\r\n payload['date_created'] = new Date();\r\n payload['date_modified'] = new Date();\r\n payload['user_created'] = this.userDetails.FirstName;\r\n payload['user_modified'] = this.userDetails.FirstName;\r\n payload['bookmark1_value'] = null;\r\n payload['bookmark2_value'] = null;\r\n payload['bookmark3_value'] = null;\r\n payload['bookmark4_value'] = null;\r\n payload['bookmark5_value'] = null;\r\n payload['bookmark6_value'] = null;\r\n //payload['from_person_id'] = this.dataCntrl.carrier.person_id;\r\n //payload['correspondence_person'] = [this.dataCntrl.carrier.person_id];\r\n payload['file_name'] = null;\r\n let oldAppId = 0;//localStorage.getItem(\"oldAppId\");\r\n\r\n\r\n this.permitStatus = 11; //submitted;\r\n\r\n\r\n this.crspdService.savePermitCorrespondence(payload,oldAppId,this.permitStatus, true).subscribe((data:any) => {\r\n this.pageload = false;\r\n //this.isLoading = false;\r\n if (data.isSaved) {\r\n this.toastr.success(`Your permit application was submitted successfully.`);\r\n this.router.navigate(['carrier/permit/application/' + this.renewCrId]);\r\n } else\r\n this.toastr.error(`Submission for ${this.dataCntrl['carrier'].name} failed.Please contact the system administrator if the problem persists.`, data.isSaved);\r\n\r\n\r\n }, error => {\r\n this.pageload = false;\r\n //this.isLoading = false;\r\n this.toastr.error(`Submission for failed.Please contact the system administrator if the problem persists.`, `${error.status} : ${error.statusText}`);\r\n })\r\n\r\n\r\n }\r\n\r\n\r\n}\r\n\r\n","
\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n PROFORMA INVOICE AND CONFIRMATION\r\n
\r\n
Account Id : {{debtorAccountId}}
Application No :{{dataCntrl['application'].id}}
Application Date:{{dataCntrl['application'].date_created | date :'dd/MM/yyyy'}}
Applicant :{{dataCntrl['application']['carrier'].name}}
Email Address :{{dataCntrl['application']['carrier'].email}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
Physical Address
\r\n
Address : {{dataCntrl['application']['carrier'].physical_address_1}}
Town :{{dataCntrl['application']['carrier'].physical_address_town}}
Post Code:{{dataCntrl['application']['carrier'].physical_post_code}}
Country:{{country}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n Route: \r\n \r\n \r\n {{dataCntrl.application.route_summary}}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Account Balance:{{dataCntrl.application.carrier?.account_balance}}
\r\n\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 0\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
Vehicle Registration Vehice TypeStart DatePermit TypeDurationApplication FeePermit FeeLine Total
{{list.registration_number}}{{list.vehicle_type}}{{list.start_date | date : 'dd/MM/yyyy'}}{{dataCntrl['application']['permit_type'].description}} 0\">{{dataCntrl['application']['permit_type'].permit_years}} - Years 0\">{{dataCntrl['application']['permit_type'].permit_months}} - Months 0\">{{dataCntrl['application']['permit_type'].permit_days}} - Days{{dataCntrl.application?.permit_type?.current_application_fee}}{{dataCntrl.application?.permit_type?.current_fee}}{{lineTotal}}
{{dataCntrl['application']['permit_type'].description}} 0\">{{dataCntrl['application']['permit_type'].permit_years}} - Years 0\">{{dataCntrl['application']['permit_type'].permit_months}} - Months 0\">{{dataCntrl['application']['permit_type'].permit_days}} - Days{{dataCntrl['application']['permit'][0].application_fee}}{{dataCntrl['application']['permit'][0].application_fee}}
Total {{totalFee }}
\r\n Fees shown in red are due on submission of the application. The remaining fee(s) if any will be payable before any permit is issued. These fees could change later\r\n Payable on submission {{submissionAmt }}
Amount paid {{paidAmt }}
Amount Due now {{dueAmt }}
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n
Declaration by {{userDetails.FirstName}} {{userDetails.LastName}} on {{decl_date|date : 'dd/MM/yyyy'}}\r\n You declare that you agree with the declaration above by checking the box:\r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { FormControl, Validators, FormGroup, FormBuilder } from '@angular/forms';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { environment } from '../../../../../environments/environment';\r\nimport { ApplicationService } from 'app/services/application.service';\r\nimport { PopupService } from '../../../../services/shared/popup.service';\r\nimport { Router, ActivatedRoute, Params } from '@angular/router';\r\nimport { PermitService } from 'app/services/permit.service';\r\nimport { VehicleService } from 'app/services/vehicle.service';\r\nimport { UtilityServiceService } from 'app/services/utility-service.service';\r\n\r\n@Component({\r\n selector: 'app-app-motivation',\r\n templateUrl: './app-motivation.component.html',\r\n styleUrls: ['./app-motivation.component.css']\r\n})\r\nexport class AppMotivationComponent implements OnInit {\r\n @Input() dataCntrl: any;\r\n\r\n form: FormGroup;\r\n model: any = [];\r\n tabload: boolean = false;\r\n public pageload = false;\r\n \r\n disableBtn: boolean = false;\r\n isProcess: boolean = true;\r\n public motivationSaved: boolean = false;\r\n isDuplicate:boolean=false;\r\n message: any = \"\";\r\n constructor(private formBuilder: FormBuilder, private toastr: ToastrService,\r\n private showModal: PopupService, public applicationService: ApplicationService,\r\n private router: Router, private permitService: PermitService, private vehicleService: VehicleService, private activeRoute: ActivatedRoute, public utility: UtilityServiceService) { }\r\n\r\n ngOnInit() {\r\n if (this.router.url.indexOf('view') > 0) {\r\n this.isProcess = false;\r\n this.activeRoute.params.subscribe((params: Params) => {\r\n this.dataCntrl.application.id = params['id'];\r\n if (environment.authWebApi.userData.Roles.find(p => p.Code == 'ADMIN')) {\r\n //this.disableBtn = true;\r\n //console.log('This is Admin')\r\n }\r\n });\r\n\r\n }\r\n // if(this.router.url.indexOf('change') > 0){\r\n // if(this.activeRoute.params['_value'].ctrlType!=undefined && this.activeRoute.params['_value'].ctrlType=='vehicle'){\r\n // this.isDuplicate=true;\r\n // }\r\n // }\r\n if(this.router.url.indexOf('duplicate') > 0){\r\n if(this.dataCntrl.application.motivation_detail!='' && this.dataCntrl.application.motivation_detail!=null){\r\n this.isDuplicate=true;\r\n }\r\n }\r\n if (this.router.url.indexOf('edit') > 0) {\r\n this.activeRoute.params.subscribe((params: Params) => {\r\n this.dataCntrl.application.id = params['id'];\r\n this.dataCntrl.application.id = this.dataCntrl.application.id == null || this.dataCntrl.application.id == undefined ? this.dataCntrl.permits[0].application_id : this.dataCntrl.application.id;\r\n if (environment.authWebApi.userData.Roles.find(p => p.Code == 'ADMIN')) {\r\n this.disableBtn = true;\r\n //console.log('This is Admin')\r\n }\r\n });\r\n }\r\n this.initForm();\r\n this.model = this.dataCntrl;\r\n if (this.dataCntrl.status == 2) {\r\n this.isProcess = true;\r\n }\r\n }\r\n\r\n initForm() {\r\n this.form = this.formBuilder.group({\r\n motivation: ['', [Validators.required]]\r\n });\r\n }\r\n\r\n changes() {\r\n this.form.statusChanges.subscribe(\r\n result => {\r\n this.dataCntrl.formValid = result == 'VALID' ? true : false\r\n }\r\n );\r\n }\r\n\r\n saveMotivation() {\r\n\r\n //this.tabload = true;\r\n if (this.dataCntrl.application.motivation_detail === null || this.dataCntrl.application.motivation_detail.length < 20) {\r\n return this.toastr.warning('Motivation must contain at least 20 characters');\r\n }\r\n // else if (this.router.url.indexOf('vehicle') > 0) {\r\n // this.applicationService.setTab(6);\r\n // }\r\n else if (this.router.url.indexOf('duplicate') > 0 && this.router.url.indexOf('edit') < 0) {\r\n ////console.log(\"duplicated\");\r\n ////console.log(this.dataCntrl.application);\r\n\r\n // this.applicationService.putApplicationDuplicate(this.dataCntrl.application)\r\n // .subscribe(result => {\r\n // this.pageload = false;\r\n // this.dataCntrl.application = result;\r\n // this.tabload = false;\r\n // // this.saveDepatureDestination();\r\n // this.toastr.success('Application duplicated successfully', 'Duplicate Application');\r\n // let url: any = \"carrier/permit/application/duplicate/edit/\" + result.id;\r\n // this.router.navigate([url]);\r\n // },\r\n // error => {\r\n // this.pageload = false;\r\n // this.tabload = false;\r\n // this.toastr.error('Failed to save application. If the problem persist, please contact system administrator.', 'Save Application')\r\n\r\n // // this.showModal.showError('Save Application','Failed to save application. If the problem persist, please contact system administrator.',error);\r\n // return;\r\n // });\r\n const nextPos = this.utility.nextTabPosition(this.utility.sequenceNumbers.motivationNum);\r\n this.applicationService.setTab(nextPos);\r\n }\r\n else {\r\n this.pageload = true;\r\n this.applicationService.putApplication(this.dataCntrl.application)\r\n .subscribe((result:any) => {\r\n this.pageload = false;\r\n this.dataCntrl.application = result;\r\n if (this.router.url.indexOf('view') > 0) {\r\n this.applicationService.motivationChanged = this.applicationService.dataControlTrackChanges.motivation_detail != result.motivation_detail;\r\n }\r\n //this.tabload = false;\r\n this.toastr.success('Motivation saved successfully', 'Save Application');\r\n const nextPos = this.utility.nextTabPosition(this.utility.sequenceNumbers.motivationNum);\r\n this.applicationService.setTab(nextPos);\r\n },\r\n error => {\r\n //console.log(error);\r\n this.pageload = false;\r\n //this.tabload = false;\r\n // this.showModal.showError('Save Application','Failed to save application. If the problem persist, please contact system administrator.',error);\r\n this.toastr.error('Failed to save application. If the problem persist, please contact system administrator.', 'Save Application')\r\n return;\r\n });\r\n }\r\n }\r\n backToTab() {\r\n if (this.router.url.indexOf('duplicate') > 0) {\r\n this.applicationService.setTab(2);\r\n } else {\r\n const tabNum = this.utility.tabPosition(this.utility.sequenceNumbers.motivationNum);\r\n //console.log(\"Previous Tab = \", tabNum + ' | ' + this.utility.timetableActive);\r\n this.applicationService.setTab(tabNum);\r\n }\r\n }\r\n cancelApplication() {\r\n let prevUrl = localStorage.getItem('previousUrl');\r\n if (prevUrl.search('/permit/approval') != -1) {\r\n this.router.navigate(['/permit/approval/']);\r\n } else if (prevUrl.search('/carrier/permit/application/mypermits') != -1) {\r\n this.router.navigate(['/carrier/permit/application/mypermits/',this.dataCntrl.carrierID]);\r\n } else {\r\n this.router.navigate(['/carrier/permit/application/',this.dataCntrl.carrierID]);\r\n }\r\n }\r\n // if (this.dataCntrl.application.id == undefined && this.dataCntrl.application.id == null) {\r\n // this.router.navigate(['/carrier/permit/application/' + this.dataCntrl.carrierID]);\r\n // } else {\r\n // this.showModal.showConfirm('Delete Application', 'Are you sure you want to delete?', `You're about to delete application`, 'Yes', 'No')\r\n // .subscribe((isConfirmed) => {\r\n // if (isConfirmed) {\r\n // this.deleteApplication()\r\n // } else {\r\n // return;\r\n // }\r\n // });\r\n // }\r\n // }\r\n\r\n deleteApplication() {\r\n //console.log(\"delete application\");\r\n this.pageload = true;\r\n\r\n this.permitService.deletePermit(this.dataCntrl.permit.id).subscribe(x => {\r\n //console.log(x);\r\n this.deleteApp(this.dataCntrl.application.id);\r\n this.pageload = false;\r\n\r\n this.router.navigate(['/carrier/permit/application/' + this.dataCntrl.carrierID]);\r\n\r\n })\r\n //this.dataCntrl.application.id\r\n //this.dataCntrl.permit.id\r\n }\r\n deletePermit(id) {\r\n this.permitService.deletePermit(id).subscribe(x => {\r\n //console.log(x);\r\n })\r\n\r\n }\r\n deleteApp(id) {\r\n this.applicationService.deleteApplication(id).subscribe(x => {\r\n //console.log(x);\r\n })\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n Motivation * Please motivate the need for the particular service(s)\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n","import { Component, OnInit, Input, ViewEncapsulation } from '@angular/core';\r\nimport { PopupService } from '../../../../services/shared/popup.service';\r\nimport { PermitTypeService } from '../../../../services/permit-type.service';\r\nimport { CurrencyFormat } from '../../../../pipes/currencyFormat.pipe';\r\nimport { environment } from '../../../../../environments/environment';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { ApplicationService } from 'app/services/application.service';\r\nimport { PermitService } from 'app/services/permit.service'\r\nimport { ActivatedRoute, Router, Params } from '@angular/router';\r\nimport { UtilityServiceService } from 'app/services/utility-service.service';\r\nimport { Account } from 'app/constants/account.enum';\r\nimport { Subject } from 'rxjs';\r\nimport { CarrierService } from 'app/services/carrier.service';\r\nimport { ConfirmDialogService } from 'app/services/shared/confirm-dialog/confirm-dialog.service';\r\n\r\ndeclare var $;\r\n@Component({\r\n selector: 'app-app-permit-type',\r\n templateUrl: './app-permit-type.component.html',\r\n styleUrls: ['./app-permit-type.component.css'],\r\n providers: [PermitTypeService, PopupService, CurrencyFormat],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AppPermitTypeComponent implements OnInit {\r\n\r\n @Input() dataCntrl: any;\r\n @Input('ctrlData') ctrlData: any;\r\n\r\n\r\n isFreight: boolean = false;\r\n permittype: any = [];\r\n selectedIndex: any;\r\n editMode: boolean;\r\n disableTypes: boolean = false;\r\n pageload: boolean;\r\n helphtml;\r\n linkhtml;\r\n vehicleTerm: any = \"\";\r\n vehicleType: any = \"\";\r\n permitType: any = \"\";\r\n referenceNum: any = \"\";\r\n selectedPermit: any = null;\r\n selectedPermitId: any = \"\";\r\n tabload: boolean = false;\r\n disableBtn: boolean = false;\r\n private activeTab = new Subject();\r\n defaultValue: string;\r\n defaultValueType: string;\r\n otherPermitType: boolean = false;\r\n\r\n isProcess: boolean = true;\r\n permitDisabled: boolean = false;\r\n durations: any = [];\r\n durationSelected = null;\r\n typeSelected = null;\r\n\r\n reloadVehicle: boolean = false;\r\n carrierapplist:any = [];\r\n selectedappid: number = 0;\r\n maxallowedpermits: number;\r\n showcarapplist: boolean = false;\r\n\r\n canSave: boolean = false;\r\n\r\n changeRouteTimetable : boolean = false;\r\n duration:any = \"\";\r\n message = '';\r\n\r\n isAmend = false;\r\namendTerm:any;\r\namendType:any;\r\n\r\n upliftment: boolean = false;\r\n permitStatus7: any;\r\n permitStatus13: any;\r\n\r\n selectedDuration:any=\"null\";\r\n isDuplicate:boolean=false;\r\n\r\n isEditMode: boolean = false;\r\n\r\n constructor(private sanitizer: DomSanitizer,\r\n public currformat: CurrencyFormat, private showModal: PopupService,\r\n private permitTypeService: PermitTypeService,\r\n public applicationService: ApplicationService, private route: ActivatedRoute,\r\n public utility: UtilityServiceService, private toastr: ToastrService, private router: Router,\r\n private permitService: PermitService,\r\n private activeRoute: ActivatedRoute, private carrierService: CarrierService,private confirmDialogService: ConfirmDialogService\r\n ) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n // if(this.dataCntrl.permittypeSelected == true){\r\n // this.dataCntrl.formValid = true;\r\n // }\r\n this.changeRouteTimetable = this.router.url.indexOf('change') > 0;\r\n this.isEditMode = this.router.url.indexOf('edit') > 0 && this.router.url.indexOf('duplicate') < 0;\r\n\r\n this.utility.confirmCtrl = false;\r\n this.utility.changeKey = 0;\r\n //console.log(environment.authWebApi.userData.Roles);\r\n //console.log('Application data :',this.dataCntrl)\r\n this.getPermitType();\r\n this.setHTMLDATA();\r\n if (environment.authWebApi.systemData != null && environment.authWebApi.systemData.Configurations != null) {\r\n this.permitStatus13 = environment.authWebApi.systemData.Configurations.find(p => p.Code == 'PermitStatus13').Value;\r\n }\r\n if (this.dataCntrl.application.id !== undefined || this.dataCntrl.application.id !== null) {\r\n this.vehicleType = this.dataCntrl.vehicleType;\r\n this.vehicleTerm = this.dataCntrl.vehicleTerm;\r\n this.referenceNum = this.dataCntrl.application.reference_num;\r\n //console.log(this.referenceNum);\r\n this.durationSelected=this.dataCntrl.durationSelected;\r\n this.selectedPermit = this.dataCntrl.permittype;\r\n //console.log(this.selectedPermit);\r\n if(this.selectedPermit.id !== undefined){\r\n this.canSave = true;\r\n }\r\n this.selectedPermitId = this.selectedPermit.id;\r\n //console.log(this.dataCntrl.permitSelectIndex);\r\n }\r\n\r\n if (this.router.url.indexOf('edit') > 0 || this.router.url.indexOf('duplicate') > 0) {\r\n this.activeRoute.params.subscribe((params: Params) => {\r\n this.dataCntrl.application.id = params['id'];\r\n if(this.router.url.indexOf('duplicate') > 0){\r\n this.isDuplicate=true;\r\n }\r\n if (environment.authWebApi.userData.Roles.find(p => p.Code == 'ADMIN')) {\r\n this.disableBtn = true;\r\n //console.log('This is Admin')\r\n }\r\n if (params['type']) {\r\n setTimeout(() => {\r\n this.permitDisabled = params['type'];\r\n this.dataCntrl.carrierID = params['crId'];\r\n }, 200);\r\n }\r\n });\r\n this.getCarrier();\r\n setTimeout(() => {\r\n this.getApplication();\r\n }, 400);\r\n }\r\n if (this.router.url.indexOf('view') > 0) {\r\n this.activeRoute.params.subscribe((params: Params) => {\r\n this.dataCntrl.application.id = params['id'];\r\n this.isProcess = false;\r\n if (environment.authWebApi.userData.Roles.find(p => p.Code == 'ADMIN')) {\r\n //this.disableBtn = true;\r\n //console.log('This is Admin')\r\n }\r\n });\r\n this.getApplication();\r\n }\r\n if (this.router.url.indexOf('process') > 0) {\r\n this.activeRoute.params.subscribe((params: Params) => {\r\n this.dataCntrl.application.id = params['id'];\r\n\r\n if (environment.authWebApi.userData.Roles.find(p => p.Code == 'ADMIN')) {\r\n // this.disableBtn = true;\r\n //console.log('This is Admin')\r\n }\r\n });\r\n this.getApplication();\r\n\r\n }\r\n ////console.log(this.dataCntrl.permit);\r\n //Processing change route\r\n if (this.router.url.indexOf('change') > 0 && this.router.url.indexOf('correction')<0) {\r\n this.activeRoute.params.subscribe((params: Params) => {\r\n this.dataCntrl.application.id = params['id'];\r\n const ctrlType = params['ctrlType'];\r\n if(ctrlType!='vehicle'){\r\n this.isProcess=false;\r\n if(!this.dataCntrl.hasOwnProperty('changeRoute') && ctrlType == 'true'){\r\n this.dataCntrl.changeRoute=true;\r\n }\r\n if(this.dataCntrl.changeRoute && ctrlType == 'true'){\r\n this.utility.changeKey = 1;\r\n }else if(ctrlType != 'true'){\r\n this.utility.changeKey = (ctrlType == 'true') ? 1 : 2;\r\n }\r\n\r\n }else{\r\n if(ctrlType=='vehicle'){\r\n this.isDuplicate=true;\r\n }\r\n if(!this.dataCntrl.hasOwnProperty('changeVehicle') && ctrlType == 'vehicle'){\r\n this.dataCntrl.changeVehicle=true;\r\n }\r\n if(this.dataCntrl.changeVehicle && ctrlType == 'vehicle'){\r\n this.utility.changeKey = 3;\r\n }else{\r\n this.utility.changeKey = 1;\r\n }\r\n //this.utility.changeKey = 3;\r\n }\r\n\r\n\r\n //console.log('****ctrlType : ', ctrlType + ' | ' + this.utility.changeKey);\r\n if (environment.authWebApi.userData.Roles.find(p => p.Code == 'ADMIN')) {\r\n this.disableBtn = true;\r\n //console.log('This is Admin')\r\n }\r\n });\r\n this.getCarrier();\r\n setTimeout(() => {\r\n this.getApplication();\r\n this.getNonPermitTypeInfo();\r\n if(this.dataCntrl.changeRoute){\r\n this.utility.activeTab = 0;\r\n\r\n }\r\n\r\n }, 400);\r\n }\r\n if (this.router.url.indexOf('change') > 0 && this.router.url.indexOf('selected-vehicle')>0) {\r\n this.activeRoute.params.subscribe((params: Params) => {\r\n this.dataCntrl.application.id = params['id'];\r\n\r\n if (environment.authWebApi.userData.Roles.find(p => p.Code == 'ADMIN')) {\r\n this.disableBtn = true;\r\n //console.log('This is Admin')\r\n }\r\n });\r\n this.getCarrier();\r\n setTimeout(() => {\r\n this.getApplication();\r\n this.getNonPermitTypeInfo();\r\n this.utility.activeTab = 2;\r\n\r\n }, 400);\r\n }\r\n if(this.router.url.indexOf('correction')>0){\r\n this.activeRoute.params.subscribe((params: Params) => {\r\n this.isDuplicate=true;\r\n this.dataCntrl.application.id = params['id'];\r\n if (environment.authWebApi.userData.Roles.find(p => p.Code == 'ADMIN')) {\r\n this.disableBtn = true;\r\n //console.log('This is Admin')\r\n }\r\n });\r\n this.getCarrier();\r\n setTimeout(() => {\r\n this.getApplication();\r\n this.getNonPermitTypeInfo();\r\n }, 400);\r\n }\r\n if (this.router.url.indexOf('edit') > 0) {\r\n this.activeRoute.params.subscribe((params: Params) => {\r\n this.dataCntrl.application.id = params['id'];\r\n const isSelectedVehicle = params['isSelectedVehicle'];\r\n if(isSelectedVehicle){\r\n //console.log(isSelectedVehicle);\r\n this.utility.activeTab = 2;\r\n }\r\n });\r\n this.getCarrier();\r\n this.getApplication();\r\n }\r\n }\r\n\r\n\r\n getCarrier() {\r\n if (this.dataCntrl.carrierID !== -1) {\r\n this.pageload = true;\r\n this.carrierService.getById(this.dataCntrl.carrierID).subscribe(result => {\r\n this.setCarrierData(result);\r\n this.pageload = false;\r\n }, error => {\r\n this.pageload = false;\r\n //console.log(error);\r\n });\r\n }\r\n\r\n }\r\n\r\n setCarrierData(data) {\r\n data.account_balance = data.account_balance != 0 ? this.currformat.transform(parseFloat(data.account_balance)) : 'R 0.00';\r\n this.dataCntrl.carrier = data;\r\n $(\"#carrierName\").html(data.name);\r\n //console.log(this.dataCntrl.carrier);\r\n this.dataCntrl.application.carrier_id = data.id;\r\n this.dataCntrl.application.person_id = data.person_id;\r\n }\r\n getApplication() {\r\n if (this.dataCntrl.application.id !== null && this.dataCntrl.application.id !== undefined) {\r\n let id: any = \"\";\r\n // if (this.dataCntrl.isSaveAndCon) {\r\n // id = this.dataCntrl.application.id\r\n // } else {\r\n id = this.dataCntrl.application.id;\r\n // }\r\n this.applicationService.getById(id).subscribe((data:any) => {\r\n //console.log(data.permit);\r\n this.selectedPermit = data.permit_type;\r\n \r\n $(\"#carrierName\").html(data.carrier.name);\r\n if (!this.permitDisabled) {\r\n this.dataCntrl.permits = data.permits;\r\n this.dataCntrl.application = data;\r\n this.dataCntrl.application.permit_type_id = data.permit_type_id;\r\n this.dataCntrl.carrierID = data.carrier_id;\r\n //this.dataCntrl.permit.id = data.permit.id;\r\n } else {\r\n this.dataCntrl.application = data;\r\n delete this.dataCntrl.application.id;\r\n //console.log(this.dataCntrl.application.id);\r\n this.dataCntrl.permit = data.permits;\r\n this.dataCntrl.application.permit_type_id = data.permit_type_id;\r\n this.dataCntrl.oldPermit=data.permit;\r\n this.updateRenewPermit()\r\n }\r\n this.referenceNum = data.reference_num;\r\n\r\n this.upliftment = data.status_id == this.permitStatus13;\r\n\r\n this.getPermitTypeForEdit(data.permit_type_id);\r\n })\r\n }\r\n\r\n }\r\n getNonPermitTypeInfo(){\r\n this.applicationService.getById(localStorage.getItem(\"oldAppId\")).subscribe((data:any) => {\r\n //console.log(data)\r\n if(data.permit_type.permit_days > 0){\r\n this.duration = data.permit_type.permit_days > 0 ? data.permit_type.permit_days + \" Days\" : null;\r\n }\r\n if(data.permit_type.permit_months > 0){\r\n this.duration = data.permit_type.permit_months > 0 ? data.permit_type.permit_months + \" Months\" : null;\r\n }\r\n if(data.permit_type.permit_years <= 1){\r\n this.duration = data.permit_type.permit_years > 0 ? data.permit_type.permit_years + \" Years\" : null;\r\n }\r\n \r\n this.amendTerm = data.permit_type.temp_long_ind;\r\n this.amendType = data.permit_type.freight_passenger_ind;\r\n this.isAmend = true;\r\n\r\n });\r\n\r\n }\r\n getCorrectionPermitType(){\r\n this.permitTypeService.getById(this.dataCntrl['permit'].permit_type_id).subscribe((type:any) =>{\r\n if(type.permit_days > 0){\r\n this.duration = type.permit_days > 0 ? type.permit_days + \" Days\" : null;\r\n }\r\n if(type.permit_months > 0){\r\n this.duration = type.permit_months> 0 ? type.permit_months + \" Days\" : null;\r\n }\r\n if(type.permit_years > 0){\r\n this.duration = type.permit_years> 0 ? type.permit_years + \" Days\" : null;\r\n }\r\n\r\n })\r\n }\r\n getPermitTypeForEdit(id) {\r\n this.permitTypeService.getById(id).subscribe((x:any) => {\r\n //console.log(x);\r\n this.canSave = true;\r\n //console.log(this.dataCntrl.permittype)\r\n this.selectedPermit = x;\r\n // this.dataCntrl.permit = x;\r\n if(x.permit_days > 0){\r\n x[\"duration\"] = x.permit_days > 0 ? x.permit_days + (x.permit_days == 1? \" Day\" : \" Days\") : null;\r\n }\r\n if(x.permit_months > 0){\r\n x[\"duration\"] = x.permit_months > 0 ? x.permit_months + (x.permit_months == 1? \" Month\" : \" Months\") : null;\r\n }\r\n if(x.permit_years > 0){\r\n x[\"duration\"] = x.permit_years > 0 ? x.permit_years + (x.permit_years == 1? \" Year\" : \" Years\") : null;\r\n }\r\n this.defaultValue = x.duration;\r\n this.defaultValueType = x.description;\r\n this.otherPermitType = x.code.substring(0,4) == \"OTH-\"? true : false;\r\n if(this.router.url.indexOf('correction') < 0 || this.router.url.indexOf('duplicate') < 0 || this.router.url.indexOf('vehicle') < 0 || this.router.url.indexOf('change') < 0)\r\n {\r\n this.vehicleTerm = x.temp_long_ind;\r\n this.vehicleType = x.freight_passenger_ind;\r\n }\r\n\r\n this.dataCntrl.selectedtype = x.code + '-' + x.description\r\n this.dataCntrl.permittypeSelected = true;\r\n this.selectedPermitId = x.id;\r\n this.dataCntrl.vehicleType = this.vehicleType;\r\n \r\n this.dataCntrl.vehicleTerm = this.vehicleTerm;\r\n this.dataCntrl.durationSelected = this.defaultValue;\r\n this.durationSelected= this.defaultValue;\r\n this.typeSelected = this.defaultValueType;\r\n this.utility.timetableActive=this.dataCntrl.permittype.timetable_reqd;\r\n if(this.dataCntrl.changeRoute){\r\n let flag:any=localStorage.getItem(\"timetable\");\r\n if(flag!=undefined && flag=='true'){\r\n this.utility.timetableActive=true;\r\n }\r\n }\r\n if(this.utility.timetableActive){\r\n this.utility.sequenceNumbers.permitNum=1;\r\n this.utility.sequenceNumbers.vehicleNum=2;\r\n this.utility.sequenceNumbers.routesNum=3;\r\n this.utility.sequenceNumbers.motivationNum=4;\r\n this.utility.sequenceNumbers.timeTableNum=5;\r\n this.utility.sequenceNumbers.uploadsNum=6;\r\n this.utility.sequenceNumbers.cnfNum=7;\r\n }else{\r\n this.utility.sequenceNumbers.permitNum=1;\r\n this.utility.sequenceNumbers.vehicleNum=2;\r\n this.utility.sequenceNumbers.routesNum=3;\r\n this.utility.sequenceNumbers.motivationNum=4;\r\n this.utility.sequenceNumbers.timeTableNum=4;\r\n this.utility.sequenceNumbers.uploadsNum=5;\r\n this.utility.sequenceNumbers.cnfNum=6;\r\n }\r\n setTimeout(()=>{\r\n let indexVal: any = document.getElementById(\"idCtype\") as HTMLSelectElement;\r\n ////console.log(indexVal.selectedIndex);\r\n if(indexVal != undefined && indexVal!=null){\r\n this.dataCntrl.permitSelectIndex = indexVal.selectedIndex;\r\n }\r\n ////console.log(this.defaultValue);\r\n },1000);\r\n if (this.permitDisabled && !this.dataCntrl.isSaveAndCon) {\r\n this.saveApplication();\r\n } else {\r\n this.utility.confirmCtrl = true;\r\n this.reloadVehicle = true;\r\n }\r\n if (this.utility.changeKey == 1) {\r\n if(this.dataCntrl.changeRoute){\r\n this.utility.activeTab = 3;\r\n //console.log('Change Key in app-permit-type = ', this.utility.changeKey);\r\n }\r\n } else if (this.utility.changeKey == 2) {\r\n this.utility.activeTab = 4;\r\n }else if(this.utility.changeKey ==3){\r\n this.utility.activeTab = 2;\r\n }\r\n\r\n })\r\n }\r\n getPermitType() {\r\n this.pageload = true;\r\n this.permitTypeService.getAll().subscribe((result:any) => {\r\n result.forEach(element => {\r\n if (element.is_permit > 0) {\r\n //duration\r\n element[\"duration\"] = element.permit_days > 0 ? element.permit_days + \" Days\" : null;\r\n element[\"duration\"] = element.permit_months > 0 ? element.permit_months + \" Months\" : element.duration;\r\n element[\"duration\"] = element.permit_years > 0 ? element.permit_years + (element.permit_years == 1 ? \" Year\" : \" Years\") : element.duration;\r\n \r\n //num days\r\n element[\"num_days\"] = element.permit_days;\r\n element[\"num_days\"] = element.permit_months > 0 ? element.permit_months * 30.4 : element.num_days;\r\n element[\"num_days\"] = element.permit_years > 0? element.permit_years * 365.25 : element.num_days;\r\n \r\n\r\n if (element.is_active && !this.durations.some(d => d.num_days == element.num_days && d.freight_passenger_ind == element.freight_passenger_ind && d.temp_long_ind == element.temp_long_ind))\r\n this.durations.push({ num_days: element.num_days, duration: element.duration, freight_passenger_ind: element.freight_passenger_ind, temp_long_ind: element.temp_long_ind });\r\n\r\n if (element.is_active){\r\n \r\n this.permittype.push(element);\r\n }\r\n }\r\n });\r\n\r\n\r\n //console.log(JSON.stringify(this.permittype) + \"=================================\");\r\n\r\n //console.log(this.durations);\r\n //console.log(this.permittype);\r\n //this.permittype = result.filter(x => x.is_active == true);\r\n // this.setPermitData(result)\r\n setTimeout(() => {\r\n //console.log(this.dataCntrl.permitSelectIndex);\r\n var indexVal1: any = document.getElementById(\"idCtype\") as HTMLSelectElement;\r\n if(indexVal1 != undefined && indexVal1 != null){\r\n indexVal1.selectedIndex = this.dataCntrl.permitSelectIndex;\r\n }\r\n }, 100);\r\n this.setHTMLDATA()\r\n this.pageload = false;\r\n this.utility.confirmCtrl = true;\r\n\r\n }, error => {\r\n this.pageload = false;\r\n //console.log(error);\r\n });\r\n }\r\n durationChange(durationSelected) {\r\n this.durationSelected = durationSelected.value;\r\n //console.log(this.durationSelected);\r\n this.dataCntrl.durationSelected = this.durationSelected;\r\n // this.defaultValueType = null\r\n }\r\n onChange() {\r\n //(JSON.stringify(this.selectedPermit));\r\n this.canSave = true;\r\n if (this.dataCntrl.application.id === undefined || this.dataCntrl.application.id === null) {\r\n\r\n //console.log(this.dataCntrl.application.id);\r\n this.dataCntrl.permittypeSelected = true;\r\n this.dataCntrl.application.permit_type_id = this.selectedPermit.id;\r\n this.dataCntrl.selectedtype = this.selectedPermit.code + '-' + this.selectedPermit.description;\r\n this.utility.timetableActive=this.selectedPermit.timetable_reqd;\r\n if(this.utility.timetableActive){\r\n this.utility.sequenceNumbers.permitNum=1;\r\n this.utility.sequenceNumbers.vehicleNum=2;\r\n this.utility.sequenceNumbers.routesNum=3;\r\n this.utility.sequenceNumbers.motivationNum=4;\r\n this.utility.sequenceNumbers.timeTableNum=5;\r\n this.utility.sequenceNumbers.uploadsNum=6;\r\n this.utility.sequenceNumbers.cnfNum=7;\r\n }else{\r\n this.utility.sequenceNumbers.permitNum=1;\r\n this.utility.sequenceNumbers.vehicleNum=2;\r\n this.utility.sequenceNumbers.routesNum=3;\r\n this.utility.sequenceNumbers.motivationNum=4;\r\n this.utility.sequenceNumbers.uploadsNum=5;\r\n this.utility.sequenceNumbers.cnfNum=6;\r\n }\r\n this.dataCntrl.permittype = this.selectedPermit;\r\n this.selectedPermitId = this.selectedPermit.id;\r\n let indexVal: any = document.getElementById(\"idCtype\") as HTMLSelectElement;\r\n if(indexVal != undefined && indexVal != null)\r\n {\r\n this.dataCntrl.permitSelectIndex = indexVal.selectedIndex;\r\n }\r\n this.checktempnum( this.dataCntrl.carrierID , this.dataCntrl.application.permit_type_id, this.dataCntrl.permittype.num_renewals_allowed, this.dataCntrl.permittype.freight_passenger_ind, this.dataCntrl.permittype.temp_long_ind);\r\n \r\n } else {\r\n\r\n //console.log(this.dataCntrl.application.id);\r\n // this.showModal.showYesNo('Update Permit Type', 'You have changed the permit type. You will need to start your application again.', `Do you want to continue?`, 'Yes', 'No')\r\n // .subscribe((isConfirmed) => {\r\n \r\n // if (isConfirmed) {\r\n // this.dataCntrl.permittypeSelected = true;\r\n // this.dataCntrl.application.permit_type_id = this.selectedPermitId;\r\n // this.dataCntrl.selectedtype = this.selectedPermit.code + '-' + this.selectedPermit.description;\r\n // this.dataCntrl.permittype = this.selectedPermit;\r\n // this.selectedPermitId = this.selectedPermitId;\r\n // let indexVal: any = document.getElementById(\"idCtype\") as HTMLSelectElement;\r\n // //console.log(indexVal.selectedIndex);\r\n // if(indexVal != undefined && indexVal != null)\r\n // {\r\n // this.dataCntrl.permitSelectIndex = indexVal.selectedIndex;\r\n // }\r\n // this.utility.timetableActive=this.selectedPermit.timetable_reqd;\r\n // if(this.utility.timetableActive){\r\n // this.utility.sequenceNumbers.permitNum=1;\r\n // this.utility.sequenceNumbers.vehicleNum=2;\r\n // this.utility.sequenceNumbers.routesNum=3;\r\n // this.utility.sequenceNumbers.motivationNum=4;\r\n // this.utility.sequenceNumbers.timeTableNum=5;\r\n // this.utility.sequenceNumbers.uploadsNum=6;\r\n // this.utility.sequenceNumbers.cnfNum=7;\r\n // }else{\r\n // this.utility.sequenceNumbers.permitNum=1;\r\n // this.utility.sequenceNumbers.vehicleNum=2;\r\n // this.utility.sequenceNumbers.routesNum=3;\r\n // this.utility.sequenceNumbers.motivationNum=4;\r\n // this.utility.sequenceNumbers.uploadsNum=5;\r\n // this.utility.sequenceNumbers.cnfNum=6;\r\n // }\r\n // this.checktempnum( this.dataCntrl.carrierID , this.dataCntrl.application.permit_type_id, this.dataCntrl.permittype.num_renewals_allowed, this.dataCntrl.permittype.freight_passenger_ind, this.dataCntrl.permittype.temp_long_ind);\r\n // this.saveApplication();\r\n\r\n\r\n // } else {\r\n // return;\r\n // }\r\n // });\r\n this.confirmDialogService.confirmThis('You have changed the permit type. You will need to start your application again. Do you want to continue?', () => { \r\n \r\n this.dataCntrl.permittypeSelected = true;\r\n this.dataCntrl.application.permit_type_id = this.selectedPermitId;\r\n this.dataCntrl.selectedtype = this.selectedPermit.code + '-' + this.selectedPermit.description;\r\n this.dataCntrl.permittype = this.selectedPermit;\r\n this.selectedPermitId = this.selectedPermitId;\r\n let indexVal: any = document.getElementById(\"idCtype\") as HTMLSelectElement;\r\n //console.log(indexVal.selectedIndex);\r\n if(indexVal != undefined && indexVal != null)\r\n {\r\n this.dataCntrl.permitSelectIndex = indexVal.selectedIndex;\r\n }\r\n this.utility.timetableActive=this.selectedPermit.timetable_reqd;\r\n if(this.utility.timetableActive){\r\n this.utility.sequenceNumbers.permitNum=1;\r\n this.utility.sequenceNumbers.vehicleNum=2;\r\n this.utility.sequenceNumbers.routesNum=3;\r\n this.utility.sequenceNumbers.motivationNum=4;\r\n this.utility.sequenceNumbers.timeTableNum=5;\r\n this.utility.sequenceNumbers.uploadsNum=6;\r\n this.utility.sequenceNumbers.cnfNum=7;\r\n }else{\r\n this.utility.sequenceNumbers.permitNum=1;\r\n this.utility.sequenceNumbers.vehicleNum=2;\r\n this.utility.sequenceNumbers.routesNum=3;\r\n this.utility.sequenceNumbers.motivationNum=4;\r\n this.utility.sequenceNumbers.uploadsNum=5;\r\n this.utility.sequenceNumbers.cnfNum=6;\r\n }\r\n this.checktempnum( this.dataCntrl.carrierID , this.dataCntrl.application.permit_type_id, this.dataCntrl.permittype.num_renewals_allowed, this.dataCntrl.permittype.freight_passenger_ind, this.dataCntrl.permittype.temp_long_ind);\r\n this.saveApplication();\r\n\r\n \r\n }, () => { \r\n return;\r\n }) \r\n\r\n }\r\n\r\n\r\n }\r\n setPermitData(data) {\r\n data.forEach(element => {\r\n element.fee = this.currformat.transform(parseFloat(element.current_fee));\r\n });\r\n // this.permittype = data;\r\n\r\n if (this.dataCntrl.isViewEditControl == true) {\r\n this.editMode = this.dataCntrl.editMode;\r\n // this.setSelectedType();\r\n }\r\n }\r\n\r\n setHTMLDATA() {\r\n\r\n if (environment.authWebApi.systemData != null) {\r\n let link = environment.authWebApi.systemData.Configurations.find(p => p.Code == 'iCBMSLinks2');\r\n let help = environment.authWebApi.systemData.Configurations.find(p => p.Code == 'iCBMSLand2');\r\n this.linkhtml = this.sanitizer.bypassSecurityTrustHtml(link.Value);\r\n this.helphtml = this.sanitizer.bypassSecurityTrustHtml(help.Value);\r\n\r\n //console.log(this.helphtml);\r\n }\r\n }\r\n\r\n setSelectedType() {\r\n this.selectedIndex = this.permittype.findIndex(p => p.id == 11); \r\n }\r\n\r\n onSelectType(index, item) {\r\n if (this.dataCntrl.processStarted == true) {\r\n this.dataCntrl.disableTypes = true;\r\n \r\n this.toastr.warning('Permit Type', `Permit type cannot be changed once the application process has been started. Please delete this application and start again.`)\r\n } else {\r\n this.selectedIndex = index;\r\n this.dataCntrl.permittypeSelected = true;\r\n this.dataCntrl.application.permit_type_id = item.id;\r\n this.dataCntrl.selectedtype = `${item.code} - ${item.description}`;\r\n this.dataCntrl.permittype = item;\r\n }\r\n }\r\n selectVehicleTerm(termVal) {\r\n this.vehicleTerm = termVal;\r\n this.dataCntrl.vehicleTerm = this.vehicleTerm;\r\n this.utility.timetableActive=false;\r\n this.defaultValueType = null;\r\n\r\n\r\n if(this.utility.timetableActive){\r\n this.utility.sequenceNumbers.permitNum=1;\r\n this.utility.sequenceNumbers.vehicleNum=2;\r\n this.utility.sequenceNumbers.routesNum=3;\r\n this.utility.sequenceNumbers.timeTableNum=5;\r\n this.utility.sequenceNumbers.uploadsNum=6;\r\n this.utility.sequenceNumbers.motivationNum=4;\r\n this.utility.sequenceNumbers.cnfNum=7;\r\n }else{\r\n this.utility.sequenceNumbers.permitNum=1;\r\n this.utility.sequenceNumbers.vehicleNum=2;\r\n this.utility.sequenceNumbers.routesNum=3;\r\n this.utility.sequenceNumbers.motivationNum=4;\r\n this.utility.sequenceNumbers.uploadsNum=5;\r\n this.utility.sequenceNumbers.cnfNum=6;\r\n }\r\n }\r\n\r\n checktempnum(carrierid, permittypeid, permittypemaxallow, freightpassind, temporlong)\r\n {\r\n\r\n if(temporlong == 1) \r\n {\r\n this.permitService.checkpermnum(carrierid, permittypeid).subscribe((result:any) => {\r\n // this.permitService.checkpermnum(36, 13).subscribe(result => {\r\n\r\n \r\n \r\n if(!this.isFreight ) \r\n {\r\n if(result.length != 0)\r\n {\r\n var totalpermits = result[0].total;\r\n this.maxallowedpermits = permittypemaxallow;\r\n //console.log(permittypemaxallow);\r\n if(totalpermits == (permittypemaxallow - 1))\r\n {\r\n this.toastr.warning('Please note that you have already received '+ totalpermits + ' temporary permits of this type. You will have to apply for a Long-Term Permit before you can apply for another temporary permit of this type', 'Permit Type');\r\n }\r\n \r\n if(totalpermits == permittypemaxallow)\r\n {\r\n this.disableBtn = true;\r\n this.toastr.warning('Please note that you have already received '+ totalpermits + ' temporary permits of this type. You will have to apply for a Long-Term Permit before you can apply for another temporary permit of this type', 'Permit Type');\r\n this.permitService.getpermappbycarrier(carrierid,freightpassind).subscribe((data:any) => {\r\n // this.permitService.getpermappbycarrier(36,2).subscribe(data => {\r\n //console.log(JSON.stringify(data));\r\n //console.log('Array lenght: ' + data.length)\r\n \r\n if(typeof data !== 'undefined' && data.length > 0)\r\n {\r\n this.carrierapplist = data;\r\n this.showcarapplist= true;\r\n }\r\n });\r\n }\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n selectedApplication(event,item){\r\n this.selectedappid = item.appid\r\n this.disableBtn = false;\r\n this.isFreight = (event == '1');\r\n \r\n }\r\n selectVehicleType(typeVal) {\r\n // //console.log(typeVal);\r\n this.vehicleType = typeVal;\r\n \r\n this.dataCntrl.vehicleType = this.vehicleType;\r\n this.defaultValueType = null;\r\n this.isFreight = (typeVal == '1');\r\n \r\n setTimeout(()=>{\r\n if($(\"#idCtype\").val()=='null' || $(\"#idCtype\").val()==null){\r\n this.utility.timetableActive=false;\r\n // this.utility.sequenceNumbers.permitNum=1;\r\n // this.utility.sequenceNumbers.vehicleNum=2;\r\n // this.utility.sequenceNumbers.routesNum=3;\r\n // this.utility.sequenceNumbers.uploadsNum=4;\r\n // this.utility.sequenceNumbers.cnfNum=5;\r\n\r\n }else{\r\n this.utility.timetableActive=true;\r\n this.utility.sequenceNumbers.timeTableNum=5;\r\n this.utility.sequenceNumbers.uploadsNum=6;\r\n this.utility.sequenceNumbers.cnfNum=7;\r\n }\r\n },300);\r\n\r\n }\r\n\r\n myRef(reference) {\r\n //console.log(reference)\r\n this.referenceNum = reference;\r\n }\r\n saveApplication() {\r\n //console.log(this.dataCntrl);\r\n\r\n if (!this.permitDisabled && this.selectedPermit == null || this.selectedPermit == \"null\") {\r\n this.toastr.warning('Please select your Permit Type ', 'Permit Type');\r\n this.pageload = false;\r\n return false;\r\n }\r\n // if(!this.referenceNum){\r\n // return this.toastr.warning('Please fill in your Reference','Permit Type');\r\n // }\r\n this.pageload = true;\r\n\r\n this.dataCntrl.application.date_modified = this.dataCntrl.application.date_created = new Date();\r\n this.dataCntrl.application.user_modified = this.dataCntrl.application.user_created = environment.authWebApi.userData.User.FirstName;\r\n this.dataCntrl.application.reference_num = this.referenceNum;\r\n // if(this.dataCntrl.permit.permit_type_id === undefined){\r\n // this.pageload = false;\r\n // return this.toastr.warning('Please select Permit Type first!','Permit Type');\r\n // }\r\n //console.log(this.dataCntrl);\r\n //console.log(this.dataCntrl.application.id)\r\n if ((this.dataCntrl.application.id == undefined || this.dataCntrl.application.id == null)) {\r\n let object: any = Object();\r\n object['date_modified'] = this.dataCntrl.application.date_modified;\r\n object['user_modified'] = this.dataCntrl.application.user_modified;\r\n object['reference_num'] = this.dataCntrl.application.reference_num;\r\n object['permit_type_id'] = this.dataCntrl.application.permit_type_id;\r\n object['person_id'] = this.dataCntrl.application.person_id;\r\n object['carrier_id'] = this.dataCntrl.carrierID;\r\n object['date_created'] = this.dataCntrl.application.date_created;\r\n object['user_created'] = this.dataCntrl.application.user_created;\r\n\r\n//person_id\r\n let oldResult: any = this.dataCntrl.application;\r\n this.applicationService.postApplication(object)\r\n .subscribe(result => {\r\n if (this.permitDisabled) {\r\n this.dataCntrl.application = oldResult;\r\n this.dataCntrl.isSaveAndCon = true;\r\n this.dataCntrl.renewApplication = result;\r\n this.dataCntrl.permit.is_valid=false;\r\n } else {\r\n this.dataCntrl.application = result;\r\n }\r\n\r\n this.tabload = false;\r\n \r\n this.pageload = false;\r\n this.applicationService.setTab(2);\r\n \r\n // this.dataCntrl.permits.forEach(permit => {\r\n // permit.permit_type_id = result.permit_type_id;\r\n // permit.application_id = result.id;\r\n // });\r\n \r\n //this.savePermit();\r\n // this.pageload = false;\r\n this.reloadVehicle = true;\r\n\r\n\r\n\r\n },\r\n error => {\r\n // this.tabload = false;\r\n this.toastr.error('Save Application', 'Failed to save application. If the problem persist, please contact system administrator.', error)\r\n\r\n // this.showModal.showError('Save Application', 'Failed to save application. If the problem persist, please contact system administrator.', error);\r\n return;\r\n });\r\n } else {\r\n //console.log(this.dataCntrl.permit);\r\n\r\n // this.dataCntrl.application.motivation_detail = null;\r\n // this.dataCntrl.application.route_id = null;\r\n this.updateApplication();\r\n \r\n\r\n }\r\n\r\n }\r\n cancelApplication() {\r\n let prevUrl = localStorage.getItem('previousUrl');\r\n if (prevUrl.search('/permit/approval') != -1) {\r\n this.router.navigate(['/permit/approval/']);\r\n } else if (prevUrl.search('/carrier/permit/application/mypermits') != -1) {\r\n this.router.navigate(['/carrier/permit/application/mypermits/',this.dataCntrl.carrierID]);\r\n } else {\r\n this.router.navigate(['/carrier/permit/application/',this.dataCntrl.carrierID]);\r\n }\r\n }\r\n // if (this.dataCntrl.application.id == undefined && this.dataCntrl.application.id == null) {\r\n // this.router.navigate(['/carrier/permit/application/' + this.dataCntrl.carrierID]);\r\n // } else {\r\n // this.showModal.showYesNo('Delete Application', 'Are you sure you want to delete?', `You're about to delete application`, 'Yes', 'No')\r\n // .subscribe((isConfirmed) => {\r\n // if (isConfirmed) {\r\n // this.deleteApplication()\r\n // } else {\r\n // return;\r\n // }\r\n // });\r\n // }\r\n // }\r\n // deleteApplication() {\r\n // //console.log(\"delete application\");\r\n // this.pageload = true;\r\n\r\n // this.permitService.deletePermit(this.dataCntrl.permit.id).subscribe(x => {\r\n // //console.log(x);\r\n // this.deleteApp(this.dataCntrl.application.id);\r\n // this.pageload = false;\r\n\r\n // this.router.navigate(['/carrier/permit/application/' + this.dataCntrl.carrierID]);\r\n\r\n // })\r\n // //this.dataCntrl.application.id\r\n // //this.dataCntrl.permit.id\r\n // }\r\n // deletePermit(id) {\r\n // this.permitService.deletePermit(id).subscribe(x => {\r\n // //console.log(x);\r\n // })\r\n\r\n // }\r\n // deleteApp(id) {\r\n // this.applicationService.deleteApplication(id).subscribe(x => {\r\n // //console.log(x);\r\n // })\r\n // }\r\n savePermit() {\r\n\r\n this.dataCntrl.permits.forEach(permit => {\r\n permit.date_modified = this.dataCntrl.permit.date_created = new Date();\r\n permit.user_modified = this.dataCntrl.permit.user_created = environment.authWebApi.userData.User.FirstName;\r\n permit.permit_fee = this.dataCntrl.permittype.current_fee == null ? 0 : this.dataCntrl.permittype.current_fee;\r\n permit.application_fee = this.dataCntrl.permittype.current_application_fee == null ? 0 : this.dataCntrl.permittype.current_application_fee;\r\n permit.supporting_application_id = this.selectedappid;\r\n permit.permit_num = 0; \r\n permit.renewal_num = 0;\r\n this.permitService.postPermit(permit)\r\n .subscribe(result => {\r\n this.dataCntrl.permit = result;\r\n //this.dataCntrl.permit.permit_num = this.dataCntrl.permit.id + 100000000;\r\n this.dataCntrl.permit.permit_num = 0; //Remove permit_num assignment task ---\r\n this.dataCntrl.permit.renewal_num = 0;\r\n this.dataCntrl.permit.date_modified = this.dataCntrl.permit.date_created = new Date();\r\n this.dataCntrl.permit.user_modified = this.dataCntrl.permit.user_created = environment.authWebApi.userData.User.FirstName;\r\n this.dataCntrl.permit.permit_fee = this.dataCntrl.permittype.current_fee == null ? 0 : this.dataCntrl.permittype.current_fee;\r\n this.dataCntrl.permit.application_fee = this.dataCntrl.permittype.current_application_fee == null ? 0 : this.dataCntrl.permittype.current_application_fee;\r\n \r\n \r\n this.tabload = false;\r\n \r\n this.pageload = false;\r\n this.applicationService.setTab(2);\r\n \r\n this.utility.confirmCtrl = true;\r\n if (this.permitDisabled) {\r\n this.utility.confirmCtrl = true;\r\n this.reloadVehicle = true;\r\n }\r\n //this.applicationService.setTab(2);\r\n //$(\"#vehicleTypeBtn\").click();\r\n\r\n },\r\n error => {\r\n this.tabload = false\r\n this.toastr.error('Failed to save application. If the problem persist, please contact system administrator.', error)\r\n\r\n return;\r\n });\r\n });\r\n \r\n }\r\n updateRenewPermit(){\r\n let renewalNum:any=this.dataCntrl.oldPermit.renewal_num;\r\n if(renewalNum==null){\r\n renewalNum=0;\r\n }\r\n this.dataCntrl.oldPermit.renewal_num=renewalNum+1;\r\n this.permitService.upadatePermit(this.dataCntrl.oldPermit).subscribe(result => {\r\n //console.log('-renewla--'+result.renewal_num);\r\n });\r\n }\r\n updatePermit(permit) {\r\n\r\n this.pageload = true;\r\n\r\n // this.dataCntrl.permit.permit_num = this.dataCntrl.permit.id + 100000000;\r\n permit.date_modified = new Date();\r\n permit.user_modified = environment.authWebApi.userData.User.Username;\r\n permit.permit_fee = this.dataCntrl.permittype.current_fee == null ? 0 : this.dataCntrl.permittype.current_fee;\r\n permit.application_fee = this.dataCntrl.permittype.current_application_fee == null ? 0 : this.dataCntrl.permittype.current_application_fee;\r\n \r\n this.permitService.upadatePermit(permit).subscribe(result => {\r\n this.dataCntrl.permits = []; //clear permits\r\n //$(\"#vehicleDeleteBtn\").click();//vehicleDeleteRouteBtn\r\n this.dataCntrl.permits.push(result); // push the updated permit into list\r\n this.reloadVehicle = true;\r\n this.pageload = false;\r\n \r\n //permit id + 100 000 000\r\n })\r\n\r\n }\r\n updateApplication() {\r\n if(this.isEditMode)\r\n {\r\n this.dataCntrl.application.status_id = 1;\r\n }\r\n \r\n this.applicationService.putApplication(this.dataCntrl.application).subscribe((x:any) => {\r\n // $(\"#vehicleDeleteRouteBtn\").click();//vehicleDeleteRouteBtn\r\n this.dataCntrl.application = x;\r\n if(this.dataCntrl.permits != null && this.dataCntrl.permits.length > 0)\r\n {\r\n this.dataCntrl.permits.forEach(permit => {\r\n if(this.isEditMode)\r\n {\r\n permit.status_id = 1;\r\n }\r\n permit.permit_type_id = x.permit_type_id;\r\n permit.application_id = x.id;\r\n this.updatePermit(permit);\r\n });\r\n }\r\n\r\n //$(\"#vehicleTypeBtn\").click();\r\n this.applicationService.setTab(2);\r\n\r\n });\r\n }\r\n changeView(activeC: number, action = 0) {\r\n this.ctrlData.currentActive = activeC;\r\n this.ctrlData.action = action;\r\n }\r\n \r\n getViewApp(){\r\n //console.log('Inside')\r\n this.activeRoute.params.subscribe((params: Params) => {\r\n this.dataCntrl.application.id = params['id'];\r\n this.isProcess = false;\r\n if (environment.authWebApi.userData.Roles.find(p => p.Code == 'ADMIN')) {\r\n //this.disableBtn = true;\r\n //console.log('This is Admin')\r\n }\r\n });\r\n this.getApplication();\r\n }\r\n\r\n compareFunction(one: any, two: any) {\r\n return one.id == two.id;\r\n }\r\n\r\n}\r\n","\r\n\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Permit* Please add permit type linked to this application\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n\r\n\r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n\r\n
\r\n
\r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n\r\n
\r\n
\r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n\r\n
\r\n
\r\n \r\n \r\n\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n\r\n
\r\n
\r\n\r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n

You have already received {{maxallowedpermits-1}} of this type of permit. You may only apply for {{maxallowedpermits}} of this type of permit if you have submitted an equivalent long-term permit application. Please select the relevant long-term application from the list below.

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
Application NumberAccount NamePermit Type Permit Start DatePermit End DatePermit StausApplication Date
{{item.appid}}{{item.permitnum}}{{item.permtype}}{{item.permstartdate}}{{item.permenddate}}{{item.permstatus}}{{item.appdate}}
\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n\r\n\r\n
\r\n \r\n\r\n Cancel\r\n\r\n Save & Continue\r\n
\r\n\r\n\r\n Back\r\n
\r\n
\r\n","import { Component, OnInit, Input, ViewChild } from '@angular/core';\r\nimport { FormControl, Validators, FormGroup, FormBuilder } from '@angular/forms';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { environment } from '../../../../../environments/environment';\r\nimport { ApplicationService } from 'app/services/application.service';\r\nimport { PopupService } from '../../../../services/shared/popup.service';\r\nimport { Router, ActivatedRoute, Params } from '@angular/router';\r\nimport { PermitService } from 'app/services/permit.service';\r\nimport { VehicleService } from 'app/services/vehicle.service';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { debounceTime, distinctUntilChanged, filter, map, merge } from 'rxjs/operators';\r\nimport { PlaceService } from 'app/services/place.service';\r\nimport { NgbTypeahead } from '@ng-bootstrap/ng-bootstrap';\r\nimport { DocumenttypeService } from 'app/services/documenttype.service';\r\nimport { RouteService } from 'app/services/route.service';\r\nimport { CountryService } from 'app/services/country.service';\r\nimport { UtilityServiceService } from 'app/services/utility-service.service';\r\nimport { PermitTypeService } from 'app/services/permit-type.service';\r\n\r\n@Component({\r\n selector: 'app-app-route',\r\n templateUrl: './app-route.component.html',\r\n styleUrls: ['./app-route.component.css'],\r\n providers: [PlaceService, RouteService]\r\n})\r\nexport class AppRouteComponent implements OnInit {\r\n @Input() dataCntrl: any;\r\n @Input() routeCtrl: any = { isNew: false, btnRadio: null, rLeg: {} };\r\n form: FormGroup;\r\n model: any = [];\r\n tabload: boolean = false;\r\n public pageload = false;\r\n disableBtn: boolean = false;\r\n selectedStartCoutry: any;\r\n isPermitApplication : boolean = false;\r\n\r\n @ViewChild('instance') instance: NgbTypeahead;\r\n focus$ = new Subject();\r\n click$ = new Subject();\r\n\r\n places: any = [];\r\n routes: any = [];\r\n ownRoutes: any = [];\r\n countries: any = [];\r\n selectedRadio: boolean = false;\r\n route_detail: any;\r\n start: any;\r\n end: any;\r\n defaultValue: string = '';\r\n selectedRoute: any;\r\n placeSelected: any = [];\r\n //btnRadio: any;\r\n selectedEndCoutry: any;\r\n placeEndSelected: any = [];\r\n defaultStartCoutry: any;\r\n defaultEndCoutry: any;\r\n\r\n selectedEndPlace: any;\r\n selectedStartPlace: any;\r\n defaultStartPlace: any;\r\n defaultEndPlace: any;\r\n\r\n default: any;\r\n\r\n isCheck: boolean = false;\r\n checkDelete: boolean = false;\r\n isProcess: boolean = true;\r\n selectedRouteId: any;\r\n message = '';\r\n isDuplicateMode: boolean = false;\r\n replaceVehicle: boolean = false;\r\n isStandard:boolean=false;\r\n isCorrection:boolean=false;\r\n isLongTermCorrection:boolean=false;\r\n frghtPass = '';\r\n\r\n constructor(private formBuilder: FormBuilder, private toastr: ToastrService,\r\n private showModal: PopupService, public applicationService: ApplicationService,\r\n private router: Router, private permitService: PermitService,\r\n private vehicleService: VehicleService, private permitTypeService: PermitTypeService,\r\n private utility: UtilityServiceService,\r\n private activeRoute: ActivatedRoute, private placeService: PlaceService,\r\n private documenttypeService: DocumenttypeService, private routeService: RouteService, private countryService: CountryService) {\r\n this.toastr.clear();\r\n\r\n }\r\n\r\n ngOnInit() {\r\n //////alert(this.dataCntrl.application.id); \r\n this.isDuplicateMode = this.router.url.indexOf('duplicate') > 0;\r\n //this.routeCtrl = { isNew:true };\r\n if (this.router.url.indexOf('view') > 0) {\r\n this.isProcess = false;\r\n //////alert('1');\r\n this.checkDelete = true;\r\n this.isCheck = true;\r\n this.activeRoute.params.subscribe((params: Params) => {\r\n this.dataCntrl.application.id = params['id'];\r\n\r\n //////alert(this.dataCntrl.application.id); \r\n \r\n if (environment.authWebApi.userData.Roles.find(p => p.Code == 'ADMIN')) {\r\n //this.disableBtn = true;\r\n ////console.log('This is Admin')\r\n }\r\n });\r\n }\r\n if (this.router.url.indexOf('edit') > 0 || this.router.url.indexOf('duplicate') > 0) {\r\n if(this.router.url.indexOf('duplicate') > 0){\r\n this.isStandard=true;\r\n }\r\n this.activeRoute.params.subscribe((params: Params) => {\r\n this.dataCntrl.application.id = params['id'];\r\n this.dataCntrl.application.id = this.dataCntrl.application.id == null || this.dataCntrl.application.id == undefined? this.dataCntrl.permits[0].application_id : this.dataCntrl.application.id;\r\n ////console.log('Application ID :', params['id']);\r\n if (environment.authWebApi.userData.Roles.find(p => p.Code == 'ADMIN')) {\r\n this.disableBtn = true;\r\n ////console.log('This is Admin')\r\n }\r\n });\r\n\r\n }\r\n if(this.router.url.indexOf('change') > 0){\r\n if(this.activeRoute.params['_value'].ctrlType!=undefined && this.activeRoute.params['_value'].ctrlType=='vehicle'){\r\n this.replaceVehicle=true;\r\n this.isStandard=true;\r\n }\r\n }\r\n\r\n if(this.dataCntrl.application.id != null && this.dataCntrl.application.id > 0)\r\n {\r\n this.isPermitApplication = true;\r\n }\r\n\r\n this.dataCntrl.changeRoute=false;\r\n this.initForm();\r\n // this.getPlaces();\r\n\r\n // simulate radio button '1' clicked. radio buttons have been 'removed'\r\n this.routeCtrl.btnRadio = '1'\r\n // this.optionOneEvent();\r\n // this.isCheck = true;\r\n // this.defaultValue = 'Select route';\r\n // this.selectedRoute = 'Select route';\r\n // this.isStandard=true;\r\n // this.dataCntrl.isStandard=true;\r\n\r\n //this.clickOptionOne();\r\n \r\n this.frghtPass = this.dataCntrl.permittype.freight_passenger_ind == 1 ? 'A' : 'B';\r\n this.PopulateRouteDropDown();\r\n this.model = this.dataCntrl;\r\n \r\n // ////alert(this.isCheck);\r\n // ////alert(JSON.stringify(this.routes));\r\n this.checkIfLongTermPermit();\r\n\r\n \r\n ////console.log('Route data :', this.routeCtrl);\r\n }\r\n\r\n LoadPermitRouteData(application)\r\n {\r\n \r\n this.form.patchValue({\r\n \r\n route_detail: application.route_detail,\r\n route_summary: application.route_summary,\r\n description: application.route_summary,\r\n \r\n });\r\n\r\n if(application.route_summary == null || application.route_summary == undefined )\r\n { \r\n this.selectedRoute = \"Select route\";\r\n this.defaultValue = \"\";\r\n } \r\n }\r\n\r\nclickOptionOne() {\r\n // if (event.target.value === '1') {\r\n // this.form.reset();\r\n this.isCheck = false;\r\n this.checkDelete = false;\r\n\r\n this.frghtPass = this.dataCntrl.permittype.freight_passenger_ind == 1 ? 'A' : 'B';\r\n\r\n this.getPlaces();\r\n this.defaultValue = '';\r\n this.form.patchValue({\r\n id: '',\r\n route_name: 'Select route',\r\n route_detail: '',\r\n route_summary: '',\r\n code: '',\r\n description: '',\r\n });\r\n this.selectedRoute = 'Select route';\r\n\r\n if (this.dataCntrl.application.status_id != '1') {\r\n this.isStandard=true;\r\n this.dataCntrl.isStandard=true;\r\n }\r\n\r\n // }\r\n }\r\n\r\n initForm() {\r\n this.form = this.formBuilder.group({\r\n id: [0, []],\r\n btnRadio: ['', [Validators.required]],\r\n route_name: ['', [Validators.required]],\r\n code: ['', [Validators.required]],\r\n route_detail: ['', [Validators.required]],\r\n route_summary: ['', [Validators.required]],\r\n description: ['', [Validators.required]],\r\n });\r\n }\r\n formatter = (x: { name: string }) => x.name;\r\n\r\n\r\n getSelectedEnd(event) {\r\n let country = this.countries.find(x => x.desc == event.item)\r\n let obj = this.places.find(x => x.country_id == country.id);\r\n let id = obj.id;\r\n ////console.log(id);\r\n this.end = id;\r\n\r\n }\r\n getSelectedStart(event) {\r\n\r\n let country = this.countries.find(x => x.desc == event.item)\r\n let obj = this.places.find(x => x.country_id == country.id);\r\n let id = obj.id;\r\n this.start = id;\r\n ////console.log(id);\r\n\r\n }\r\n search = (text$: Observable) =>\r\n text$.pipe(\r\n debounceTime(200),\r\n distinctUntilChanged(),\r\n map(term => term === '' ? this.countries.map(v => v.desc)\r\n : this.countries.map(v => v.desc).filter(v => v.toLowerCase().indexOf(term.toLowerCase()) > -1).slice(0, 10)),);\r\n //desc\r\n search2 = (text$: Observable) =>\r\n text$.pipe(\r\n debounceTime(200),\r\n distinctUntilChanged(),\r\n map(term => term === '' ? this.routes.map(v => v.route_detail)\r\n : this.routes.map(v => v.route_detail).filter(v => v.toLowerCase().indexOf(term.toLowerCase()) > -1).slice(0, 10)),);\r\n\r\n\r\n getSelectedR(event) {\r\n //////console.log(event.item);\r\n let obj = this.routes.find(x => x.route_detail === event.item);\r\n //////console.log(obj);\r\n this.loadDataFromDatabase(obj);\r\n }\r\n checked() {\r\n ////console.log(this.selectedRoute);\r\n this.default = '';\r\n this.routeService.getMyRoute(this.selectedRoute.id).subscribe((data: any) => {\r\n ////console.log(data)\r\n \r\n ///this.selectedRoute = data.description;\r\n \r\n // this.getOption1Leg(this.selectedRoute.id);\r\n this.loadDataWhenSelected(data);\r\n\r\n });\r\n\r\n }\r\n checkedStartRoute() {\r\n ////console.log(this.selectedStartCoutry)\r\n this.placeSelected = null;\r\n ////console.log(this.places.filter(x => x.country_id == this.selectedStartCoutry.id))\r\n this.placeSelected = this.places.filter(x => x.country_id == this.selectedStartCoutry.id);\r\n }\r\n checkedEndRoute() {\r\n ////console.log(this.selectedEndCoutry)\r\n this.placeEndSelected = null;\r\n ////console.log(this.places.filter(x => x.country_id == this.selectedEndCoutry.id))\r\n this.placeEndSelected = this.places.filter(x => x.country_id == this.selectedEndCoutry.id);\r\n }\r\n getPlaces() {\r\n this.pageload = true;\r\n this.message = 'Loading standard routes, please wait...';\r\n let groupCode = this.frghtPass;\r\n this.routeService.getAllRoute().subscribe(data => {\r\n //////console.log(data);\r\n\r\n let tmpRoutes: any = data;\r\n this.routes = tmpRoutes.filter(route => route.group_code == groupCode);\r\n\r\n // this.routes = data;\r\n this.pageload = false;\r\n ////console.log(this.routes)\r\n // ////console.log(this.routes.map(v => v.route_detail));\r\n }, error => {\r\n this.toastr.info('No standard routes found', 'Standard Routes');\r\n ////console.log('Error : ', error);\r\n this.pageload = false;\r\n });\r\n\r\n }\r\n PopulateRouteDropDown() {\r\n this.pageload = true;\r\n // // if (this.dataCntrl.application.route_id != null) {\r\n // // this.routeService.getMyRoute(this.dataCntrl.application.route_id).subscribe((data: any) => {\r\n \r\n // this.routeService.getDoNotBelong().subscribe((data: any) => {\r\n // ////console.log(data);\r\n // //this.ownRoutes = data.filter(x => x.user_created == environment.authWebApi.userData.User.FirstName);\r\n // let newArr = []\r\n // data.forEach((item, index) => {\r\n // if (newArr.findIndex(i => i.description == item.description) === -1) {\r\n // newArr.push(item)\r\n // }\r\n\r\n // });\r\n\r\n // let tmpRoutes: any = newArr;\r\n // this.ownRoutes = tmpRoutes.filter(route => route.group_code == this.frghtPass)\r\n // this.routes = this.ownRoutes;\r\n // // this.ownRoutes = newArr\r\n // });\r\n // // this.defaultValue = data.description;\r\n // // this.selectedRoute = data.description;\r\n // // this.selectedRouteId = data.id;\r\n // this.isCheck = true;\r\n // this.checkDelete = true;\r\n // // ////console.log(this.defaultValue)\r\n // // this.loadDataFromDatabase(data);\r\n\r\n\r\n\r\n\r\n // // }, error => {\r\n // // this.routeService.getDoNotBelong().subscribe((data: any) => {\r\n // // ////console.log(data);\r\n // // // this.ownRoutes = data.filter(x => x.user_created == environment.authWebApi.userData.User.FirstName);\r\n // // let newArr = []\r\n // // data.forEach((item, index) => {\r\n // // if (newArr.findIndex(i => i.description == item.description) === -1) {\r\n // // newArr.push(item)\r\n // // }\r\n\r\n // // });\r\n\r\n // // let tmpRoutes: any = newArr;\r\n // // this.ownRoutes = tmpRoutes.filter(route => route.group_code == this.frghtPass)\r\n // // this.routes = this.ownRoutes;\r\n // // });\r\n // // this.selectedRoute = 'Select route';\r\n // // this.checkDelete = false;\r\n\r\n\r\n // // })\r\n\r\n // }\r\n\r\n //if (this.dataCntrl.application.route_id == null) {\r\n this.routeService.getDoNotBelong().subscribe((data: any) => {\r\n ////console.log(data);\r\n //this.ownRoutes = data.filter(x => x.user_created == environment.authWebApi.userData.User.FirstName);\r\n let newArr = []\r\n data.forEach((item, index) => {\r\n if (newArr.findIndex(i => i.description == item.description) === -1) {\r\n newArr.push(item)\r\n }\r\n\r\n });\r\n\r\n ////alert(JSON.stringify(newArr));\r\n let tmpRoutes: any = newArr;\r\n this.ownRoutes = tmpRoutes.filter(route => route.group_code == this.frghtPass);\r\n this.routes = this.ownRoutes;\r\n \r\n //alert('2');\r\n this.defaultValue = '';\r\n //alert(this.selectedRoute);\r\n // this.ownRoutes = newArr\r\n\r\n this.routes.forEach(r => {\r\n if(r.id === this.dataCntrl.application.route_id)\r\n {\r\n this.selectedRoute = r; \r\n }\r\n });\r\n\r\n if(this.isPermitApplication == true)\r\n {\r\n //this.selectedRoute = this.dataCntrl.application.route_summary;\r\n this.LoadPermitRouteData(this.dataCntrl.application);\r\n }\r\n\r\n this.pageload = false;\r\n });\r\n //this.selectedRoute = this.selectedRoute;\r\n \r\n //}\r\n //\r\n\r\n }\r\n\r\n // checkOption(event) {\r\n // ////console.log('Option : ', event.target.value)\r\n // if (event.target.value === '2') {\r\n // this.isStandard=false;\r\n // this.isCheck = true;\r\n // this.form.patchValue({\r\n // id: '',\r\n // route_name: '',\r\n // route_detail: '',\r\n // route_summary: '',\r\n // code: '',\r\n // description: '',\r\n // });\r\n // //this.getCustomRoute1();\r\n // this.dataCntrl.isStandard=false;\r\n // // this.loadUserCreatedRoutes(true);\r\n // }\r\n // if (event.target.value === '1') {\r\n // // this.form.reset();\r\n // this.isCheck = false;\r\n // this.checkDelete = false;\r\n\r\n // this.getPlaces();\r\n // this.defaultValue = '';\r\n // this.form.patchValue({\r\n // id: '',\r\n // route_name: 'Select route',\r\n // route_detail: '',\r\n // route_summary: '',\r\n // code: '',\r\n // description: '',\r\n // });\r\n // this.selectedRoute = 'Select route';\r\n // this.isStandard=true;\r\n // this.dataCntrl.isStandard=true;\r\n // }\r\n // if (event.target.value === '3') {\r\n // // this.form.reset();\r\n // this.routeCtrl.isNew = true ;\r\n // //this.routeCtrl.btnRadio = null;\r\n // this.isCheck = false;\r\n // this.checkDelete = false;\r\n // //this.getPlaces();\r\n // this.defaultValue = '';\r\n // this.isStandard=false;\r\n // this.form.patchValue({\r\n // id: '',\r\n // route_name: '',\r\n // route_detail: '',\r\n // route_summary: '',\r\n // code: '',\r\n // description: ''\r\n // });\r\n // this.dataCntrl.isStandard=false;\r\n // }\r\n // // this.defaultValue = 'Select route';\r\n // }\r\n loadDataWhenSelected(route: any) {\r\n this.form.patchValue({\r\n // id:route.id,\r\n route_detail: route.route_detail,\r\n route_summary: route.route_summary,\r\n code: route.code,\r\n description: route.description,\r\n // num_countries: route.num_countries,\r\n // num_border_crossings: route.num_border_crossings,\r\n\r\n\r\n });\r\n }\r\n loadDataFromDatabase(route: any) {\r\n //////console.log('Route Selected :', route);\r\n this.routeCtrl.rLeg.route_summary = route.route_summary;\r\n this.routeCtrl.rLeg.code = route.code;\r\n this.routeCtrl.rLeg.route_detail = route.route_detail;\r\n if(this.dataCntrl.isStandard){\r\n this.isStandard=true;\r\n }\r\n this.form.patchValue({\r\n // id:route.id,\r\n // route_name:route.description,\r\n code: route.code,\r\n route_detail: route.route_detail,\r\n route_summary: route.route_summary,\r\n description: route.description,\r\n // num_countries: route.num_countries,\r\n // num_border_crossings: route.num_border_crossings,\r\n\r\n\r\n });\r\n }\r\n changes() {\r\n this.form.statusChanges.subscribe(\r\n result =>\r\n this.dataCntrl.formValid = result == 'VALID' ? true : false\r\n );\r\n }\r\n\r\n saveRoute() {\r\n //////console.log(this.form.value.description);\r\n//alert(this.form.value.description);\r\n if (!this.form.value.description) {\r\n return this.toastr.warning('Please Enter a name for the route that is easy to remember (e.g. Harare to Joburg)\"');\r\n }\r\n if (!this.form.value.route_summary) {\r\n return this.toastr.warning('Please Enter a short description of the route (e.g. Harare to Joburg via Bulawayo)\"');\r\n }\r\n // if (!this.form.value.code) {\r\n // return this.toastr.warning('Please Enter a unique identifier for this route (e.g. HREJHB01)');\r\n // }\r\n\r\n // if (!this.form.value.route_detail) {\r\n // return this.toastr.warning('Enter a detailed description of the whole route, indicating all the stopping points and border posts');\r\n // }\r\n // if(this.form.value.endPlace === 'Select place'){\r\n // return this.toastr.warning('Please choose your end place route');\r\n // }\r\n\r\n // if(this.form.value.btnRadio === '3'){\r\n // this.saveDepatureDestination();\r\n // return\r\n // }\r\n let id: any = \"\"\r\n if (this.selectedRoute.hasOwnProperty('id')) {\r\n id = this.selectedRoute.id;\r\n } else {\r\n id = this.selectedRouteId;\r\n }\r\n\r\n let route = {\r\n id: id,\r\n code: this.form.value.code + '-' + this.dataCntrl.application_id,\r\n route_detail: this.form.value.route_detail,\r\n description: this.form.value.description,\r\n route_summary: this.form.value.route_summary,\r\n // num_countries:this.form.value.num_countries,\r\n // num_border_crossings:this.form.value.num_border_crossings,\r\n user_created: environment.authWebApi.userData.User.FirstName,\r\n user_modified: environment.authWebApi.userData.User.FirstName,\r\n date_created: new Date(),\r\n date_modified: new Date(),\r\n }\r\n\r\n // ////console.log(route);\r\n // ////console.log(this.dataCntrl.application)\r\n\r\n if (route.code.length > 12) {\r\n route.code = route.code.substr(0, 12)\r\n }\r\n //if (this.dataCntrl.application.motivation_detail === null || this.dataCntrl.application.motivation_detail.length < 20) {\r\n // return this.toastr.warning('Motivation must contain at least 20 characters');\r\n //}\r\n this.tabload = true;\r\n this.pageload = true;\r\n this.message = \"Saving route & motivation. Please wait...\";\r\n if (this.routeCtrl.btnRadio!=3) {\r\n if (this.dataCntrl.application.route_id == id && this.dataCntrl.application.route_summary == this.form.value.description && this.dataCntrl.application.route_detail == this.form.value.route_detail) {\r\n this.applicationService.setTab(4);\r\n }\r\n else\r\n {\r\n if(this.isPermitApplication == true)\r\n { \r\n this.dataCntrl.application.route_id = id;\r\n this.dataCntrl.application.route_summary = this.form.value.description;\r\n this.dataCntrl.application.route_detail = this.form.value.route_detail;\r\n \r\n \r\n this.dataCntrl.application.permits.forEach(perm => {\r\n perm.route_id = id;\r\n perm.route_summary = this.form.value.description;\r\n perm.route_detail = this.form.value.route_detail;\r\n });\r\n \r\n \r\n this.applicationService.putApplication(this.dataCntrl.application)\r\n .subscribe(result => {\r\n this.pageload = false;\r\n this.dataCntrl.application = result;\r\n this.tabload = false;\r\n \r\n this.applicationService.setTab(4);\r\n \r\n },\r\n error => {\r\n this.pageload = false;\r\n this.tabload = false;\r\n this.toastr.error('Failed to save application. If the problem persist, please contact system administrator.', 'Save Application')\r\n\r\n // this.showModal.showError('Save Application','Failed to save application. If the problem persist, please contact system administrator.',error);\r\n return;\r\n });\r\n\r\n \r\n\r\n }\r\n else{\r\n \r\n //////console.log(x);\r\n // this.updatePermit(x.id)\r\n //this.dataCntrl.application.route_id = x.id; \r\n this.dataCntrl.application.route_summary = this.form.value.description;\r\n this.dataCntrl.application.route_detail = this.form.value.route_detail;\r\n if (this.router.url.indexOf('duplicate') > 0 && this.router.url.indexOf('edit') < 0) {\r\n //////console.log(\"duplicated\");\r\n //////console.log(this.dataCntrl.application);\r\n // this.applicationService.putApplicationDuplicate(this.dataCntrl.application)\r\n // .subscribe(result => {\r\n // this.pageload = false;\r\n // this.dataCntrl.application = result;\r\n // this.tabload = false;\r\n // // this.saveDepatureDestination();\r\n // this.toastr.success( 'Application duplicated successfully','Duplicate Application');\r\n // let url: any = \"carrier/permit/application/duplicate/edit/\" + result.id;\r\n // this.router.navigate([url]);\r\n // },\r\n // error => {\r\n // this.pageload = false;\r\n // this.tabload = false;\r\n // this.toastr.error('Failed to save application. If the problem persist, please contact system administrator.', 'Save Application')\r\n\r\n // // this.showModal.showError('Save Application','Failed to save application. If the problem persist, please contact system administrator.',error);\r\n // return;\r\n // });\r\n this.applicationService.setTab(4);\r\n } else {\r\n this.applicationService.putApplication(this.dataCntrl.application)\r\n .subscribe(result => {\r\n this.pageload = false;\r\n this.dataCntrl.application = result;\r\n this.tabload = false;\r\n // // this.saveDepatureDestination();\r\n // this.toastr.success( 'Route saved successfully','Save Application');\r\n // setTimeout(() => {\r\n // this.toastr.clear();\r\n // //if (!this.utility.timetableActive) {\r\n // // this.applicationService.setTab(5);\r\n // //} else {\r\n // // this.applicationService.setTab(4);\r\n // //}\r\n this.applicationService.setTab(4);\r\n // }, 4000);\r\n },\r\n error => {\r\n this.pageload = false;\r\n this.tabload = false;\r\n this.toastr.error('Failed to save application. If the problem persist, please contact system administrator.', 'Save Application')\r\n\r\n // this.showModal.showError('Save Application','Failed to save application. If the problem persist, please contact system administrator.',error);\r\n return;\r\n });\r\n }\r\n\r\n\r\n \r\n }\r\n }\r\n } else {\r\n //alert('here');\r\n // this.routeCtrl.rLeg.user_created = environment.authWebApi.userData.User.FirstName;\r\n // this.routeCtrl.rLeg.user_modified = environment.authWebApi.userData.User.FirstName;\r\n // this.createApplicationPermitNewRoute(this.routeCtrl.rLeg);\r\n }\r\n\r\n }\r\n\r\n // saveDepatureDestination() {\r\n // // if(this.form.value.btnRadio === '3'){\r\n // // return this.saveBtn3();\r\n // // }\r\n\r\n // let obj = {\r\n // id: 0,\r\n // place_to_id: this.form.value.endPlace.id,\r\n // place_from_id: this.form.value.startPlace.id,\r\n // route_description: this.form.value.description,\r\n // application_id: +this.dataCntrl.application.id,\r\n // permit_id: this.dataCntrl.permit.id,\r\n // route_id: this.form.value.id,\r\n // place_to: this.form.value.endRoute.desc,\r\n // place_from: this.form.value.startRoute.desc,\r\n // date_created: new Date(),\r\n // date_modified: new Date(),\r\n // }\r\n\r\n\r\n // if (this.form.value.btnRadio === '2' || this.form.value.btnRadio === '1') {\r\n // if (obj.place_to_id == undefined) {\r\n // obj.place_to_id = this.end;\r\n // // obj.place_from_id = this.start;\r\n // }\r\n // if (obj.place_from_id == undefined) {\r\n // // obj.place_to_id = this.end;\r\n // obj.place_from_id = this.start;\r\n // }\r\n // if (this.form.value.endRoute.desc) {\r\n // this.form.value.endRoute = this.form.value.endRoute.desc\r\n // }\r\n // if (this.form.value.startRoute.desc) {\r\n // this.form.value.startRoute = this.form.value.startRoute.desc;\r\n // }\r\n // obj.place_to = this.form.value.endRoute;\r\n // obj.place_from = this.form.value.startRoute\r\n // }\r\n // ////console.log(obj);\r\n // ////console.log(this.form.value);\r\n // this.pageload = true;\r\n // this.tabload = true;\r\n\r\n // this.routeService.saveRouteLeg(obj).subscribe(x => {\r\n // this.pageload = false;\r\n // this.tabload = false;\r\n // this.toastr.success( 'Route saved successfully','Save Application');\r\n\r\n // this.applicationService.setTab(4);\r\n\r\n // }, error => {\r\n // this.pageload = false;\r\n // this.tabload = false;\r\n // this.toastr.error('Failed to save application. If the problem persist, please contact system administrator.', 'Save Application')\r\n\r\n // })\r\n // }\r\n // saveBtn3() {\r\n // let obj = {\r\n // id: 0,\r\n // place_to_id: this.form.value.endPlace.id,\r\n // place_from_id: this.form.value.startPlace.id,\r\n // route_description: this.form.value.description,\r\n // application_id: +this.dataCntrl.application.id,\r\n // permit_id: this.dataCntrl.permit.id,\r\n // place_to: this.form.value.endRoute.desc,\r\n // place_from: this.form.value.startRoute.desc,\r\n // date_created: new Date(),\r\n // date_modified: new Date(),\r\n // }\r\n // this.pageload = true;\r\n // this.tabload = true;\r\n // this.routeService.saveRouteLeg(obj).subscribe(x => {\r\n // this.pageload = false;\r\n // this.tabload = false;\r\n // this.toastr.success( 'Route saved successfully','Save Application');\r\n\r\n // this.applicationService.setTab(4);\r\n\r\n // }, error => {\r\n // this.pageload = false;\r\n // this.tabload = false;\r\n // this.toastr.error('Failed to save application. If the problem persist, please contact system administrator.', 'Save Application')\r\n\r\n // })\r\n // }\r\n // savePermit() {\r\n\r\n // this.dataCntrl.permit.date_modified = this.dataCntrl.permit.date_created = new Date();\r\n // this.dataCntrl.permit.user_modified = this.dataCntrl.permit.user_created = environment.authWebApi.userData.User.FirstName;\r\n // this.dataCntrl.permit.permit_fee = this.dataCntrl.permittype.current_fee == null ? 0 : this.dataCntrl.permittype.current_fee;\r\n // this.dataCntrl.permit.application_fee = this.dataCntrl.permittype.current_application_fee == null ? 0 : this.dataCntrl.permittype.current_application_fee;\r\n // this.permitService.postPermit(this.dataCntrl.permit)\r\n // .subscribe(result => {\r\n // this.dataCntrl.permit = result;\r\n // this.tabload = false;\r\n // this.toastr.success('Saved Permit Type Successfully', 'Permit Type');\r\n // // this.applicationService.setTab(2);\r\n // },\r\n // error => {\r\n // this.tabload = false\r\n // this.toastr.error('Failed to save application. If the problem persist, please contact system administrator.', error)\r\n\r\n // return;\r\n // });\r\n // }\r\n // updatePermit(id) {\r\n // this.dataCntrl.permits.\r\n // this.dataCntrl.permit.route_id = id;\r\n // let startDate: any = null;\r\n // for (let item of this.dataCntrl.vehicles) {\r\n // if (this.dataCntrl.permit.id == item.permit_id) {\r\n // startDate = this.dataCntrl.vehicles[0].start_date;\r\n // }\r\n // }\r\n // if (startDate !== null) {\r\n // this.dataCntrl.permit.date_11 = new Date(startDate.split(\"/\")[2] + \"-\" + startDate.split(\"/\")[1] + \"-\" + startDate.split(\"/\")[0]).toISOString();\r\n // }\r\n // this.permitService.upadatePermit(this.dataCntrl.permit).subscribe(result => {\r\n // //alert('updated');\r\n // // this.dataCntrl.permit = result;\r\n // // this.toastr.success('Updated Permit Type Successfully','Permit Type');\r\n // // this.applicationService.setTab(2);\r\n\r\n // })\r\n\r\n // }\r\n\r\n backtoVehicle() {\r\n this.applicationService.setTab(2);\r\n }\r\n // deleteRoute() {\r\n // this.showModal.showYesNo('Delete Route', 'Are you sure you want to delete?', `You're about to delete this route`, 'Yes', 'No')\r\n // .subscribe((isConfirmed) => {\r\n // if (isConfirmed) {\r\n // this.delete(this.dataCntrl.application.route_id);\r\n // } else {\r\n // return;\r\n // }\r\n // });\r\n // }\r\n // delete(id) {\r\n // this.routeService.deleteExternalRoute(id).subscribe((x: any) => {\r\n // this.routeService.getDoNotBelong();\r\n // this.dataCntrl.application.route_id = null;\r\n // ////console.log(x);\r\n // this.checkDelete = false;\r\n // this.isCheck = false;\r\n // this.toastr.success( 'Route deleted successfully','Delete Route');\r\n // this.routeCtrl.rLeg.route_summary = null;\r\n // this.routeCtrl.rLeg.code = null;\r\n // this.routeCtrl.rLeg.route_detail = null;\r\n // this.dataCntrl.application.motivation_detail = null;\r\n // },\r\n // error => {\r\n // ////console.log(error.error.Message)\r\n // this.toastr.error('Failed to save application. If the problem persist, please contact system administrator.', 'Save Application')\r\n // // this.showModal.showError('Save Application','Failed to save application. If the problem persist, please contact system administrator.',error);\r\n // return;\r\n // });\r\n // }\r\n onSubmit(value) {\r\n //////console.log(value)\r\n }\r\n cancelApplication() {\r\n let prevUrl = localStorage.getItem('previousUrl');\r\n if (prevUrl.search('/permit/approval') != -1) {\r\n this.router.navigate(['/permit/approval/']);\r\n } else if (prevUrl.search('/carrier/permit/application/mypermits') != -1) {\r\n this.router.navigate(['/carrier/permit/application/mypermits/',this.dataCntrl.carrierID]);\r\n } else {\r\n this.router.navigate(['/carrier/permit/application/',this.dataCntrl.carrierID]);\r\n }\r\n }\r\n // if (this.dataCntrl.application.id == undefined && this.dataCntrl.application.id == null) {\r\n // this.router.navigate(['/carrier/permit/application/' + this.dataCntrl.carrierID]);\r\n // } else {\r\n // this.showModal.showYesNo('Delete Application', 'Are you sure you want to delete?', `You're about to delete application`, 'Yes', 'No')\r\n // .subscribe((isConfirmed) => {\r\n // if (isConfirmed) {\r\n // this.deleteApplication()\r\n // } else {\r\n // return;\r\n // }\r\n // });\r\n // }\r\n // }\r\n // deleteApplication() {\r\n // ////console.log(\"delete application\");\r\n // this.pageload = true;\r\n\r\n // this.permitService.deletePermit(this.dataCntrl.permit.id).subscribe(x => {\r\n // ////console.log(x);\r\n // this.deleteApp(this.dataCntrl.application.id);\r\n // this.pageload = false;\r\n\r\n // this.router.navigate(['/carrier/permit/application/' + this.dataCntrl.carrierID]);\r\n\r\n // })\r\n //this.dataCntrl.application.id\r\n //this.dataCntrl.permit.id\r\n // }\r\n // deletePermit(id) {\r\n // this.permitService.deletePermit(id).subscribe(x => {\r\n // ////console.log(x);\r\n // })\r\n\r\n // }\r\n // deleteApp(id) {\r\n // this.applicationService.deleteApplication(id).subscribe(x => {\r\n // ////console.log(x);\r\n // })\r\n // }\r\n // getOption1Leg(id) {\r\n // this.placeService.getPlaces().subscribe((q: any) => {\r\n // this.routeService.getAllRouteLegs().subscribe((x: any) => {\r\n // ////console.log(x.filter(x => x.route_id === id));\r\n // let obj = x.filter(x => x.route_id === id);\r\n // ////console.log(Math.max.apply(Math, obj.map(function(o) { return o.id; })))\r\n // let foundRouteLeg = obj.find(x => x.id == Math.max.apply(Math, obj.map(function(o) { return o.id; })));\r\n // let routeLegFromPlace = q.find(x => x.id == foundRouteLeg.place_from_id);\r\n // let routeLeToPlace = q.find(x => x.id == foundRouteLeg.place_to_id);\r\n\r\n // ////console.log(foundRouteLeg.place_from)\r\n // ////console.log(foundRouteLeg.place_to)\r\n // this.loadRouteLeg(foundRouteLeg)\r\n // this.end = routeLeToPlace.id;\r\n // this.start = routeLegFromPlace.id;\r\n\r\n // ////console.log(routeLegFromPlace.name);\r\n // ////console.log(routeLeToPlace.name);\r\n // this.loadRouteLegPlaces(routeLegFromPlace.name, routeLeToPlace.name);\r\n\r\n // })\r\n\r\n // });\r\n // }\r\n // getAllRouteLegs() {\r\n // let accumulateCoutries: any = [];\r\n // this.placeService.getPlaces().subscribe((q: any) => {\r\n // this.routeService.getAllRouteLegs().subscribe((x: any) => {\r\n // ////console.log(x.filter(x => x.application_id === +this.dataCntrl.application.id));\r\n // let obj = x.filter(x => x.application_id === +this.dataCntrl.application.id);\r\n // ////console.log(Math.max.apply(Math, obj.map(function(o) { return o.id; })))\r\n // let foundRouteLeg = obj.find(x => x.id == Math.max.apply(Math, obj.map(function(o) { return o.id; })));\r\n // let routeLegFromPlace = q.find(x => x.id == foundRouteLeg.place_from_id);\r\n // let routeLeToPlace = q.find(x => x.id == foundRouteLeg.place_to_id);\r\n\r\n // ////console.log(foundRouteLeg.place_from)\r\n // ////console.log(foundRouteLeg.place_to)\r\n // this.loadRouteLeg(foundRouteLeg)\r\n // this.end = routeLeToPlace.id;\r\n // this.start = routeLegFromPlace.id;\r\n\r\n // ////console.log(routeLegFromPlace.name);\r\n // ////console.log(routeLeToPlace.name);\r\n // this.loadRouteLegPlaces(routeLegFromPlace.name, routeLeToPlace.name);\r\n // // for(var i = 0;i x.id == q[j].country_id));\r\n // // ////console.log(this.countries.filter(x => x.id == q[j].country_id))\r\n // // accumulateCoutries.push(this.countries.find(x => x.id == q[j].country_id))\r\n // // }\r\n // // }\r\n\r\n\r\n // // }\r\n // // ////console.log(accumulateCoutries)\r\n // // this.countries = accumulateCoutries;\r\n // // ////console.log(this.countries);\r\n // // ////console.log(obj.map(x =>x.country_id))\r\n // // ////console.log(this.countries.filter(x => x.id == obj.map(x =>x.country_id)[0]))\r\n // // this.countries.filter(x => x.id == obj.map(x =>x.country_id)[0])\r\n // // if(obj.length >0 ){\r\n // // for(let i=0;i {\r\n // this.routeService.getDoNotBelong();\r\n // this.dataCntrl.application.route_id = null;\r\n // ////console.log(x);\r\n // this.checkDelete = false;\r\n // this.isCheck = false;\r\n // },\r\n // error => {\r\n // ////console.log(error.error.Message)\r\n // this.toastr.error('Failed to save application. If the problem persist, please contact system administrator.', 'Save Application')\r\n // // this.showModal.showError('Save Application','Failed to save application. If the problem persist, please contact system administrator.',error);\r\n // return;\r\n // });\r\n // }\r\n backToTab() {\r\n this.applicationService.setTab(2);\r\n }\r\n\r\n\r\n\r\n // getCustomRoute1() {\r\n\r\n // //////alert(this.dataCntrl.application.route_id);\r\n // if (this.dataCntrl.application.route_id != null) {\r\n // this.routeService.getMyRoute(this.dataCntrl.application.route_id).subscribe((data: any) => {\r\n // this.defaultValue = data.description;\r\n // this.selectedRoute = data.description;\r\n // this.selectedRouteId = data.id;\r\n // this.isCheck = true;\r\n // this.checkDelete = true;\r\n // ////console.log(this.defaultValue)\r\n // this.loadDataFromDatabase(data);\r\n // this.loadUserCreatedRoutes();\r\n // }, error => {\r\n // this.selectedRoute = 'Select route';\r\n // this.checkDelete = false;\r\n // })\r\n\r\n // }\r\n\r\n // if (this.dataCntrl.application.route_id == null) {\r\n // this.loadUserCreatedRoutes();\r\n // this.selectedRoute = 'Select route';\r\n // this.defaultValue = '';\r\n // }\r\n\r\n // }\r\n\r\n// loadUserCreatedRoutes = (isChecked = false) => {\r\n// const user_created = environment.authWebApi.userData.User.FirstName;\r\n// //////alert(user_created);\r\n// this.message = (isChecked) ? 'Loading previous route, please wait...':'';\r\n// this.pageload = true;\r\n// // this.frghtPass = this.dataCntrl.permittype.freight_passenger_ind == 1 ? 'A' : 'B';\r\n// let groupCode = this.frghtPass;\r\n// this.routeService.getByUserCreated(user_created).subscribe((data: any) => {\r\n// // ////alert(JSON.stringify(data));\r\n// // ////alert(groupCode);\r\n// let tmpRoutes: any = data;\r\n// this.ownRoutes = tmpRoutes.filter(route => route.group_code == groupCode)\r\n\r\n// //////alert(JSON.stringify(this.ownRoutes));\r\n// // this.ownRoutes = data;\r\n// this.routes = this.ownRoutes;\r\n// ////console.log('Routes => ', this.ownRoutes);\r\n// this.pageload = false;\r\n// if (isChecked) {\r\n// this.selectedRoute = 'Select route';\r\n// this.defaultValue = '';\r\n// }\r\n// }, error => {\r\n// this.toastr.info('No previously used routes found', 'Reuse Route');\r\n// this.pageload = false;\r\n// this.selectedRoute = 'Select route';\r\n// this.defaultValue = '';\r\n// });\r\n// }\r\n\r\n //Can be improved if time given\r\n// createApplicationPermitNewRoute = (route) => {\r\n// //alert('createApplicationPermitNewRoute');\r\n// this.routeService.addRouteLeg(route).subscribe((x: any) => {\r\n// ////console.log(x);\r\n// //this.updatePermit(x.id)\r\n// this.dataCntrl.application.route_id = x.id;\r\n// this.dataCntrl.application.route_summary = this.form.value.description;\r\n// this.dataCntrl.application.route_detail = this.form.value.route_detail;\r\n// if (this.router.url.indexOf('duplicate') > 0 && this.router.url.indexOf('edit') < 0) {\r\n// ////console.log(\"duplicated\");\r\n// ////console.log(this.dataCntrl.application);\r\n// // this.applicationService.putApplicationDuplicate(this.dataCntrl.application)\r\n// // .subscribe(result => {\r\n// // this.pageload = false;\r\n// // this.dataCntrl.application = result;\r\n// // this.tabload = false;\r\n// // // this.saveDepatureDestination();\r\n// // this.toastr.success( 'Application duplicated successfully','Duplicate Application');\r\n// // let url: any = \"carrier/permit/application/duplicate/edit/\" + result.id;\r\n// // this.router.navigate([url]);\r\n// // },\r\n// // error => {\r\n// // this.pageload = false;\r\n// // this.tabload = false;\r\n// // this.toastr.error('Failed to save application. If the problem persist, please contact system administrator.', 'Save Application')\r\n\r\n// // // this.showModal.showError('Save Application','Failed to save application. If the problem persist, please contact system administrator.',error);\r\n// // return;\r\n// // });\r\n// if (!this.utility.timetableActive) {\r\n// this.applicationService.setTab(5);\r\n// } else {\r\n// this.applicationService.setTab(4);\r\n// }\r\n// } else {\r\n// this.applicationService.putApplication(this.dataCntrl.application)\r\n// .subscribe(result => {\r\n// this.pageload = false;\r\n// this.dataCntrl.application = result;\r\n// this.tabload = false;\r\n// // this.saveDepatureDestination();\r\n// this.toastr.success( 'Route and Motivation saved successfully','Save Application');\r\n// setTimeout(() => {\r\n// this.toastr.clear();\r\n// if (!this.utility.timetableActive) {\r\n// this.applicationService.setTab(5);\r\n// } else {\r\n// this.applicationService.setTab(4);\r\n// }\r\n// }, 4000);\r\n\r\n\r\n// },\r\n// error => {\r\n// this.pageload = false;\r\n// this.tabload = false;\r\n// this.toastr.error('Failed to save application. If the problem persist, please contact system administrator.', 'Save Application')\r\n\r\n// // this.showModal.showError('Save Application','Failed to save application. If the problem persist, please contact system administrator.',error);\r\n// return;\r\n// });\r\n// }\r\n\r\n\r\n// },\r\n// error => {\r\n// ////console.log(error.error.Message)\r\n// if (error.error.Message === 'Code already exists') {\r\n// this.pageload = false;\r\n// this.tabload = false;\r\n// this.toastr.error('Code already exists! Choose a different code.', 'Save Application');\r\n// return;\r\n// }\r\n// this.pageload = false;\r\n// this.tabload = false;\r\n// this.toastr.error('Failed to save application. If the problem persist, please contact system administrator.', 'Save Application')\r\n\r\n// // this.showModal.showError('Save Application','Failed to save application. If the problem persist, please contact system administrator.',error);\r\n// return;\r\n// });\r\n// }\r\n\r\n checkIfLongTermPermit() {\r\n\r\n ////console.log(this.dataCntrl);\r\n if (this.router.url.indexOf('correction') > 0 || this.dataCntrl.permittype.code == 'OTH-CRR') {\r\n this.permitTypeService.getAll().subscribe((result:any) => {\r\n ////console.log(result);\r\n let pmtType = result.find(x => x.id == this.dataCntrl.permit.permit_type_id);\r\n if (pmtType.freight_passenger_ind == 2 && pmtType.temp_long_ind == 2) {\r\n this.isLongTermCorrection = true;\r\n }\r\n });\r\n }\r\n\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n Route \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n

\r\n Enter a detailed description of the whole route, indicating all the stopping points\r\n and border posts (You can copy and paste from your word document.)\r\n

\r\n \r\n \r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n","import { Component, OnInit, Input, ChangeDetectorRef } from \"@angular/core\";\r\nimport {\r\n FormControl,\r\n Validators,\r\n FormGroup,\r\n FormBuilder,\r\n FormArray,\r\n} from \"@angular/forms\";\r\nimport { ToastrService } from \"ngx-toastr\";\r\nimport { environment } from \"../../../../../environments/environment\";\r\nimport { ApplicationService } from \"app/services/application.service\";\r\nimport { PopupService } from \"../../../../services/shared/popup.service\";\r\nimport { DocumenttypeService } from \"app/services/documenttype.service\";\r\nimport { Router, ActivatedRoute, Params } from \"@angular/router\";\r\nimport { PermitService } from \"app/services/permit.service\";\r\nimport { VehicleService } from \"app/services/vehicle.service\";\r\nimport { AuthWebService } from \"app/services/authweb.service\";\r\nimport { DocumentsServiceService } from \"app/services/documents-service.service\";\r\nimport { UtilityServiceService } from \"app/services/utility-service.service\";\r\nimport { Account } from \"app/constants/account.enum\";\r\nimport { DomSanitizer } from \"@angular/platform-browser\";\r\nimport { PermitTypeDocumentService } from \"app/services/permit-type-document.service\";\r\nimport { error } from \"protractor\";\r\nimport { ConfirmDialogService } from \"app/services/shared/confirm-dialog/confirm-dialog.service\";\r\nimport { isThisTypeNode } from \"typescript\";\r\nimport { DatePipe } from \"@angular/common\";\r\nimport { ScannerService } from \"app/services/scanner.service\";\r\n\r\n@Component({\r\n selector: \"app-app-uploads\",\r\n templateUrl: \"./app-uploads.component.html\",\r\n styleUrls: [\"./app-uploads.component.css\"],\r\n providers: [PermitTypeDocumentService],\r\n})\r\nexport class AppUploadsComponent implements OnInit {\r\n @Input() dataCntrl: any;\r\n\r\n form: FormGroup;\r\n model: any = [];\r\n tabload: boolean = false;\r\n listUploadRows: any = [];\r\n isLoading: boolean = false;\r\n UserDocuments: any = [];\r\n docTypesList: any = [];\r\n doctypesCodes: any = [];\r\n haserror: boolean = false;\r\n disableAdd: boolean = false;\r\n isViewMode: boolean = false;\r\n //Uploaded file data\r\n filebytes: string;\r\n filename: string;\r\n filetype: string;\r\n filesize: string;\r\n filedescription: string;\r\n img: any;\r\n user = { LastName: \"\" };\r\n PermitDocTypesList: any = [];\r\n uploadInfo: any[] = [];\r\n\r\n docTypeId: any;\r\n doctypesDesc: any;\r\n page = 1;\r\n\r\n linkedDocs: any = [];\r\n uploadedDocs: any = [];\r\n docTypeData: any = null;\r\n isLoadingImg: boolean = false;\r\n pdfSrc: any;\r\n isTrue: boolean = false;\r\n disableBtn: boolean = false;\r\n dtype;\r\n categories = [{ id: \"\", name: \"Select Document Type\", value: \"\" }];\r\n carrier_type_id: any;\r\n isProcess: boolean = true;\r\n maxMB: any;\r\n message: string = \"Loading. Please wait...\";\r\n dontAllowConfirm: boolean = false;\r\n\r\n //Vehicle specific upload\r\n vehicleId: any = 0;\r\n documentType: any = null;\r\n isExtra = false;\r\n isDuplicateMode: boolean = false;\r\n replaceVehicle: boolean = false;\r\n isAmendRoute: boolean = false;\r\n isCorrectionMode: boolean = false;\r\n isView: boolean = false;\r\n isPromptUserToScan = false;\r\n scannerMessage =\r\n \"Please go and insert your paper to the scanner and click the scan button\";\r\n selectedScanner: any;\r\n scannedDocument: any;\r\n\r\n //Checking if it is kiosk mode\r\n isKiosk: boolean = false;\r\n\r\n @Input(\"isAnnualCompliance\") isAnnualCompliance: boolean = false;\r\n scanDocumentId: any;\r\n\r\n constructor(\r\n private formBuilder: FormBuilder,\r\n private toastr: ToastrService,\r\n private showModal: PopupService,\r\n public applicationService: ApplicationService,\r\n private documenttypeService: DocumenttypeService,\r\n private router: Router,\r\n private permitService: PermitService,\r\n private vehicleService: VehicleService,\r\n private authWebService: AuthWebService,\r\n private documentService: DocumentsServiceService,\r\n private scanner: ScannerService,\r\n private ref: ChangeDetectorRef,\r\n private confirmDialogService: ConfirmDialogService,\r\n private utility: UtilityServiceService,\r\n private sanitizer: DomSanitizer,\r\n private activeRoute: ActivatedRoute,\r\n private service: PermitTypeDocumentService,\r\n public datepipe: DatePipe\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.dataCntrl.uploadedDocs = [];\r\n this.isDuplicateMode = this.router.url.indexOf(\"duplicate\") > 0;\r\n this.isCorrectionMode = this.router.url.indexOf(\"correction\") > 0;\r\n this.isView = this.router.url.indexOf(\"isView\") > 0;\r\n this.maxMB = environment.authWebApi.systemData.Configurations.find(\r\n (p) => p.Code == \"MaxUploadMB1\"\r\n ).Value;\r\n this.dtype = environment.authWebApi.systemData.Configurations.find(\r\n (p) => p.Code == \"UploadDocTypes1\"\r\n ).Value;\r\n\r\n this.toastr.clear();\r\n if (\r\n this.router.url.indexOf(\"edit\") > 0 ||\r\n this.router.url.indexOf(\"duplicate\") > 0\r\n ) {\r\n this.activeRoute.params.subscribe((params: Params) => {\r\n this.dataCntrl.application.id = params[\"id\"];\r\n if (\r\n environment.authWebApi.userData.Roles.find((p) => p.Code == \"ADMIN\")\r\n ) {\r\n this.disableBtn = true;\r\n }\r\n });\r\n }\r\n if (this.router.url.indexOf(\"view\") > 0) {\r\n this.activeRoute.params.subscribe((params: Params) => {\r\n this.dataCntrl.application.id = params[\"id\"];\r\n this.isProcess = false;\r\n if (\r\n environment.authWebApi.userData.Roles.find((p) => p.Code == \"ADMIN\")\r\n ) {\r\n // this.disableBtn = true;\r\n }\r\n });\r\n }\r\n if (this.dataCntrl.compID) {\r\n this.activeRoute.params.subscribe((params: Params) => {\r\n this.dataCntrl.application.id = this.dataCntrl.appID;\r\n // this.isProcess = false;\r\n this.isAmendRoute = true;\r\n if (\r\n environment.authWebApi.userData.Roles.find((p) => p.Code == \"ADMIN\")\r\n ) {\r\n // this.disableBtn = true;\r\n }\r\n });\r\n }\r\n\r\n if (this.router.url.indexOf(\"change\") > 0) {\r\n if (\r\n this.activeRoute.params[\"_value\"].ctrlType != undefined &&\r\n this.activeRoute.params[\"_value\"].ctrlType == \"vehicle\"\r\n ) {\r\n this.replaceVehicle = true;\r\n } else if (this.activeRoute.params[\"_value\"].ctrlType == \"true\") {\r\n this.isAmendRoute = true;\r\n }\r\n }\r\n this.docTypeData = this.categories[0].id;\r\n\r\n this.populateDocTypeList();\r\n this.refreshDocumentList();\r\n this.checkIfKiosk();\r\n }\r\n\r\n refreshDocumentList() {\r\n //alert(this.isAnnualCompliance);\r\n this.isLoading = true;\r\n this.documentService.getPermitById(this.dataCntrl.application.id).subscribe(\r\n (x: any) => {\r\n this.uploadedDocs = [];\r\n\r\n for (var i = 0; i < x.length; i++) {\r\n let firstNum = x[i].document_link.indexOf(\"#\");\r\n //console.log(x[i].document_link.substring(firstNum + 1))\r\n x[i].shareId = x[i].document_link.substring(firstNum + 1);\r\n //console.log(x[i].document_link.substring(0, firstNum))\r\n //this.uploadedDocs.id = x[i].document_link.substring(firstNum + 1);\r\n x[i].document_link = x[i].document_link.substring(0, firstNum);\r\n\r\n if (this.isAnnualCompliance) {\r\n if (\r\n x[i].compliance_detail_id != null &&\r\n x[i].compliance_detail_id != undefined &&\r\n x[i].compliance_detail_id == this.dataCntrl.complianceDetail.id\r\n ) {\r\n this.uploadedDocs.push(x[i]);\r\n // alert(this.uploadedDocs.length);\r\n }\r\n } else {\r\n // if(this.replaceVehicle)\r\n // {\r\n // if(x[i].document_type_id == 18)\r\n // {\r\n // this.uploadedDocs.push(x[i]);\r\n // }\r\n // }\r\n // else\r\n if (\r\n x[i].compliance_detail_id == null ||\r\n x[i].compliance_detail_id == undefined ||\r\n x[i].compliance_detail_id == 0\r\n ) {\r\n this.uploadedDocs.push(x[i]);\r\n }\r\n }\r\n }\r\n\r\n this.uploadedDocs.sort((a, b) =>\r\n a.description > b.description ? 1 : -1\r\n );\r\n this.dataCntrl.uploadedDocs = this.uploadedDocs;\r\n //alert(JSON.stringify(this.uploadedDocs));\r\n\r\n if (this.uploadedDocs.length > 0) {\r\n this.removeUploadedDocTypes();\r\n }\r\n this.isLoading = false;\r\n },\r\n (error) => {\r\n this.isLoading = false;\r\n }\r\n );\r\n }\r\n\r\n viewDoc(id, fileName) {\r\n //alert(id);\r\n //console.log(id)\r\n this.isViewMode= true;\r\n this.isLoadingImg = true;\r\n this.pdfSrc = null;\r\n this.img = null;\r\n let ext = fileName.substring(fileName.length - 3, fileName.length);\r\n //console.log(ext);\r\n if (fileName.includes(\".pdf\")) {\r\n this.documentService.downloadpdf(id).subscribe((x) => {\r\n let objectURL = URL.createObjectURL(x);\r\n this.pdfSrc = objectURL;\r\n\r\n //alert(this.pdfSrc.toString());\r\n //this.pdfSrc = this.sanitizer.bypassSecurityTrustUrl(objectURL);\r\n //console.log(this.pdfSrc)\r\n this.isLoadingImg = false;\r\n });\r\n return;\r\n }\r\n\r\n this.documentService.download(id).subscribe((x) => {\r\n let objectURL = URL.createObjectURL(x);\r\n console.log(objectURL);\r\n this.pdfSrc = null;\r\n this.img = this.sanitizer.bypassSecurityTrustUrl(objectURL);\r\n console.log(this.img);\r\n this.isLoadingImg = false;\r\n // this.img = x;\r\n });\r\n }\r\n extraDoc(doc) {\r\n this.linkedDocs.unshift(doc);\r\n this.isExtra = true;\r\n }\r\n populateDocTypeList() {\r\n // for this carrier get the related doc types\r\n //alert(JSON.stringify(this.dataCntrl.permittype));\r\n var permitTypetoUse = this.isAnnualCompliance\r\n ? this.dataCntrl.permittype.Compliance_PermitType_Id\r\n : this.dataCntrl.permittype.id;\r\n if (this.replaceVehicle == true) {\r\n permitTypetoUse = this.dataCntrl.permittype.id = 16; //replacement\r\n } else if (this.isDuplicateMode == true) {\r\n permitTypetoUse = this.dataCntrl.permittype.id = 32; //duplicate\r\n } else if (this.isCorrectionMode == true) {\r\n permitTypetoUse = this.dataCntrl.permittype.id = 17; //Correction\r\n } else if (this.isAmendRoute == true) {\r\n permitTypetoUse = this.dataCntrl.permittype.id = 15; //Ammend Route\r\n }\r\n //alert(permitTypetoUse);\r\n this.service.getLinkedAndUnlinkedDoctypes(permitTypetoUse).subscribe(\r\n (result: any) => {\r\n this.linkedDocs = result.PermitLinked;\r\n },\r\n (error) => {\r\n console.log(error);\r\n }\r\n );\r\n }\r\n removeUploadedDocTypes() {\r\n this.isLoading = true;\r\n if (this.uploadedDocs.length > 0) {\r\n let count = this.uploadedDocs.length;\r\n for (let knt = 0; knt < count; knt++) {\r\n let index = this.isDocTypeInList(\r\n this.uploadedDocs[knt].document_type_id\r\n );\r\n if (index != -1) {\r\n this.linkedDocs.splice(index, 1);\r\n }\r\n }\r\n }\r\n\r\n if (this.linkedDocs.length == 0) {\r\n this.utility.dontAllowConfirm = false;\r\n } else {\r\n let mandatoryDocs = this.linkedDocs.find(\r\n (doc) => doc.is_mandatory == true\r\n );\r\n if (\r\n mandatoryDocs == undefined ||\r\n mandatoryDocs == null ||\r\n this.router.url.indexOf(\"view\") > 0\r\n ) {\r\n this.utility.dontAllowConfirm = false;\r\n } else {\r\n this.utility.dontAllowConfirm = true;\r\n }\r\n }\r\n\r\n this.isLoading = false;\r\n }\r\n isDocTypeInList(id: number) {\r\n let count = this.linkedDocs.length;\r\n for (let iter = 0; iter < count; iter++) {\r\n if (this.linkedDocs[iter].document_type_id == id) return iter;\r\n }\r\n return -1;\r\n }\r\n getDocSaved(id) {\r\n this.documenttypeService.getById(id).subscribe((x) => {\r\n //console.log(x);\r\n this.doctypesDesc = x;\r\n });\r\n }\r\n getDoctypesCodes() {\r\n this.documenttypeService.getAll().subscribe((x) => {\r\n this.doctypesCodes = x;\r\n });\r\n // this.doctypesCodes=[\r\n // {\r\n // \"id\": 1,\r\n // \"code\": \"CR\",\r\n // \"description\": \"Insurance\",\r\n // \"document_link\": null,\r\n // \"is_template\": false,\r\n // \"is_download\": false,\r\n // \"group_code\": \"A\",\r\n // \"sort_order\": 1,\r\n // \"is_active\": true,\r\n // \"display_ind\": 3,\r\n // \"date_created\": \"2019-10-25T04:30:50.807\",\r\n // \"date_modified\": \"2019-11-07T10:21:33.973\",\r\n // \"user_created\": \"DEVUSER\",\r\n // \"user_modified\": \"DEVUSER\"\r\n // },\r\n // {\r\n // \"id\": 2,\r\n // \"code\": \"SARS\",\r\n // \"description\": \"Vehicle Licence\",\r\n // \"document_link\": null,\r\n // \"is_template\": false,\r\n // \"is_download\": false,\r\n // \"group_code\": \"A\",\r\n // \"sort_order\": 1,\r\n // \"is_active\": true,\r\n // \"display_ind\": 3,\r\n // \"date_created\": \"2019-10-25T05:57:57.493\",\r\n // \"date_modified\": \"2019-11-07T10:18:49.367\",\r\n // \"user_created\": \"DEVUSER\",\r\n // \"user_modified\": \"DEVUSER\"\r\n // }\r\n // ]\r\n }\r\n\r\n changes() {\r\n this.form.statusChanges.subscribe((result) => {\r\n this.dataCntrl.formValid = result == \"VALID\" ? true : false;\r\n });\r\n }\r\n backtoMotivation() {\r\n this.applicationService.setTab(4);\r\n }\r\n addNew() {\r\n let object: any = {\r\n id: -1,\r\n permit_type_id: \"\",\r\n document_type_id: \"\",\r\n is_active: false,\r\n code: \"\",\r\n is_mandatory: false,\r\n description: \"\",\r\n editMode: true,\r\n };\r\n this.docTypesList.push(object);\r\n }\r\n saveUploads() {\r\n if (this.isAnnualCompliance && this.isView) {\r\n this.applicationService.setTab(2);\r\n return;\r\n }\r\n //console.log(this.linkedDocs)\r\n //console.log(this.linkedDocs.length);\r\n // if (this.router.url.indexOf('vehicle') > 0) {\r\n // const nextPos = this.utility.nextTabPosition(this.utility.sequenceNumbers.uploadsNum);\r\n // this.applicationService.setTab(nextPos);\r\n // return false;\r\n // }\r\n\r\n if (this.linkedDocs.length > 0) {\r\n for (let i = 0; i < this.linkedDocs.length; i++) {\r\n //console.log(this.linkedDocs[i].is_mandatory)\r\n\r\n if (this.linkedDocs[i].is_mandatory === true) {\r\n return this.toastr.warning(\r\n this.linkedDocs[i].description + \" is required!\"\r\n );\r\n }\r\n }\r\n }\r\n\r\n for (let list of this.docTypesList) {\r\n if (list.code != \"\") {\r\n list.id = 0;\r\n list.permit_id = this.dataCntrl.permit.id;\r\n list.date_modified = list.date_created = new Date();\r\n list.user_modified = list.user_created =\r\n environment.authWebApi.userData.User.Username;\r\n }\r\n }\r\n this.haserror = false;\r\n this.disableAdd = false;\r\n this.dataCntrl.formValid = true;\r\n this.dataCntrl.permitTypesDocLinks = this.docTypesList;\r\n //console.log(this.dataCntrl.permitTypesDocLinks);\r\n //this.toastr.success('Saved Step 5 Successfully','Step 5');\r\n if (\r\n this.router.url.indexOf(\"duplicate\") > 0 &&\r\n this.router.url.indexOf(\"edit\") < 0\r\n ) {\r\n //this.isDuplicateMode = true;\r\n //console.log(\"duplicated\");\r\n //console.log(this.dataCntrl.application);\r\n // this.applicationService.putApplicationDuplicate(this.dataCntrl.application)\r\n // .subscribe(result => {\r\n // this.dataCntrl.application = result;\r\n // // this.saveDepatureDestination();\r\n // this.toastr.success('Application duplicated successfully', 'Duplicate Application');\r\n // let url: any = \"carrier/permit/application/duplicate/edit/\" + result.id;\r\n // this.router.navigate([url]);\r\n // },\r\n // error => {\r\n // this.toastr.error('Failed to save application. If the problem persist, please contact system administrator.', 'Save Application')\r\n // // this.showModal.showError('Save Application','Failed to save application. If the problem persist, please contact system administrator.',error);\r\n // return;\r\n // });\r\n }\r\n const nextPos = this.utility.nextTabPosition(\r\n this.utility.sequenceNumbers.uploadsNum\r\n );\r\n //alert(this.dataCntrl.compID);\r\n if (this.dataCntrl.compID != null || this.dataCntrl.compID != undefined) {\r\n this.applicationService.setTab(2);\r\n } else {\r\n this.applicationService.setTab(nextPos);\r\n }\r\n }\r\n\r\n uploadDocument(item, index) {\r\n //console.log(item)\r\n document.getElementById(\"upload-\" + index).click();\r\n }\r\n handleFileInput(event, id) {\r\n const reader = new FileReader();\r\n\r\n if (event.target.files && event.target.files.length > 0) {\r\n let file: any = null;\r\n const count = event.target.files.length;\r\n file = event.target.files[count - 1];\r\n let result = this.checkFileType(file.name);\r\n // item.document_type_id = this.docTypeData.id;\r\n // item.code = this.doctypesDesc.code\r\n // item.description=file.name;\r\n this.docTypeId = id;\r\n // this.uploadInfo.push(this.docTypeData);\r\n // localStorage.setItem('uploads',JSON.stringify(this.uploadInfo));\r\n const reader = new FileReader();\r\n\r\n if (event.target.files && event.target.files.length > 0) {\r\n let file: any = null;\r\n const count = event.target.files.length;\r\n\r\n file = event.target.files[count - 1];\r\n let result = this.checkFileType(file.name);\r\n\r\n //if File type is in not found\r\n if (result != -1) {\r\n let sizeresult = this.checkFileSize(file.size);\r\n\r\n if (sizeresult != -1) {\r\n this.ref.detectChanges();\r\n\r\n reader.removeEventListener;\r\n reader.readAsDataURL(file);\r\n reader.onload = () => {\r\n this.filebytes = reader.result.toString().split(\",\")[1];\r\n (this.filename = file.name), (this.filetype = file.type);\r\n this.filedescription = \"upload\";\r\n this.filesize = file.size;\r\n this.validateData(this.docTypeId);\r\n };\r\n } else {\r\n // this.uploader.nativeElement.value = ''\r\n let allowedFileSize =\r\n environment.authWebApi.systemData.Configurations.find(\r\n (p) => p.Code == \"MaxUploadMB1\"\r\n );\r\n // this.dialogService.addDialog(ErrorComponent, { title: 'File Upload Failed, Please try again.', message: `Maximum file size allowed ${allowedFileSize.Value.toString()}MB`, statuscode: '404',url: null, servermessage: \"File size exceeded maximum size\"});\r\n this.toastr.error(\r\n `Maximum file size allowed ${allowedFileSize.Value.toString()}MB`,\r\n \"File Upload Failed, Please try again.\"\r\n );\r\n }\r\n } else {\r\n //send message allowed types\r\n // this.uploader.nativeElement.value = ''\r\n let allowedFileTypes =\r\n environment.authWebApi.systemData.Configurations.find(\r\n (p) => p.Code == \"UploadDocTypes1\"\r\n );\r\n\r\n // this.dialogService.addDialog(ErrorComponent, { title: 'File Upload Failed, Please try again.', message: `Only these file types are allowed ${allowedFileTypes.Value.toString()}`, statuscode: '404',url: null, servermessage: \"Extension not allowed\"});\r\n this.toastr.error(\r\n `Only these file types are allowed: PDF`,\r\n \"File Upload Failed, Please try again.\"\r\n );\r\n //Only these file types are allowed ${allowedFileTypes.Value.toString()}\r\n }\r\n }\r\n\r\n // this.uploader.nativeElement.value = ''\r\n // this.showOtherUploadsOption = false;\r\n }\r\n }\r\n fileUpload(event, item) {\r\n //console.log('calling----->');\r\n // if(item.code.code = 'undefined')\r\n // {\r\n // return this.toastr.warning('Please select the document type first!','Upload File')\r\n // }\r\n //console.log(item)\r\n\r\n const reader = new FileReader();\r\n\r\n if (event.target.files && event.target.files.length > 0) {\r\n let file: any = null;\r\n const count = event.target.files.length;\r\n file = event.target.files[count - 1];\r\n let result = this.checkFileType(file.name);\r\n item.document_type_id = this.doctypesDesc.id;\r\n item.code = this.doctypesDesc.code;\r\n item.description = file.name;\r\n this.docTypeId = item.document_type_id;\r\n this.uploadInfo.push(item);\r\n localStorage.setItem(\"uploads\", JSON.stringify(this.uploadInfo));\r\n const reader = new FileReader();\r\n\r\n if (event.target.files && event.target.files.length > 0) {\r\n let file: any = null;\r\n const count = event.target.files.length;\r\n\r\n file = event.target.files[count - 1];\r\n let result = this.checkFileType(file.name);\r\n\r\n //if File type is in not found\r\n if (result != -1) {\r\n let sizeresult = this.checkFileSize(file.size);\r\n\r\n if (sizeresult != -1) {\r\n this.ref.detectChanges();\r\n\r\n reader.removeEventListener;\r\n reader.readAsDataURL(file);\r\n reader.onload = () => {\r\n this.filebytes = reader.result.toString().split(\",\")[1];\r\n (this.filename = file.name), (this.filetype = file.type);\r\n this.filedescription = \"upload\";\r\n this.filesize = file.size;\r\n this.validateData(this.docTypeId);\r\n };\r\n } else {\r\n // this.uploader.nativeElement.value = ''\r\n let allowedFileSize =\r\n environment.authWebApi.systemData.Configurations.find(\r\n (p) => p.Code == \"MaxUploadMB1\"\r\n );\r\n // this.dialogService.addDialog(ErrorComponent, { title: 'File Upload Failed, Please try again.', message: `Maximum file size allowed ${allowedFileSize.Value.toString()}MB`, statuscode: '404',url: null, servermessage: \"File size exceeded maximum size\"});\r\n this.toastr.error(\r\n `Maximum file size allowed ${allowedFileSize.Value.toString()}MB`,\r\n \"File Upload Failed, Please try again.\"\r\n );\r\n }\r\n } else {\r\n //send message allowed types\r\n // this.uploader.nativeElement.value = ''\r\n let allowedFileTypes =\r\n environment.authWebApi.systemData.Configurations.find(\r\n (p) => p.Code == \"UploadDocTypes1\"\r\n );\r\n\r\n // this.dialogService.addDialog(ErrorComponent, { title: 'File Upload Failed, Please try again.', message: `Only these file types are allowed ${allowedFileTypes.Value.toString()}`, statuscode: '404',url: null, servermessage: \"Extension not allowed\"});\r\n this.toastr.error(\r\n `Only these file types are allowed: PDF`,\r\n \"File Upload Failed, Please try again.\"\r\n );\r\n }\r\n }\r\n\r\n // this.uploader.nativeElement.value = ''\r\n // this.showOtherUploadsOption = false;\r\n }\r\n }\r\n postFile(documenttypeid: any) {\r\n //this.dataCntrl.permit.forEach(permit => {\r\n let permit = this.dataCntrl.permits[0];\r\n\r\n const formdata = new FormData();\r\n formdata.append(\"File\", this.filebytes);\r\n formdata.append(\r\n \"FileName\",\r\n this.dataCntrl.application.id + \"-\" + permit.id + \"-\" + this.filename\r\n );\r\n formdata.append(\"TypeOfFile\", this.filetype);\r\n formdata.append(\"Notes\", this.filedescription);\r\n formdata.append(\"FileSize\", this.filesize);\r\n formdata.append(\"PermitId\", permit.id);\r\n formdata.append(\r\n \"PermitName\",\r\n \"PermitName - \" + permit.id + \" - \" + this.filename\r\n );\r\n formdata.append(\"UserLastName\", this.user.LastName);\r\n formdata.append(\"documenttypeid\", documenttypeid);\r\n formdata.append(\"ApplicationId\", this.dataCntrl.application.id);\r\n if (this.dataCntrl.compID != null || this.dataCntrl.compID != undefined) {\r\n //alert(this.dataCntrl.complianceDetail.id);\r\n formdata.append(\"complianceDetailId\", this.dataCntrl.complianceDetail.id);\r\n } else {\r\n formdata.append(\"complianceDetailId\", \"\");\r\n }\r\n\r\n // vehicle specific\r\n if (this.vehicleId > 0 && this.documentType != null) {\r\n if (this.documentType.document_type_id == documenttypeid) {\r\n // formdata.append('ApplicationId', this.dataCntrl.application.id)\r\n formdata.append(\"VehicleId\", this.vehicleId);\r\n } else {\r\n // formdata.append('ApplicationId', \"0\")\r\n formdata.append(\"VehicleId\", \"0\");\r\n }\r\n } else {\r\n // formdata.append('ApplicationId', \"0\")\r\n formdata.append(\"VehicleId\", \"0\");\r\n }\r\n\r\n this.isLoadingImg = true;\r\n this.isLoading = true;\r\n // this.message = 'Uploading... please wait'\r\n //alert(documenttypeid);\r\n //alert(JSON.stringify(permit));\r\n console.log('formdata ',formdata );\r\n this.documentService\r\n .postPermitDocument(formdata, documenttypeid, permit.id)\r\n .subscribe(\r\n (response) => {\r\n this.refreshDocumentList();\r\n\r\n this.isLoadingImg = false;\r\n this.isLoading = false;\r\n // this.reload()//,\r\n //this.dialogService.addDialog(AlertComponent, {\r\n // title: 'File Uploaded',\r\n // message: 'File: ' + this.filename + ' was successfully uploaded.',\r\n // bold: this.filename\r\n //})\r\n //console.log(response.document_type_id)\r\n console.log(\r\n \"File: \" + this.filename + \" was successfully uploaded.\",\r\n \"File Upload\"\r\n );\r\n },\r\n (error) => {\r\n this.isLoadingImg = false;\r\n this.isLoading = false;\r\n\r\n //alert(JSON.stringify(error));\r\n // this.dialogService.addDialog(ErrorComponent, {\r\n // title: 'File Upload Failed, Please try again.',\r\n // message: error._body , statuscode: error.Status, url: error.Uri, servermessage: error.Message\r\n // }),\r\n this.toastr.error(\"File Upload Failed, Please try again.\", \"\");\r\n // this.reload()\r\n }\r\n );\r\n\r\n // });\r\n }\r\n\r\n checkFileType(fileName: string) {\r\n // from the file name derive the extension\r\n let allowedFileTypes =\r\n environment.authWebApi.systemData.Configurations.find(\r\n (p) => p.Code == \"UploadDocTypes1\"\r\n );\r\n let fileTypesArray = allowedFileTypes.Value.toString().split(\",\");\r\n //check if file type is\r\n let ext = fileName.split(\".\")[1].toUpperCase();\r\n let count = fileTypesArray.length;\r\n for (let iter = 0; iter < count; iter++) {\r\n if (fileTypesArray[iter] == ext) return iter;\r\n }\r\n return -1;\r\n }\r\n\r\n checkFileSize(fileSize: number) {\r\n // get the maximum file size\r\n let allowedFileSize = environment.authWebApi.systemData.Configurations.find(\r\n (p) => p.Code == \"MaxUploadMB1\"\r\n );\r\n let maxAllowedSize = allowedFileSize.Value; //it is in MB\r\n let document_sizeMB = fileSize / 1000000;\r\n if (document_sizeMB <= maxAllowedSize) return 1;\r\n else return -1;\r\n //\r\n }\r\n validateData(documenttypeid: any) {\r\n if (\r\n this.dataCntrl.permits == null ||\r\n this.dataCntrl.permits == undefined ||\r\n this.dataCntrl.permits.length <= 0\r\n ) {\r\n // this.dialogService.addDialog(AlertComponent, { title: 'Error', message: 'Unable to upload documents ' })\r\n this.toastr.error(\r\n \"Unable to upload documents! Please select permit type\",\r\n \"Error\"\r\n );\r\n } else {\r\n this.postFile(documenttypeid);\r\n }\r\n }\r\n\r\n deleteDocument(item) {\r\n //let docs = JSON.parse(localStorage.getItem(\"uploads\") || \"[]\");\r\n\r\n //console.log(item);\r\n this.isLoading = true;\r\n\r\n this.documentService.DeletePermitDoc(item.id).subscribe(\r\n (data) => {\r\n console.log(data);\r\n this.populateDocTypeList();\r\n this.refreshDocumentList();\r\n // this.documentService.getPermitById(this.dataCntrl.application.id).subscribe(x => {\r\n // for (var i = 0; i < x.length; i++) {\r\n // let firstNum = x[i].document_link.indexOf('#')\r\n // //console.log(x[i].document_link.substring(firstNum + 1))\r\n // x[i].shareId = x[i].document_link.substring(firstNum + 1);\r\n // //console.log(x[i].document_link.substring(0, firstNum))\r\n // this.uploadedDocs.id = x[i].document_link.substring(firstNum + 1);\r\n // x[i].document_link = x[i].document_link.substring(0, firstNum);\r\n // //console.log(x)\r\n // //this.uploadedDocs = x;\r\n // if(this.dataCntrl.compID != null || this.dataCntrl.compID != undefined)\r\n // {\r\n // console.log(this.uploadedDocs[i].compliance_detail_id + JSON.stringify(this.uploadedDocs[i]))\r\n // if(this.uploadedDocs[i].compliance_detail_id == null || this.uploadedDocs[i].compliance_detail_id == undefined || this.uploadedDocs[i].compliance_detail_id == 0)\r\n // {\r\n // console.log(\"splicing\");\r\n // this.uploadedDocs.splice(i,1);\r\n // }\r\n // }\r\n // //console.log(this.uploadedDocs)\r\n // this.uploadedDocs.sort((a, b) => a.description > b.description ? 1 : -1)\r\n\r\n // }\r\n // if (this.uploadedDocs.length > 0) {\r\n // this.removeUploadedDocTypes();\r\n // }\r\n // if (this.uploadedDocs.length > 0) {\r\n // this.removeUploadedDocTypes();\r\n // }\r\n // this.isLoading = false;\r\n // // this.populateDocTypeList();\r\n // this.toastr.success('Document deleted successfully!')\r\n\r\n // }, error => {\r\n // if (error[\"_body\"] !== undefined && error[\"_body\"] !== null) {\r\n // this.uploadedDocs = [];\r\n\r\n // }\r\n // this.uploadedDocs = [];\r\n // //console.log(error);\r\n\r\n // });\r\n this.isLoading = false;\r\n },\r\n (error) => {\r\n this.toastr.error(\"Error deleting document\");\r\n }\r\n );\r\n }\r\n deleteDoc(doc) {\r\n // this.showModal.showYesNo('Delete Document', 'Are you sure you want to delete?', `You're about to delete this document`, 'Yes', 'No')\r\n // .subscribe((isConfirmed) => {\r\n // if (isConfirmed) {\r\n // this.deleteDocument(doc)\r\n // } else {\r\n // return;\r\n // }\r\n // });\r\n this.confirmDialogService.confirmThis(\r\n \"Are you sure you want to delete? You're about to delete this document\",\r\n () => {\r\n this.deleteDocument(doc);\r\n },\r\n () => {\r\n return;\r\n }\r\n );\r\n }\r\n cancelApplication() {\r\n let prevUrl = localStorage.getItem(\"previousUrl\");\r\n if (prevUrl.search(\"/permit/approval\") != -1) {\r\n this.router.navigate([\"/permit/approval/\"]);\r\n } else if (prevUrl.search(\"/carrier/permit/application/mypermits\") != -1) {\r\n this.router.navigate([\r\n \"/carrier/permit/application/mypermits/\",\r\n this.dataCntrl.carrierID,\r\n ]);\r\n } else {\r\n this.router.navigate([\r\n \"/carrier/permit/application/\",\r\n this.dataCntrl.carrierID,\r\n ]);\r\n }\r\n }\r\n // if (this.dataCntrl.application.id == undefined && this.dataCntrl.application.id == null) {\r\n // this.router.navigate(['/carrier/permit/application/' + this.dataCntrl.carrierID]);\r\n // } else {\r\n // this.showModal.showYesNo('Delete Application', 'Are you sure you want to delete?', `You're about to delete application`, 'Yes', 'No')\r\n // .subscribe((isConfirmed) => {\r\n // if (isConfirmed) {\r\n // this.deleteApplication()\r\n // } else {\r\n // return;\r\n // }\r\n // });\r\n // }\r\n // }\r\n deleteApplication() {\r\n //console.log(\"delete application\");\r\n\r\n this.permitService.deletePermit(this.dataCntrl.permit.id).subscribe((x) => {\r\n //console.log(x);\r\n this.deleteApp(this.dataCntrl.application.id);\r\n\r\n this.router.navigate([\r\n \"/carrier/permit/application/\" + this.dataCntrl.carrierID,\r\n ]);\r\n });\r\n //this.dataCntrl.application.id\r\n //this.dataCntrl.permit.id\r\n }\r\n deletePermit(id) {\r\n this.permitService.deletePermit(id).subscribe((x) => {\r\n //console.log(x);\r\n });\r\n }\r\n deleteApp(id) {\r\n this.applicationService.deleteApplication(id).subscribe((x) => {});\r\n }\r\n onChange(event) {\r\n this.getDocSaved(parseInt(event));\r\n }\r\n selectedDocType(event) {}\r\n\r\n checkDocType(linkedDocs) {\r\n let docType = this.doctypesCodes.find(\r\n (x) => x.id == linkedDocs.document_type_id\r\n );\r\n if (docType == null || docType == undefined) return false;\r\n return docType.is_for_vehicle;\r\n }\r\n onVehicleSelectChange(vehicleSelect, docType) {\r\n this.vehicleId = vehicleSelect.value;\r\n this.documentType = docType;\r\n if (vehicleSelect.value == \"\") {\r\n this.vehicleId = 0;\r\n this.documentType = null;\r\n }\r\n }\r\n backToTab() {\r\n if (this.router.url.indexOf(\"duplicate\") > 0) {\r\n this.applicationService.setTab(0);\r\n // this.router.navigate(['/carrier/permit/application/duplicate/' + this.dataCntrl.permit.application_id]);\r\n } else if (this.replaceVehicle) {\r\n this.applicationService.setTab(2);\r\n } else if (\r\n this.dataCntrl.compID != null ||\r\n this.dataCntrl.compID != undefined\r\n ) {\r\n this.applicationService.setTab(0);\r\n } else {\r\n const tabNum = this.utility.tabPosition(\r\n this.utility.sequenceNumbers.uploadsNum\r\n );\r\n this.applicationService.setTab(tabNum);\r\n //if (this.utility.timetableActive) {\r\n // this.applicationService.setTab(4);\r\n //} else {\r\n // this.applicationService.setTab(3);\r\n //}\r\n }\r\n }\r\n\r\n checkIfKiosk() {\r\n this.documentService.checkIfKiosk().subscribe(\r\n (res: any) => {\r\n \r\n\r\n this.isKiosk = true;\r\n },\r\n (err) => {\r\n \r\n }\r\n );\r\n }\r\n\r\n scanDocument(id) {\r\n this.isLoadingImg = true;\r\n this.scanDocumentId = id;\r\n this.scanner.getKioskScanner().subscribe(\r\n (result:string) => {\r\n if (result) {\r\n \r\n this.scanner.getScannerByDeviceID(result.replace(' ', '')).subscribe(\r\n (response: any) => {\r\n \r\n if (response.status_id == 1014) {\r\n this.isPromptUserToScan = true;\r\n this.isViewMode = false;\r\n this.scannerMessage = `Please go and insert your paper to the scanner ${response.scanner_alias} and click the scan button `;\r\n response.status_id = 1015;\r\n response.pc_ip_address = result;\r\n response.status = null;\r\n this.selectedScanner = response;\r\n this.scanner.update(response).subscribe((res) => {\r\n \r\n });\r\n\r\n document.getElementById(\"btnView\").click();\r\n this.isLoadingImg = false;\r\n } else {\r\n this.toastr.warning(\r\n `Scanner ${response.scanner_alias} is currently not available, please try again later`\r\n );\r\n }\r\n },\r\n (error) => {\r\n this.toastr.warning(\r\n \"An error occurred when getting the scanner details. Please try again later or contact the administrator\"\r\n );\r\n }\r\n );\r\n }\r\n \r\n },\r\n (err) => {\r\n this.toastr.error(\r\n \"An error occured getting the scanner details from the kiosk. Please try again later or contact the administrator\"\r\n );\r\n this.isLoadingImg = false;\r\n }\r\n );\r\n }\r\n\r\n cancelScanner() {\r\n if(this.selectedScanner){\r\n this.selectedScanner.status_id = 1014;\r\n this.scanner.update(this.selectedScanner).subscribe((res) => {\r\n\r\n });\r\n }\r\n\r\n }\r\n\r\n callTheScanner() {\r\n this.isLoadingImg = true;\r\n this.pdfSrc = null;\r\n this.scannedDocument = null;\r\n this.selectedScanner.status_id = 1015;\r\n this.scanner.update(this.selectedScanner).subscribe((res) => {\r\n \r\n });\r\n\r\n this.isPromptUserToScan = false;\r\n this.documentService.scanDocument().subscribe((x) => {\r\n\r\n this.scannedDocument = x;\r\n let objectURL = URL.createObjectURL(x);\r\n\r\n this.pdfSrc = objectURL;\r\n this.isLoadingImg = false;\r\n this.selectedScanner.status_id = 1014;\r\n this.scanner.update(this.selectedScanner).subscribe((res) => {\r\n \r\n });\r\n //document.getElementById(\"btnView\").click();\r\n\r\n //Post this document to sharepoint.\r\n }, error =>{\r\n this.toastr.error(\r\n \"An error occured in scanner, please make sure the paper is properly placed in the scanner and retry to scan again.\"\r\n );\r\n\r\n this.selectedScanner.status_id = 1014;\r\n this.scanner.update(this.selectedScanner).subscribe((res) => {\r\n \r\n this.isLoadingImg = false;\r\n });\r\n });\r\n }\r\n\r\n postScannedDoc() {\r\n\r\n var reader = new FileReader();\r\n reader.removeEventListener;\r\n if(this.scannedDocument){\r\n reader.readAsDataURL(this.scannedDocument);\r\n reader.onload = () => {\r\n this.filebytes = reader.result.toString().split(\",\")[1];\r\n this.filesize = this.scannedDocument.size.toString();\r\n this.filetype = this.scannedDocument.type;\r\n this.filename =\r\n \"Scan\" + this.datepipe.transform(new Date(), \"ddMMyyyyHHmmss\") + \".pdf\";\r\n this.filedescription = \"upload\";\r\n document.getElementById(\"btnView\").click();\r\n this.isLoadingImg = true;\r\n this.isLoading = true;\r\n this.validateData(this.scanDocumentId);\r\n \r\n };\r\n }\r\n \r\n }\r\n}\r\n","
\r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n
0 || uploadedDocs.length>0\">\r\n When submitting copies of letters, documents or contracts in support of an application, please ensure that they are clear and legible. Documents that are not clear will not be accepted as supporting evidence. All foreign documents must be translated by\r\n a certified translator into English.\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n\r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n 4\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
{{UserDocument.description}}{{UserDocument.file_name}}\r\n \r\n \r\n \r\n\r\n \r\n \r\n
{{docType.description}}* \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n
\r\n \r\n \r\n
\r\n No Documents found.\r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
Document Upload
\r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n

{{scannerMessage}}

\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
Upload Document
\r\n \r\n
\r\n
\r\n \r\n \r\n\r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n Document Type\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n \r\n
\r\n \r\n
\r\n","import { Component, OnInit, Input, Injectable, ViewChild } from '@angular/core';\r\nimport { PopupService } from '../../../../services/shared/popup.service';\r\nimport { VehicleMakeService } from '../../../../services/vehicle-make.service';\r\nimport { VehicleTypeService } from '../../../../services/vehicle-type.service';\r\nimport { VehicleService } from '../../../../services/vehicle.service';\r\nimport { ToastRef, ToastrService } from 'ngx-toastr';\r\nimport { ApplicationService } from 'app/services/application.service';\r\nimport { UtilityServiceService } from 'app/services/utility-service.service';\r\nimport { environment } from '../../../../../environments/environment';\r\nimport { Router, ActivatedRoute, Params } from '@angular/router';\r\nimport { PermitService } from 'app/services/permit.service';\r\nimport { NgbCalendar, NgbDateAdapter, NgbDateParserFormatter, NgbDateStruct, NgbActiveModal, NgbModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap';\r\nimport { DatePipe } from '@angular/common';\r\nimport * as moment from 'moment';\r\nimport { FormGroup, FormBuilder, Validators, FormControl } from '@angular/forms';\r\nimport { CountryService } from 'app/services/country.service';\r\nimport { VehicleEntryService } from 'app/services/vehicle-entry.service';\r\n\r\nimport { PermitTypeComponent } from 'app/maintain/permit-type/permit-type.component';\r\nimport { ConfirmDialogService } from 'app/services/shared/confirm-dialog/confirm-dialog.service';\r\n\r\n/**\r\n * This Service handles how the date is represented in scripts i.e. ngModel.\r\n */\r\n@Injectable()\r\nexport class CustomAdapter extends NgbDateAdapter {\r\n\r\n readonly DELIMITER = '/';\r\n\r\n fromModel(value: string | null): NgbDateStruct | null {\r\n if (value) {\r\n let date = value.split(this.DELIMITER);\r\n return {\r\n day: parseInt(date[0], 10),\r\n month: parseInt(date[1], 10),\r\n year: parseInt(date[2], 10)\r\n };\r\n }\r\n return null;\r\n }\r\n\r\n toModel(date: NgbDateStruct | null): string | null {\r\n return date ? date.day + this.DELIMITER + date.month + this.DELIMITER + date.year : null;\r\n }\r\n}\r\n\r\n/**\r\n * This Service handles how the date is rendered and parsed from keyboard i.e. in the bound input field.\r\n */\r\n@Injectable()\r\nexport class CustomDateParserFormatter extends NgbDateParserFormatter {\r\n\r\n readonly DT_FORMAT = 'DD/MM/YYYY';\r\n\r\n parse(value: string): NgbDateStruct {\r\n if (value) {\r\n value = value.trim();\r\n let mdt = moment(value, this.DT_FORMAT)\r\n }\r\n return null;\r\n }\r\n format(date: NgbDateStruct): string {\r\n if (!date) return '';\r\n let mdt = moment([date.year, date.month - 1, date.day]);\r\n if (!mdt.isValid()) return '';\r\n return mdt.format(this.DT_FORMAT);\r\n }\r\n}\r\ndeclare var $;\r\n@Component({\r\n selector: 'app-app-vehicle',\r\n templateUrl: './app-vehicle.component.html',\r\n styleUrls: ['./app-vehicle.component.css'],\r\n providers: [\r\n { provide: NgbDateAdapter, useClass: CustomAdapter },\r\n { provide: NgbDateParserFormatter, useClass: CustomDateParserFormatter },\r\n NgbActiveModal,\r\n ]\r\n})\r\nexport class AppVehicleComponent implements OnInit {\r\n @Input() dataCntrl: any;\r\n @ViewChild('closebutton', { static: true }) closebutton;\r\n\r\n\r\n currentDate: any = { day: new Date().getDate(), month: (new Date().getMonth() + 1), year: new Date().getFullYear() } //{ day: \"?= date('Y-m-d'); ?\" } //\r\n vehicle: any = {};\r\n listvehicles: any = [];\r\n list_vehicle_type: any = [];\r\n list_vehicle_make: any = [];\r\n editMode: boolean = false;\r\n disableAdd: boolean = false;\r\n max_pass: number = 1000;\r\n max_limit: number = 14;\r\n min_pass: number = 0;\r\n haserror: boolean = false;\r\n gridload: boolean = false;\r\n tabload: boolean = false;\r\n public pageload = false;\r\n public pageload2 = false;\r\n disableBtn: boolean = false;\r\n selectedVMake: any;\r\n isProcess: boolean = true;\r\n isSaveAndCon: boolean = false;\r\n renewalFlag: boolean = false;\r\n isReplaceVehicle : boolean = false;\r\n isViewMode :Boolean = false;\r\n\r\n newListvehicles: any = [];\r\n btnAddNew: boolean = false;\r\n myForm: FormGroup;\r\n ddlCountries = [];\r\n public isLoading = false;\r\n leased: any;\r\n isEditData: boolean = false;\r\n private modalRef: NgbModalRef;\r\n eNatisData: any;\r\n listvehicleEntries: any = [];\r\n vehiclePermitEntries: any = [];\r\n\r\n message = '';\r\n\r\n customIndex: any;\r\n myPassenger: any;\r\n myStartDate: any;\r\n myVehicleType: any;\r\n myRegNum: any;\r\n myGvm: any;\r\n MyVin: any;\r\n myExpDAte: any;\r\n noOfDays: any = 0;\r\n replaceVehicle: boolean = false;\r\n isCorrection: boolean = false;\r\n isDuplicate: boolean = false;\r\n isAmmendRoute:boolean=false;\r\n permitStatus13: any;\r\n constructor(private showModal: PopupService, private vehicleTypeService: VehicleTypeService, private vehicleMakeService: VehicleMakeService,\r\n private vehicleService: VehicleService, private toastr: ToastrService,\r\n private applicationService: ApplicationService,\r\n public utility: UtilityServiceService,private confirmDialogService: ConfirmDialogService,\r\n private router: Router, private permitService: PermitService, private activeRoute: ActivatedRoute,\r\n private ngbCalendar: NgbCalendar, private dateAdapter: NgbDateAdapter,\r\n private datePipe: DatePipe, private permitSevc: PermitService\r\n , private formBuilder: FormBuilder, private countryService: CountryService, public activeModal: NgbActiveModal, private entryService: VehicleEntryService) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n \r\n this.isReplaceVehicle = this.router.url.indexOf('change') > 0 && this.router.url.indexOf('vehicle') > 0;\r\n\r\n if(this.isReplaceVehicle)\r\n {\r\n this.dataCntrl.application.permit_type_id = 16;\r\n }\r\n\r\n this.getVehicleType();\r\n if (this.listvehicles.length > 0) {\r\n this.dataCntrl.formValid = true;\r\n }\r\n\r\n //console.log(this.dataCntrl.permittype.permit_days);\r\n if (this.dataCntrl.permittype.can_specify_duration === true) {\r\n this.noOfDays = this.dataCntrl.permittype.permit_days\r\n }\r\n // this.getVehicleType();\r\n this.getVehicleMake();\r\n // this.setVehicles();\r\n // if(this.dataCntrl.isViewEditControl == true){\r\n // // this.editMode = this.dataCntrl.editMode;\r\n // this.setVehicles();\r\n // }\r\n if (this.router.url.indexOf('new') > 0){\r\n this.getSavedVehicleByPermit('load');\r\n }\r\n\r\n if (environment.authWebApi.systemData != null && environment.authWebApi.systemData.Configurations != null) {\r\n this.permitStatus13 = environment.authWebApi.systemData.Configurations.find(p => p.Code == 'PermitStatus13').Value;\r\n }\r\n\r\n // if (this.router.url.indexOf('correction') > 0) {\r\n // }\r\n\r\n //console.log(this.dataCntrl);\r\n if (this.router.url.indexOf('edit') > 0) {\r\n this.activeRoute.params.subscribe((params: Params) => {\r\n this.dataCntrl.application.id = params['id'];\r\n \r\n this.getSavedVehicleByPermit('load');\r\n // this.getPermitAppVehicle(params['id']);\r\n\r\n if (params['type']) {\r\n this.renewalFlag = true;\r\n }\r\n if (environment.authWebApi.userData.Roles.find(p => p.Code == 'ADMIN')) { \r\n this.disableBtn = true; \r\n }\r\n\r\n\r\n });\r\n\r\n }\r\n this.dataCntrl.changeVehicle=false;\r\n if (this.router.url.indexOf('view') > 0) {\r\n this.isViewMode = true;\r\n this.dataCntrl.application.id = this.activeRoute.params['_value'].id;\r\n this.isProcess = false;\r\n this.getSavedVehicleByPermit('load');\r\n if (environment.authWebApi.userData.Roles.find(p => p.Code == 'ADMIN')) {\r\n //this.disableBtn = true;\r\n\r\n //console.log('This is Admin')\r\n }\r\n\r\n }\r\n if (this.router.url.indexOf('correction') > 0 || this.dataCntrl.permittype.code == 'OTH-CRR') {\r\n this.activeRoute.params.subscribe((params: Params) => {\r\n this.dataCntrl.application.id = params['id'];\r\n this.isCorrection = true;\r\n\r\n this.getSavedVehicleByPermit('load');\r\n // this.getPermitAppVehicle(params['id']);\r\n\r\n\r\n });\r\n }\r\n if (this.router.url.indexOf('change') > 0) {\r\n if (this.activeRoute.params['_value'].ctrlType != undefined && this.activeRoute.params['_value'].ctrlType == 'vehicle') {\r\n this.replaceVehicle = true;\r\n } else {\r\n if (this.activeRoute.params['_value'].ctrlType == 'true') {\r\n this.isAmmendRoute=true;\r\n }\r\n }\r\n this.getSavedVehicleByPermit('load');\r\n }\r\n if (this.router.url.indexOf('duplicate') > 0) {\r\n this.activeRoute.params.subscribe((params: Params) => {\r\n this.dataCntrl.application.id = params['id'];\r\n this.isDuplicate = true;\r\n this.getSavedVehicleByPermit('load');\r\n // this.getPermitAppVehicle(params['id']);\r\n\r\n\r\n });\r\n }\r\n // if(this.dataCntrl.isSaveAndCon){\r\n // this.getSavedVehicleByPermit(this.dataCntrl.permits.application_id,'update');\r\n // }else{\r\n // this.getSavedVehicleByPermit(this.dataCntrl.application.id,'load');\r\n // }\r\n\r\n // this.getApplication();\r\n localStorage.setItem('replaceFlag', this.replaceVehicle.toString());\r\n this.createForm();\r\n this.listCountries();\r\n this.getVehicleType();\r\n }\r\n viewVehicleEntry() {\r\n if (this.router.url.indexOf('new') > 0) {\r\n localStorage.setItem(\"aplFlag\", \"new\");\r\n localStorage.setItem(\"carrierId\", this.dataCntrl.carrierID)\r\n\r\n }\r\n\r\n\r\n // this.getPermitsAppVecleEntry(this.dataCntrl.application.id);\r\n // this.router.navigateByUrl('permit/my-vehicles/'+this.dataCntrl.application.id);vehicle-replace\r\n if (this.replaceVehicle === true) { \r\n return this.router.navigate(['/permit/vehicle-replace', this.dataCntrl.application.id]);\r\n }\r\n \r\n this.router.navigate(['/permit/my-vehicles', this.dataCntrl.application.id]);\r\n }\r\n createForm() {\r\n this.isEditData = false;\r\n this.myForm = this.formBuilder.group({\r\n id: [-1, []],\r\n permit_id: [],\r\n country_id: ['', [Validators.required]],\r\n registration_number: [this.myRegNum, [Validators.required]],\r\n registration_year: ['', [Validators.required]],\r\n vehicle_make_id: ['', [Validators.required,]],\r\n vehicle_series: ['', []],\r\n vehicle_model: ['', []],\r\n vehicle_colour: ['', []],\r\n vin: [this.MyVin, [Validators.required,]],\r\n engine_number: ['', [Validators.required,]],\r\n gvn: [this.myGvm, [Validators.required,]],\r\n seating_capacity: ['', []],\r\n date_license_expiry: [this.myExpDAte, [Validators.required,]],\r\n start_date: [this.myStartDate, [Validators.required,]],\r\n vehicle_state: ['', []],\r\n roadworthy_status: ['', [Validators.required,]],\r\n vehicle_owner: ['', [Validators.required,]],\r\n is_leased: ['', [Validators.required,]],\r\n vehicle_lessor: [''],\r\n vehicle_lessee: [''],\r\n date_lease_expiry: [this.myExpDAte],\r\n vehicle_type_id: [this.myVehicleType, [Validators.required,]],\r\n vehicle_entry_id: ['', []],\r\n });\r\n }\r\n passForEdit(item) {\r\n //console.log(item);\r\n this.isEditData = true;\r\n this.vehicleService.getVehicleBy(item.id).subscribe((x:any) => {\r\n //console.log(x);\r\n this.leased = x.is_leased;\r\n this.myForm.patchValue({\r\n id: item.id,\r\n date_license_expiry: item.date_license_expiry,\r\n gvn: item.gvn,\r\n registration_number: item.registration_number,\r\n seating_capacity: x.seating_capacity,\r\n start_date: item.start_date,\r\n vehicle_make_id: item.vehicle_make_id,\r\n vehicle_type_id: item.vehicle_type_id,\r\n vin: item.vin,\r\n\r\n permit_id: x.permit_id,\r\n country_id: x.country_id,\r\n vehicle_series: x.vehicle_series,\r\n vehicle_model: x.vehicle_model,\r\n vehicle_colour: x.vehicle_colour,\r\n engine_number: x.engine_number,\r\n vehicle_state: x.vehicle_state,\r\n roadworthy_status: x.roadworthy_status,\r\n vehicle_owner: x.vehicle_owner,\r\n is_leased: x.is_leased,\r\n vehicle_lessor: x.vehicle_lessor,\r\n vehicle_lessee: x.vehicle_lessor,\r\n date_lease_expiry: this.datePipe.transform(x.date_lease_expiry, 'dd/MM/yyyy'),\r\n\r\n\r\n });\r\n })\r\n\r\n\r\n }\r\n backToTab() {\r\n if(this.router.url.indexOf('duplicate') > 0){\r\n this.applicationService.setTab(0);\r\n }\r\n else{\r\n this.router.navigate(['/carrier/permit/application/edit/' + this.dataCntrl.application.id]);\r\n this.applicationService.setTab(1);\r\n }\r\n }\r\n SaveModal() { \r\n if (!this.myForm.value.country_id) {\r\n return this.toastr.warning('Country of vehicle registration is required!', 'Country Of Vehicle Registration');\r\n }\r\n if (!this.myForm.value.registration_number) {\r\n return this.toastr.warning('Vehicle registration number is required!', 'Vehicle Registration Number');\r\n }\r\n if (!this.myForm.value.vehicle_make_id) {\r\n return this.toastr.warning('Vehicle make is required!', 'Vehicle Make');\r\n }\r\n if (!this.myForm.value.vin) {\r\n return this.toastr.warning('VIN or Chassis number is required!', 'VIN or Chassis Number');\r\n }\r\n // if(this.myForm.value.vin.length !== 17){\r\n // return this.toastr.warning('VIN should be 17 alphanumeric characters.','VIN or Chassis Number')\r\n // }\r\n if (!this.myForm.value.engine_number) {\r\n return this.toastr.warning('Engine number is required!', 'Engine Number');\r\n }\r\n if (!this.myForm.value.gvn) {\r\n return this.toastr.warning('Gross Vehicle(GVM) is required!', 'Gross Vehicle(GVM)');\r\n }\r\n if (!this.myForm.value.date_license_expiry) {\r\n return this.toastr.warning('License expiry date is required!', 'License Expiry Date');\r\n } \r\n if (!this.myForm.value.start_date) {\r\n return this.toastr.warning('Start Date is required!', 'Permit Start Date');\r\n }\r\n if (!this.myForm.value.roadworthy_status) {\r\n return this.toastr.warning('Roadworthy status is required!', 'Roadworthy Status');\r\n }\r\n if (!this.myForm.value.vehicle_type_id) {\r\n return this.toastr.warning('Vehicle type is required!', 'Vehicle Type');\r\n }\r\n if (!this.myForm.value.vehicle_owner) {\r\n return this.toastr.warning('Vehicle owner name is required!', 'Vehicle Owner Name');\r\n }\r\n if (!(parseInt(this.myForm.value.registration_year) >= 1950 && parseInt(this.myForm.value.registration_year) <= 2100)) {\r\n this.toastr.warning(\"Invalid Registration Year\");\r\n return false;\r\n }\r\n if (this.myForm.value.is_leased === null) {\r\n return this.toastr.warning('Is the vehicle leased?', 'Vehicle');\r\n }\r\n if (this.leased === true || this.leased === 'true') {\r\n //console.log('inside')\r\n if (!this.myForm.value.vehicle_lessor) {\r\n return this.toastr.warning('Lessor name is required!', 'Lessor Name');\r\n }\r\n if (!this.myForm.value.vehicle_lessee) {\r\n return this.toastr.warning('Lessee name is required!', 'Lessee Name');\r\n }\r\n if (!this.myForm.value.date_lease_expiry) {\r\n return this.toastr.warning('Expiry date of lease is required!', 'Expiry Date Of Lease');\r\n }\r\n }\r\n if (this.leased === false || this.leased === 'false') {\r\n this.myForm.value.vehicle_lessor = '';\r\n this.myForm.value.vehicle_lessee = '';\r\n this.myForm.value.date_lease_expiry = '';\r\n }\r\n //console.log(this.myForm.value.is_leased)\r\n if (this.myForm.value.date_license_expiry) {\r\n let date_license_expiry = this.myForm.value.date_license_expiry\r\n let date = date_license_expiry.split('/');\r\n let day = parseInt(date[0], 10);\r\n let month = parseInt(date[1], 10);\r\n let year = parseInt(date[2], 10);\r\n let newDate = year + '/' + month + '/' + day;\r\n let newDate1 = new Date(newDate);\r\n newDate1.setDate(newDate1.getDate() + 1);\r\n this.myForm.value.date_license_expiry = newDate1;\r\n }\r\n\r\n\r\n if (this.myForm.value.date_lease_expiry) {\r\n let date_lease_expiry = this.myForm.value.date_lease_expiry;\r\n let date1 = date_lease_expiry.split('/');\r\n let day1 = parseInt(date1[0], 10);\r\n let month1 = parseInt(date1[1], 10);\r\n let year1 = parseInt(date1[2], 10);\r\n let newDate2 = year1 + '/' + month1 + '/' + day1;\r\n let newDate11 = new Date(newDate2);\r\n newDate11.setDate(newDate11.getDate() + 1);\r\n this.myForm.value.date_lease_expiry = newDate11;\r\n }\r\n\r\n if (this.myForm.value.start_date) {\r\n let start_date = this.myForm.value.start_date;\r\n let date20 = start_date.split('/');\r\n let day20 = parseInt(date20[0], 10);\r\n let month20 = parseInt(date20[1], 10);\r\n let year20 = parseInt(date20[2], 10);\r\n let newDate20 = year20 + '/' + month20 + '/' + day20;\r\n let newDate110 = new Date(newDate20);\r\n newDate110.setDate(newDate110.getDate() + 1);\r\n this.myForm.value.start_date = newDate110;\r\n }\r\n\r\n\r\n this.myForm.value.date_modified = new Date(),\r\n this.myForm.value.date_created = new Date(),\r\n this.myForm.value.user_modified = this.myForm.value.user_created = environment.authWebApi.userData.User.FirstName,\r\n\r\n //console.log(this.customIndex);\r\n this.pageload = true;\r\n //this.dataCntrl.permits.date_11 = this.myForm.value.start_date;\r\n //this.dataCntrl.permits.number_passengers = this.myPassenger;\r\n if (this.myForm.value.id === -1) {\r\n if (this.customIndex === 0) {\r\n \r\n this.dataCntrl.permits.forEach(permit => {\r\n if(permit.id <= 0)\r\n {\r\n permit.date_11 = this.myForm.value.start_date;\r\n permit.number_passengers = this.myPassenger;\r\n this.permitService.putAppPermit(permit, this.noOfDays).subscribe((result:any) => {\r\n\r\n this.myForm.value.permit_id = result.id;\r\n this.entryService.vehicleApplicationForeign(this.myForm.value, this.dataCntrl.carrierID).subscribe((entry:any) => {\r\n this.myForm.value.vehicle_entry_id = entry.id;\r\n this.vehicleService.updateVehicle(this.myForm.value).subscribe(x => {\r\n this.closebutton.nativeElement.click();\r\n this.toastr.success('Saved Vehicle Successfully', 'Vehicle');\r\n setTimeout(() => { this.getSavedVehicleByPermit(''); }, 2000);\r\n this.pageload = false;\r\n\r\n })\r\n\r\n\r\n })\r\n\r\n });\r\n }\r\n });\r\n } else {\r\n this.dataCntrl.permits.forEach(permit => {\r\n if(permit.id <= 0) {\r\n permit.date_11 = this.myForm.value.start_date;\r\n permit.number_passengers = this.myPassenger;\r\n this.permitService.postAppPermit(permit, this.noOfDays).subscribe((result:any) => {\r\n this.updatePermit(result);\r\n this.myForm.value.permit_id = result.id;\r\n this.entryService.vehicleApplicationForeign(this.myForm.value, this.dataCntrl.carrierID).subscribe((entry:any) => {\r\n this.myForm.value.vehicle_entry_id = entry.id;\r\n this.vehicleService.updateVehicle(this.myForm.value).subscribe(x => {\r\n setTimeout(() => { this.getSavedVehicleByPermit(''); }, 400);\r\n this.pageload = false;\r\n this.closebutton.nativeElement.click();\r\n this.toastr.success('Saved Vehicle Successfully', 'Vehicle');\r\n })\r\n\r\n })\r\n\r\n });\r\n }\r\n });\r\n }\r\n\r\n\r\n\r\n }\r\n else {\r\n \r\n this.dataCntrl.permits.forEach(permit => {\r\n if(permit.id <= 0) {\r\n permit.date_11 = this.myForm.value.start_date;\r\n permit.number_passengers = this.myPassenger;\r\n this.permitService.putAppPermit(permit, this.noOfDays).subscribe(result => {\r\n this.vehicleService.updateVehicle(this.myForm.value).subscribe(x => {\r\n this.closebutton.nativeElement.click();\r\n this.toastr.success('Saved Vehicle Successfully', 'Vehicle');\r\n setTimeout(() => { this.getSavedVehicleByPermit(''); }, 5000);\r\n this.pageload = false;\r\n\r\n })\r\n });\r\n }\r\n });\r\n\r\n }\r\n\r\n }\r\n LeaseChange() {\r\n this.leased = this.myForm.value.is_leased;\r\n }\r\n listCountries() {\r\n \r\n this.isLoading = true;\r\n this.countryService.listCountries().subscribe((result:any) => {\r\n \r\n this.ddlCountries = result;\r\n this.isLoading = false;\r\n }, error => {\r\n this.isLoading = false;\r\n\r\n });\r\n }\r\n\r\n getApplication() {\r\n\r\n if (this.dataCntrl.application.id !== null && this.dataCntrl.application.id !== undefined && this.dataCntrl.vehicles.length == 0) {\r\n this.applicationService.getById(this.dataCntrl.application.id).subscribe((data:any) => {\r\n //console.log(data);\r\n this.pageload = false;\r\n\r\n for (let i = 0; i < data.vehicle.length; i++) {\r\n let object = {\r\n id: data.vehicle[i].id,\r\n vehicle_type_id: data.vehicle[i].vehicle_type_id,\r\n vehicle_make_id: data.vehicle[i].vehicle_make_id,\r\n vehicle_make: data.vehicle[i].vehicle_make,\r\n vehicle_type: data.vehicle[i].vehicle_type,\r\n is_current: false,\r\n registration_number: data.vehicle[i].registration_number,\r\n // seating_capacity: data.vehicle[i].seating_capacity,\r\n number_passengers: data.vehicle[i].number_passengers,\r\n gvn: data.vehicle[i].gvn,\r\n vin: data.vehicle[i].vin,\r\n date_license_expiry: this.datePipe.transform(data.vehicle[i].date_license_expiry, 'dd/MM/yyyy'),\r\n start_date: this.datePipe.transform(data.vehicle[i].start_date, 'dd/MM/yyyy'),\r\n // date_from:data.vehicle[i].date_from,\r\n editMode: false,\r\n permit_num: data.vehicle[i].permit_id == null? \"\" : data.permit.find(p=>p.id ==data.vehicle[i].permit_id).permit_num\r\n }\r\n // if(this.listvehicles.length === data.vehicle.length){\r\n // //console.log('Its 0')\r\n // // this.listvehicles.push(object);\r\n // this.listvehicles = this.dataCntrl.vehicles ;\r\n\r\n // return;\r\n // }\r\n //console.log(object);\r\n //console.log(this.listvehicles)\r\n\r\n\r\n // this.listvehicles.push(object);\r\n\r\n\r\n\r\n\r\n\r\n }\r\n //console.log(this.vehicle);\r\n\r\n\r\n\r\n this.dataCntrl.carrierID = data.carrier_id;\r\n\r\n })\r\n } else {\r\n \r\n this.pageload = false;\r\n for (let list of this.dataCntrl.vehicles) {\r\n let object = {\r\n id: list.id,\r\n vehicle_type_id: list.vehicle_type_id,\r\n vehicle_make_id: list.vehicle_make_id,\r\n vehicle_make: list.vehicle_make,\r\n vehicle_type: list.vehicle_type,\r\n is_current: false,\r\n registration_number: list.registration_number,\r\n // seating_capacity:list.seating_capacity,\r\n number_passengers: list.number_passengers,\r\n gvn: list.gvn,\r\n vin: list.vin,\r\n date_license_expiry: list.date_license_expiry,\r\n start_date: list.start_date,\r\n // date_from:list.date_from,\r\n editMode: false\r\n }\r\n if (this.isCorrection === true || this.isDuplicate === true || this.replaceVehicle === true || this.isAmmendRoute) {\r\n object.editMode = true;\r\n }\r\n this.listvehicles.push(object);\r\n\r\n\r\n }\r\n }\r\n\r\n }\r\n getPermitAppVehicle(id) {\r\n this.vehicleService.getPermitsAppVecle(id).subscribe((data:any) => {\r\n //console.log(data);\r\n data.forEach(vehicles => {\r\n let object = {\r\n id: vehicles.id,\r\n vehicle_type_id: vehicles.vehicle_type_id,\r\n vehicle_make_id: vehicles.vehicle_make_id,\r\n vehicle_make: vehicles.vehicle_make,\r\n vehicle_type: vehicles.vehicle_type,\r\n is_current: false,\r\n registration_number: vehicles.registration_number,\r\n // seating_capacity:vehicles.seating_capacity,\r\n permit_id: vehicles.permit_id,\r\n number_passengers: vehicles.number_passengers,\r\n gvn: vehicles.gvn,\r\n vin: vehicles.vin,\r\n date_license_expiry: this.datePipe.transform(vehicles.date_license_expiry, 'dd/MM/yyyy'),\r\n start_date: this.datePipe.transform(vehicles.start_date, 'dd/MM/yyyy'),\r\n editMode: false\r\n };\r\n this.listvehicleEntries.push(object);\r\n });\r\n //console.log(this.listvehicleEntries);\r\n\r\n\r\n })\r\n\r\n\r\n\r\n\r\n\r\n }//getPermitsAppVecleEntry\r\n getPermitsAppVecleEntry(id) {\r\n this.pageload = true;\r\n this.vehicleService.getPermitsAppVecleEntry(id).subscribe(data => {\r\n //console.log(data);\r\n this.vehiclePermitEntries = data\r\n this.pageload = false;\r\n })\r\n\r\n }\r\n\r\n getSavedVehicleByPermit(loadType) {\r\n\r\n\r\n // this.getVehicleType();\r\n\r\n\r\n this.pageload = true;\r\n this.listvehicles = [];\r\n localStorage.removeItem('checkVehicle');\r\n if (this.replaceVehicle === true){\r\n localStorage.removeItem('replacements');\r\n localStorage.setItem('replacements',JSON.stringify(this.listvehicles));\r\n this.vehicleService.setVehicleReplament(this.listvehicles);\r\n }\r\n localStorage.setItem('checkVehicle',JSON.stringify(this.listvehicles));\r\n this.permitSevc.getAllPermitsByApplicationId(this.dataCntrl.application.id).subscribe((data:any) => {\r\n // //console.log(data.filter(i => i.application_id == this.dataCntrl.application.id));\r\n // let permits = data.filter(i => i.application_id == this.dataCntrl.application.id);\r\n let permits = data;\r\n this.vehicleService.getPermitsAppVecle(this.dataCntrl.application.id).subscribe((x: any) => {\r\n this.listvehicles = [];\r\n if (permits.length > 0) {\r\n for (let p = 0; p < permits.length; p++) {\r\n //console.log(permits[p].id)\r\n let perm = permits[p];\r\n //console.log(x.filter(i => i.permit_id == permits[p].id))\r\n let allVeh = x.filter(i => i.permit_id == perm.id);\r\n\r\n //console.log(x.find(i => i.permit_id == permits[p].id))\r\n\r\n if (allVeh.length > 0) {\r\n \r\n for (let v = 0; v < allVeh.length; v++) {\r\n let vehicles = allVeh[v]; \r\n let object = {\r\n id: vehicles.id,\r\n vehicle_type_id: vehicles.vehicle_type_id,\r\n vehicle_make_id: vehicles.vehicle_make_id,\r\n vehicle_make: vehicles.vehicle_make,\r\n vehicle_type: vehicles.vehicle_type,\r\n is_current: false,\r\n registration_number: vehicles.registration_number,\r\n // seating_capacity:vehicles.seating_capacity,\r\n permit_id: vehicles.permit_id,\r\n number_passengers: vehicles.number_passengers > 0 ? vehicles.number_passengers : vehicles.seating_capacity,\r\n seating_capacity: vehicles.seating_capacity,\r\n gvn: vehicles.gvn,\r\n vin: vehicles.vin,\r\n date_license_expiry: this.datePipe.transform(vehicles.date_license_expiry, 'dd/MM/yyyy'),\r\n start_date: this.datePipe.transform(vehicles.start_date, 'dd/MM/yyyy'),\r\n editMode: false,\r\n withoutVehicle: vehicles.vin == null ? true : false,\r\n permit_num: perm.permit_num\r\n }\r\n if(loadType=='load' && this.isAmmendRoute && (!this.dataCntrl.oldPermitStartDate || this.dataCntrl.oldPermitStartDate==null)){\r\n this.dataCntrl.oldPermitStartDate=vehicles.start_date;\r\n }\r\n let permitData: any = permits.filter((map) => { return map.id == vehicles.permit_id });\r\n let days: any = this.dataCntrl.permittype.permit_days;\r\n if (permitData != null && permitData.length > 0) {\r\n if (permitData[0].date_valid_from != null && permitData[0].date_valid_to != null) {\r\n let from_date: any = new Date(permitData[0].date_valid_from);\r\n let to_date: any = new Date(permitData[0].date_valid_to);\r\n\r\n if (from_date != undefined && to_date != undefined) {\r\n days = Math.floor((Date.UTC(to_date.getFullYear(), to_date.getMonth(), to_date.getDate()) - Date.UTC(from_date.getFullYear(), from_date.getMonth(), from_date.getDate())) / (1000 * 60 * 60 * 24));\r\n //console.log(\"------+\" + days);\r\n }\r\n }\r\n }\r\n\r\n object['noOfDays'] = days;\r\n // if (this.renewalFlag == true && loadType == 'load') {\r\n // object.id = -1;\r\n // }\r\n //console.log(object)\r\n // if(this.listvehicles.length === data.vehicle.length){\r\n // //console.log('Its 0')\r\n // this.listvehicles = this.dataCntrl.vehicles ;\r\n // this.pageload = false;\r\n\r\n // return;\r\n // }\r\n if (this.isCorrection === true || this.isDuplicate === true || this.replaceVehicle === true || this.isAmmendRoute) {\r\n object.editMode = true;\r\n }\r\n this.listvehicles.push(object);\r\n this.pageload = false;\r\n\r\n //console.log('Inside first vehicle', this.listvehicles)\r\n\r\n if (this.applicationService.vehicleLoadCount == 0) {\r\n this.applicationService.vehiclesControlTrackChanges = this.listvehicles;\r\n this.applicationService.vehicleLoadCount = 1;\r\n } else {\r\n this.applicationService.vehicleAdded = this.applicationService.vehiclesControlTrackChanges.length != this.listvehicles.length;\r\n }\r\n //console.log(this.applicationService.vehicleAdded);\r\n //console.log(this.listvehicles);\r\n //console.log(this.applicationService.vehiclesControlTrackChanges);\r\n\r\n this.listvehicles.sort(function (a, b) {\r\n if (a.id < b.id) { return -1; }\r\n if (a.id > b.id) { return 1; }\r\n return 0;\r\n })\r\n\r\n this.dataCntrl.vehicles = this.listvehicles;\r\n\r\n // }, error => {\r\n // this.pageload = false;\r\n // //console.log(this.listvehicles);\r\n // this.dataCntrl.vehicles = this.listvehicles;\r\n // })\r\n\r\n }\r\n\r\n //console.log(this.listvehicles)\r\n if (this.replaceVehicle === true){\r\n localStorage.setItem('replacements',JSON.stringify(this.listvehicles));\r\n this.vehicleService.setVehicleReplament(this.listvehicles);\r\n }\r\n localStorage.setItem('checkVehicle',JSON.stringify(this.listvehicles));\r\n\r\n }\r\n\r\n this.pageload = false;\r\n this.dataCntrl.vehicles = this.listvehicles;\r\n\r\n }\r\n\r\n } else {\r\n this.pageload = false;\r\n //console.log(this.listvehicles);\r\n this.dataCntrl.vehicles = this.listvehicles;\r\n\r\n\r\n }\r\n\r\n // this.newListvehicles.push(x)\r\n // //console.log(this.newListvehicles)\r\n // this.dataCntrl.vehicles = this.newListvehicles\r\n // // this.listvehicles = this.dataCntrl.vehicles;\r\n\r\n\r\n\r\n }, error => {\r\n this.pageload = false;\r\n //console.log(this.listvehicles);\r\n this.dataCntrl.vehicles = this.listvehicles;\r\n })\r\n\r\n\r\n }, error => {\r\n this.pageload = false;\r\n //console.log(this.listvehicles);\r\n this.dataCntrl.vehicles = this.listvehicles;\r\n })\r\n\r\n }\r\n sortBy(prop) {\r\n // let newArr = []\r\n // this.listvehicles.forEach((item, index) => {\r\n // if (newArr.findIndex(i => i.id == -1) === -1)\r\n // {\r\n // newArr.push(item)\r\n // }\r\n // });\r\n // this.listvehicles = newArr;\r\n return this.listvehicles.sort((a, b) => a[prop] > b[prop] ? 1 : a[prop] === b[prop] ? 0 : -1);\r\n\r\n }\r\n // ngOnChanges(){\r\n // //console.log(this.dataCntrl.application.permit_type_id);\r\n // this.getVehicleType();\r\n // }\r\n getVehicleType() {\r\n this.isLoading = false;\r\n this.pageload2 = true\r\n this.vehicleTypeService.getPermitTypeVehicles().subscribe(result => {\r\n this.list_vehicle_type = result;//.filter(x => x.permit_type_id === this.dataCntrl.application.permit_type_id);\r\n \r\n this.pageload2 = false;\r\n if (this.list_vehicle_type.length > 0) {\r\n this.btnAddNew = true\r\n }\r\n //console.log(this.btnAddNew)\r\n //console.log(this.list_vehicle_type.length)\r\n this.isLoading = false;\r\n }, error => {\r\n //console.log(error);\r\n this.isLoading = false\r\n this.pageload2 = false;\r\n });\r\n }\r\n\r\n getVehicleMake() {\r\n if (this.list_vehicle_make.length <= 0)\r\n this.vehicleMakeService.getAll().subscribe((result: any) => {\r\n this.list_vehicle_make = result\r\n this.selectedVMake = result.find(x => x.code == 'Unknown');\r\n //console.log(this.selectedVMake)\r\n }, error => {\r\n //console.log(error);\r\n });\r\n }\r\n\r\n setVehicles() {\r\n this.listvehicles = this.dataCntrl.vehicles;\r\n for (let list of this.listvehicles) {\r\n if (this.dataCntrl.isViewEditControl == true) {\r\n //list.editMode=false\r\n } else {\r\n list.editMode = true;\r\n }\r\n }\r\n }\r\n\r\n onVehicleTypeSelected(index) {\r\n if (this.haserror) {\r\n this.haserror = false;\r\n }\r\n let id = this.listvehicles[index].vehicle_type_id;\r\n var obj = this.list_vehicle_type.find(p => p.vehicle_type_id == id);\r\n //console.log(obj);\r\n //console.log(this.list_vehicle_type);\r\n this.listvehicles[index].vehicle_type = obj.vehicle_type;\r\n this.max_pass = obj.passengers_max;\r\n this.min_pass = obj.passengers_min;\r\n //console.log(this.max_pass);\r\n }\r\n\r\n onVehicleMakeSelected(index) {\r\n if (this.haserror === true) {\r\n this.haserror = false;\r\n }\r\n let id = this.listvehicles[index].vehicle_make_id;\r\n var obj = this.list_vehicle_make.find(p => p.id == id);\r\n this.listvehicles[index].vehicle_make = obj.description;\r\n }\r\n\r\n addNew() {\r\n\r\n if (this.renewalFlag) {\r\n this.listvehicles = [];\r\n }\r\n let isValid: boolean = false;\r\n if (this.listvehicles.length > 0) {\r\n this.listvehicles.forEach(element => {\r\n if (element.id == -1) {\r\n this.toastr.error(\"Please save and continue\", \"vehicle\");\r\n isValid = true;\r\n //this.dataCntrl.permittype.one_start_date_reqd\r\n return false;\r\n }\r\n });\r\n }\r\n if (!isValid) {\r\n if (this.dataCntrl.permittype.one_start_date_reqd === true) {\r\n if (this.listvehicles.length > 0) {\r\n this.vehicle = { id: -1, withoutVehicle: true, vehicle_type_id: -1, date_license_expiry: '', vehicle_type: '', vehicle_make_id: -1, vehicle_make: '', is_current: false, registration_number: '', seating_capacity: '', number_passengers: '', gvn: '', vin: '', permit_id: '', editMode: true, start_date: this.listvehicles[0].start_date };\r\n\r\n } else {\r\n this.vehicle = { id: -1, withoutVehicle: true, vehicle_type_id: -1, date_license_expiry: '', vehicle_type: '', vehicle_make_id: -1, vehicle_make: '', is_current: false, registration_number: '', seating_capacity: '', number_passengers: '', gvn: '', vin: '', permit_id: '', editMode: true, start_date: '' };\r\n }\r\n this.editMode = true;\r\n if (this.editMode) {\r\n this.listvehicles.push(this.vehicle);\r\n //this.dateAdapter.toModel(this.ngbCalendar.getToday())!;\r\n } else {\r\n this.disableAdd = true;\r\n }\r\n return\r\n }\r\n this.vehicle = { id: -1, withoutVehicle: true, vehicle_type_id: -1, date_license_expiry: '', vehicle_type: '', vehicle_make_id: -1, vehicle_make: '', is_current: false, registration_number: '', seating_capacity: '', number_passengers: '', gvn: '', vin: '', permit_id: this.dataCntrl.permits.id, editMode: true, start_date: '' };\r\n this.editMode = true;\r\n if (this.editMode) {\r\n this.listvehicles.push(this.vehicle);\r\n //this.dateAdapter.toModel(this.ngbCalendar.getToday())!;\r\n } else {\r\n this.disableAdd = true;\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n confirmVehicleDelete(item) {\r\n \r\n // this.showModal.showYesNo('Delete Vehicle', `Are you sure you want to remove the vehicle with registration ${item.registration_number} from the permit(s) application?`, `You're about to remove a vehicle...`, 'Yes', 'No')\r\n // .subscribe((isConfirmed) => {\r\n // if (isConfirmed) {\r\n // if (item.id > 0) {\r\n // this.deleteVehicle(item);\r\n // this.vehicleService.removeVehicle(item.id).subscribe(x => { \r\n // console.log(x);\r\n // })\r\n // }\r\n\r\n // } else {\r\n // return;\r\n // }\r\n // });\r\n this.confirmDialogService.confirmThis(`Are you sure you want to remove the vehicle with registration ${item.registration_number} from the permit(s) application?`, () => { \r\n \r\n if (item.id > 0) {\r\n this.deleteVehicle(item);\r\n this.vehicleService.removeVehicle(item.id).subscribe(x => { \r\n console.log(x);\r\n })\r\n }\r\n \r\n }, () => { \r\n return;\r\n }) \r\n }\r\n alertError(message) {\r\n this.showModal.showAlert('Vehicle', message)\r\n }\r\n\r\n deleteVehicle(item) {\r\n const index: number = this.listvehicles.indexOf(item);\r\n if (index !== -1) {\r\n this.listvehicles.splice(index, 1);\r\n \r\n localStorage.removeItem('checkVehicle'); \r\n if (this.listvehicles.length > 0) {\r\n localStorage.setItem('checkVehicle', JSON.stringify(this.listvehicles));\r\n }\r\n\r\n \r\n //var perm = this.dataCntrl.permits.findIndex()\r\n let pIndex = this.dataCntrl.permits.findIndex(x=>x.id == item.permit_id);\r\n \r\n if (pIndex !== -1) {\r\n this.dataCntrl.permits.splice(pIndex, 1);\r\n }\r\n }\r\n\r\n if (this.listvehicles.length <= 0) {\r\n this.dataCntrl.formValid = false;\r\n }\r\n }\r\n\r\n editVehicle(item) {\r\n const index: number = this.listvehicles.indexOf(item);\r\n if (index !== -1) {\r\n this.listvehicles[index].editMode = true;\r\n // let date:any=item.date_license_expiry;\r\n // let year:any=parseInt(date.split(\"-\")[0]);\r\n // let month:any=parseInt(date.split(\"-\")[1]);\r\n // let day:any=parseInt(date.split(\"-\")[2]);\r\n // return this.dateAdapter.toModel({year:year,month:month,day:day});\r\n }\r\n }\r\n numberOnly(event): boolean {\r\n const charCode = (event.which) ? event.which : event.keyCode;\r\n if (charCode > 31 && (charCode < 48 || charCode > 57)) {\r\n return false;\r\n }\r\n return true;\r\n\r\n }\r\n\r\n maxValue(event, item): boolean {\r\n const max = event.target.value;\r\n if (Number(max + \"\" + event.key) > item.seating_capacity) {\r\n event.target.value = max;\r\n return false;\r\n }\r\n return true;\r\n\r\n }\r\n\r\n vehicleSave(item) {\r\n //this.saveVehicle(item);\r\n }\r\n validatePassenger(id,item){\r\n\r\n this.vehicleTypeService.getById(id).subscribe((result:any) => {\r\n let item_ = result;\r\n //console.log(item_)\r\n if (item.number_passengers > item_.passengers_max) {\r\n this.pageload = false;\r\n return this.toastr.warning(\"Maximum number of passengers for this vehicle type is \" + item_.passengers_max);\r\n }\r\n }, error => {\r\n //console.log(error);\r\n\r\n });\r\n\r\n\r\n }\r\n saveVehicle(item, getIndex) {\r\n //console.log(item);\r\n // this.getVehicleType();\r\n // let expiryDate:any=\"\"\r\n // if(item.date_license_expiry!=null && item.date_license_expiry!=\"\"){\r\n // expiryDate=item.date_license_expiry.split(\"-\")[2]+\"/\"+item.date_license_expiry.split(\"-\")[1]+\"/\"+item.date_license_expiry.split(\"-\")[0];\r\n // }\r\n // let startDate:any=\"\"\r\n // if(item.start_date!=null && item.start_date!=\"\"){\r\n // startDate=item.start_date.split(\"-\")[2]+\"/\"+item.start_date.split(\"-\")[1]+\"/\"+item.start_date.split(\"-\")[0];\r\n // }\r\n // let dateFrom:any=\"\"\r\n // if(item.date_from!=null && item.date_from!=\"\"){\r\n // dateFrom=item.date_from.split(\"-\")[2]+\"/\"+item.date_from.split(\"-\")[1]+\"/\"+item.date_from.split(\"-\")[0];\r\n // }\r\n if (this.dataCntrl.permittype.can_specify_duration) {\r\n if (parseInt(item.noOfDays) > this.max_limit) {\r\n this.pageload = false;\r\n return this.toastr.warning('Number of Days Should not exceed the limit ' + this.max_limit);\r\n }\r\n }\r\n\r\n\r\n\r\n let newDate1;\r\n //console.log(item.date_license_expiry);\r\n if (!item.date_license_expiry) {\r\n item.date_license_expiry = null;\r\n }\r\n if (!item.start_date) {\r\n item.start_date = null;\r\n }\r\n if (item.date_license_expiry != null) {\r\n let date = item.date_license_expiry.split('/');\r\n let day = parseInt(date[0], 10);\r\n let month = parseInt(date[1], 10);\r\n let year = parseInt(date[2], 10);\r\n let newDate = year + '/' + month + '/' + day;\r\n newDate1 = new Date(newDate);\r\n newDate1.setDate(newDate1.getDate() + 1);\r\n }\r\n let newDate2;\r\n if (item.start_date != null) {\r\n let date2 = item.start_date.split('/');\r\n let day2 = parseInt(date2[0], 10);\r\n let month2 = parseInt(date2[1], 10);\r\n let year2 = parseInt(date2[2], 10);\r\n let newDate10 = year2 + '/' + month2 + '/' + day2;\r\n newDate2 = new Date(newDate10);\r\n newDate2.setDate(newDate2.getDate() + 1);\r\n\r\n }\r\n if(this.isDuplicate || this.isAmmendRoute || this.replaceVehicle || this.isCorrection || this.router.url.indexOf('edit')>0){\r\n this.dataCntrl.permits.forEach(permit => {\r\n if(permit.id == item.permit_id)\r\n { \r\n \r\n // permit.id = item.permit_id;\r\n permit.date_11 = newDate2;\r\n permit.number_passengers = item.number_passengers;\r\n \r\n this.updatePermitStartDate(permit, item.noOfDays);\r\n return false;\r\n }\r\n });\r\n }\r\n\r\n let object = {\r\n id: item.id,\r\n vehicle_type_id: item.vehicle_type_id,\r\n vehicle_type: item.vehicle_type,\r\n vehicle_make_id: this.selectedVMake.id,\r\n vehicle_make: this.selectedVMake.description,\r\n is_current: true,\r\n registration_number: !item.withoutVehicle ? this.eNatisData.registration_number : null,\r\n registration_year: !item.withoutVehicle ? this.eNatisData.registration_year : null,\r\n vehicle_entry_id: !item.withoutVehicle ? this.eNatisData.vehicle_entry_id : null,\r\n vehicle_owner: !item.withoutVehicle ? this.eNatisData.vehicle_owner : null,\r\n vehicle_colour: !item.withoutVehicle ? this.eNatisData.vehicle_colour : null,\r\n vehicle_model: !item.withoutVehicle ? this.eNatisData.vehicle_model : null,\r\n seating_capacity: !item.withoutVehicle ? this.eNatisData.seating_capacity : null,\r\n number_passengers: item.number_passengers,\r\n gvn: !item.withoutVehicle ? this.eNatisData.gvn : null,\r\n vin: !item.withoutVehicle ? this.eNatisData.vin : null,\r\n permit_id: 0,\r\n noOfDays: item.noOfDays,\r\n date_license_expiry: !item.withoutVehicle ? this.eNatisData.date_license_expiry !== null ? this.datePipe.transform(this.eNatisData.date_license_expiry) : newDate1 : null,\r\n start_date: newDate2,// this.datePipe.transform(item.start_date),\r\n // date_from:dateFrom,\r\n date_modified: new Date(),\r\n date_created: new Date(),\r\n user_modified: item.user_created = environment.authWebApi.userData.User.FirstName,\r\n editMode: true\r\n }\r\n // object.date_license_expiry= this.datePipe.transform(item.date_license_expiry);\r\n // object.start_date=this.datePipe.transform(item.start_date);\r\n if(this.isDuplicate || this.isAmmendRoute || this.replaceVehicle){\r\n object.gvn=item.gvn;\r\n object.date_license_expiry=newDate1;\r\n object.registration_number=item.registration_number\r\n }\r\n\r\n \r\n this.dataCntrl.vehicles = [];\r\n if (item.id == -1) {\r\n let check = this.listvehicles.filter(x => x.id != -1 && x.registration_number == item.registration_number && x.registration_number != '');\r\n if (check.length > 0 && !this.renewalFlag) {\r\n //console.log(check);\r\n this.pageload = false;\r\n return this.toastr.warning('Vehicle Already Exists! Please Enter A Different Vehicle.', 'Vehicle Registration Number')\r\n }\r\n\r\n if (this.dataCntrl.permittype.temp_long_ind === 2) {\r\n if (object.start_date === null || object.start_date === undefined) {\r\n // return this.alertError('Start Date Is Required.')\r\n this.pageload = false;\r\n return this.toastr.warning('Start Date Is Required.', 'Start Date')\r\n }\r\n\r\n if (!object.vehicle_type) {\r\n // return this.alertError('Vehicle Type Is Required.')\r\n this.pageload = false;\r\n return this.toastr.warning('Vehicle Type Is Required.', 'Vehicle Type')\r\n }\r\n\r\n\r\n\r\n }\r\n // if(this.dataCntrl.permittype.freight_passenger_ind === 2){\r\n\r\n // if(!object.start_date){\r\n // // return this.alertError('Start Date Is Required.')\r\n // return this.toastr.warning('Start Date Is Required.','Start Date')\r\n // }\r\n // if(!object.vehicle_type){\r\n // // return this.alertError('Vehicle Type Is Required.')\r\n // return this.toastr.warning('Vehicle Type Is Required.','Vehicle Type')\r\n // }\r\n // if(!object.seating_capacity){\r\n // // return this.alertError('Vehicle Seating Capacity Is Required.')\r\n // return this.toastr.warning('Vehicle Seating Capacity Is Required.','Vehicle Seating Capacity')\r\n // }\r\n\r\n // }\r\n if (this.dataCntrl.permittype.temp_long_ind === 1) {\r\n if (object.start_date === null || object.start_date === undefined) {\r\n // return this.alertError('Start Date Is Required.')\r\n this.pageload = false;\r\n return this.toastr.warning('Start Date Is Required.', 'Start Date')\r\n }\r\n if (!object.vehicle_type) {\r\n // return this.alertError('Vehicle Type Is Required.')\r\n this.pageload = false;\r\n return this.toastr.warning('Vehicle Type Is Required.', 'Vehicle Type')\r\n }\r\n if (!item.withoutVehicle) {\r\n if (!object.registration_number) {\r\n // return this.alertError('Vehicle Registration Number Is Required.')\r\n this.pageload = false;\r\n return this.toastr.warning('Vehicle Registration Number Is Required.', 'Vehicle Registration Number')\r\n }\r\n\r\n if (!object.gvn) {\r\n // return this.alertError('Vehicle GVM Is Required.');\r\n this.pageload = false;\r\n return this.toastr.warning('Vehicle GVM Is Required.', 'Vehicle GVM')\r\n }\r\n if (!object.vin) {\r\n // return this.alertError('Vehicle VIN Is Required.')\r\n this.pageload = false;\r\n return this.toastr.warning('Vehicle VIN Is Required.', 'Vehicle VIN')\r\n }\r\n if (object.vin.length !== 17) {\r\n // return this.alertError('Vehicle VIN Is Required.')\r\n this.pageload = false;\r\n return this.toastr.warning('VIN should be 17 alphanumeric characters.', 'Vehicle VIN')\r\n }\r\n if (object.date_license_expiry === null || object.date_license_expiry === undefined) {\r\n // return this.alertError('Date License Expiry Is Required.')\r\n this.pageload = false;\r\n return this.toastr.warning('Date License Expiry Is Required.', 'Date License Expiry')\r\n }\r\n }\r\n // if(!object.date_from){\r\n // return this.toastr.warning('Date From Is Required.','Date From')\r\n\r\n // }\r\n\r\n\r\n\r\n }\r\n this.haserror = false;\r\n item.editMode = false;\r\n this.disableAdd = false;\r\n this.dataCntrl.formValid = true;\r\n const index: number = this.listvehicles.indexOf(item);\r\n this.listvehicles[index] = item;\r\n //save vehicle\r\n this.pageload = true;\r\n \r\n if (item.withoutVehicle) {\r\n object['noOfDays'] = 14;\r\n }\r\n\r\n if (getIndex == 0) {\r\n \r\n this.dataCntrl.permits.forEach(permit => {\r\n if(permit.id == item.permit_id) \r\n {\r\n permit.date_11 = object.start_date;\r\n permit.number_passengers = object.number_passengers;\r\n this.permitService.putAppPermit(permit, object['noOfDays']).subscribe((result:any) => {\r\n //console.log(result);\r\n // this.dataCntrl.permit = result;\r\n\r\n object.permit_id = result.id\r\n //console.log(object.permit_id);\r\n this.vehicleService.updateVehicle(object).subscribe(result => {\r\n setTimeout(() => { this.getSavedVehicleByPermit(''); }, 400);\r\n //console.log(result);\r\n // this.dataCntrl.vehicles = result;\r\n this.tabload = false;\r\n this.toastr.success('Saved Vehicle Successfully', 'Vehicle');\r\n\r\n\r\n if (this.isSaveAndCon == true) {\r\n this.dataCntrl.isSaveAndCon = true;\r\n this.applicationService.setTab(3);\r\n\r\n }\r\n const index: number = this.listvehicles.indexOf(item);\r\n // if(index!=null && index!=undefined && index!=-1){\r\n // this.listvehicles[index].id=result.id;\r\n // }\r\n this.dataCntrl.vehicles = this.listvehicles;\r\n // this.updateVehiclelist(result);\r\n },\r\n error => {\r\n this.pageload = false;\r\n this.tabload = false;\r\n // this.showModal.showError('Save Application','Failed to save application. If the problem persist, please contact system administrator.',error);\r\n this.toastr.error('Failed to save application. If the problem persist, please contact system administrator.', 'Vehicle');\r\n\r\n return;\r\n });\r\n });\r\n }\r\n });\r\n } else {\r\n \r\n this.dataCntrl.permits.forEach(permit => {\r\n if(permit.id == item.permit_id)\r\n {\r\n \r\n this.permitService.postAppPermit(permit, object['noOfDays']).subscribe((result:any) => {\r\n //console.log(result);\r\n // this.dataCntrl.permit = result;\r\n this.updatePermit(result);\r\n object.permit_id = result.id\r\n //console.log(object.permit_id);\r\n this.vehicleService.updateVehicle(object).subscribe(result => {\r\n setTimeout(() => { this.getSavedVehicleByPermit(''); }, 400);\r\n //console.log(result);\r\n // this.dataCntrl.vehicles = result;\r\n this.tabload = false;\r\n this.toastr.success('Saved Vehicle Successfully', 'Vehicle');\r\n \r\n \r\n if (this.isSaveAndCon == true) {\r\n this.dataCntrl.isSaveAndCon = true;\r\n this.applicationService.setTab(3);\r\n \r\n }\r\n const index: number = this.listvehicles.indexOf(item);\r\n // if(index!=null && index!=undefined && index!=-1){\r\n // this.listvehicles[index].id=result.id;\r\n // }\r\n this.dataCntrl.vehicles = this.listvehicles;\r\n // this.updateVehiclelist(result);\r\n },\r\n error => {\r\n this.pageload = false;\r\n this.tabload = false;\r\n // this.showModal.showError('Save Application','Failed to save application. If the problem persist, please contact system administrator.',error);\r\n this.toastr.error('Failed to save application. If the problem persist, please contact system administrator.', 'Vehicle');\r\n \r\n return;\r\n });\r\n });\r\n }\r\n \r\n });\r\n \r\n }\r\n\r\n\r\n } else {\r\n \r\n if (this.dataCntrl.permittype.temp_long_ind === 2) {\r\n if (object.start_date === null || object.start_date === undefined) {\r\n // return this.alertError('Start Date Is Required.')\r\n this.pageload = false;\r\n return this.toastr.warning('Start Date Is Required.', 'Start Date')\r\n\r\n }\r\n if (!object.vehicle_type) {\r\n // return this.alertError('Vehicle Type Is Required.')\r\n this.pageload = false;\r\n return this.toastr.warning('Vehicle Type Is Required.', 'Vehicle Type')\r\n }\r\n\r\n }\r\n // if(this.dataCntrl.permittype.freight_passenger_ind === 2){\r\n // if(!object.start_date){\r\n // // return this.alertError('Start Date Is Required.')\r\n // return this.toastr.warning('Start Date Is Required.','Start Date')\r\n // }\r\n // if(!object.vehicle_type){\r\n // // return this.alertError('Vehicle Type Is Required.')\r\n // return this.toastr.warning('Vehicle Type Is Required.','Vehicle Type')\r\n // }\r\n // if(!object.seating_capacity){\r\n // // return this.alertError('Vehicle Seating Capacity Is Required.')\r\n // return this.toastr.warning('Vehicle Seating Capacity Is Required.','Vehicle Seating Capacity')\r\n // }\r\n\r\n // }\r\n if (this.dataCntrl.permittype.temp_long_ind === 1) {\r\n if (object.start_date === null || object.start_date === undefined) {\r\n // return this.alertError('Start Date Is Required.')\r\n this.pageload = false;\r\n return this.toastr.warning('Start Date Is Required.', 'Start Date')\r\n }\r\n if (!object.vehicle_type) {\r\n // return this.alertError('Vehicle Type Is Required.')\r\n this.pageload = false;\r\n return this.toastr.warning('Vehicle Type Is Required.', 'Vehicle Type')\r\n }\r\n if (!item.withoutVehicle) {\r\n if (!object.registration_number) {\r\n // return this.alertError('Vehicle Registration Number Is Required.')\r\n this.pageload = false;\r\n return this.toastr.warning('Vehicle Registration Number Is Required.', 'Vehicle Registration Number')\r\n }\r\n // if(!object.seating_capacity){\r\n // return this.toastr.warning('Vehicle Seating Capacity Is Required.','Vehicle Seating Capacity')\r\n // }\r\n if (!object.gvn) {\r\n // return this.alertError('Vehicle GVN Is Required.')\r\n this.pageload = false;\r\n return this.toastr.warning('Vehicle GVM Is Required.', 'Vehicle GVM')\r\n }\r\n if (!object.vin) {\r\n // return this.alertError('Vehicle VIN Is Required.')\r\n this.pageload = false;\r\n return this.toastr.warning('Vehicle VIN Is Required.', 'Vehicle VIN')\r\n }\r\n // if(object.vin.length !== 17){\r\n // // return this.alertError('Vehicle VIN Is Required.')\r\n // this.pageload = false;\r\n // return this.toastr.warning('VIN should be 17 alphanumeric characters.','Vehicle VIN')\r\n // }\r\n if (object.date_license_expiry === null || object.date_license_expiry === undefined) {\r\n // return this.alertError('Date License Expiry Is Required.')\r\n this.pageload = false;\r\n return this.toastr.warning('Date License Expiry Is Required.', 'Date License Expiry')\r\n }\r\n }\r\n // if(!object.date_from){\r\n // return this.toastr.warning('Date From Is Required.','Date From')\r\n\r\n // }\r\n\r\n\r\n\r\n }\r\n this.haserror = false;\r\n item.editMode = false;\r\n this.disableAdd = false;\r\n this.dataCntrl.formValid = true;\r\n const index: number = this.listvehicles.indexOf(item);\r\n\r\n this.listvehicles[index] = item;\r\n\r\n //save vehicle\r\n this.pageload = true;\r\n\r\n //Start Date update\r\n if (this.listvehicles.length > 0) {\r\n if (this.dataCntrl.permittype.one_start_date_reqd === true) {\r\n\r\n if (index === 0) {\r\n\r\n for (let i = 0; i < this.listvehicles.length; i++) {\r\n this.listvehicles[i].start_date = object.start_date;\r\n\r\n let date = this.listvehicles[i].date_license_expiry.split('/');\r\n let day = parseInt(date[0], 10);\r\n let month = parseInt(date[1], 10);\r\n let year = parseInt(date[2], 10);\r\n let newDate = year + '/' + month + '/' + day;\r\n newDate1 = new Date(newDate);\r\n newDate1.setDate(newDate1.getDate() + 1);\r\n\r\n this.listvehicles[i].date_license_expiry = newDate1\r\n\r\n\r\n\r\n }\r\n //console.log(this.listvehicles)\r\n this.vehicleService.postVehicleStartDate(this.listvehicles).subscribe(x => {\r\n //console.log(x);\r\n this.tabload = false;\r\n this.toastr.success('Saved Vehicle Successfully', 'Vehicle');\r\n this.getSavedVehicleByPermit('');\r\n\r\n }, erro => {\r\n //console.log(erro);\r\n return\r\n\r\n })\r\n\r\n\r\n\r\n\r\n\r\n\r\n // return this.updateByStartDate(this.listvehicles);\r\n }\r\n\r\n }\r\n }\r\n if (this.dataCntrl.permittype.one_start_date_reqd === false) {\r\n //console.log(item)\r\n // let object = {\r\n // id: item.id,\r\n // vehicle_type_id: item.vehicle_type_id,\r\n // vehicle_type:item.vehicle_type,\r\n // vehicle_make_id: this.selectedVMake.id,\r\n // vehicle_make: this.selectedVMake.description,\r\n // is_current: true,\r\n // registration_number: item.registration_number,\r\n // // seating_capacity: item.seating_capacity,\r\n // number_passengers: item.number_passengers,\r\n // gvn: item.gvn,\r\n // vin: item.vin,\r\n // permit_id : item.permit_id,\r\n // date_license_expiry:newDate1,// this.datePipe.transform(item.date_license_expiry),\r\n // start_date:newDate2,// this.datePipe.transform(item.start_date),\r\n // // date_from:dateFrom,\r\n // date_modified : new Date(),\r\n // date_created : new Date(),\r\n // user_modified : item.user_created = environment.authWebApi.userData.User.FirstName,\r\n // editMode:true\r\n // }\r\n let object = {\r\n id: item.id,\r\n vehicle_type_id: item.vehicle_type_id,\r\n vehicle_type: item.vehicle_type,\r\n vehicle_make_id: this.selectedVMake.id,\r\n vehicle_make: this.selectedVMake.description,\r\n is_current: true,\r\n registration_number: !item.withoutVehicle ? this.eNatisData.registration_number : null,\r\n registration_year: !item.withoutVehicle ? this.eNatisData.registration_year : null,\r\n vehicle_entry_id: !item.withoutVehicle ? this.eNatisData.vehicle_entry_id : null,\r\n vehicle_owner: !item.withoutVehicle ? this.eNatisData.vehicle_owner : null,\r\n vehicle_colour: !item.withoutVehicle ? this.eNatisData.vehicle_colour : null,\r\n vehicle_model: !item.withoutVehicle ? this.eNatisData.vehicle_model : null,\r\n seating_capacity: !item.withoutVehicle ? this.eNatisData.seating_capacity : null,\r\n number_passengers: item.number_passengers,\r\n gvn: !item.withoutVehicle ? this.eNatisData.gvn : null,\r\n vin: !item.withoutVehicle ? this.eNatisData.vin : null,\r\n permit_id: item.permit_id,\r\n noOfDays: item.noOfDays,\r\n date_license_expiry: !item.withoutVehicle ? this.eNatisData.date_license_expiry !== null ? this.datePipe.transform(this.eNatisData.date_license_expiry) : newDate1 : null,//newDate1,// this.datePipe.transform(item.date_license_expiry),\r\n start_date: newDate2,// this.datePipe.transform(item.start_date),\r\n // date_from:dateFrom,\r\n date_modified: new Date(),\r\n date_created: new Date(),\r\n user_modified: item.user_created = environment.authWebApi.userData.User.FirstName,\r\n editMode: true\r\n }\r\n\r\n\r\n\r\n\r\n this.dataCntrl.permits.forEach(permit => {\r\n \r\n if(permit.id == item.permit_id)\r\n {\r\n \r\n permit.date_11 = object.start_date;\r\n permit.number_passengers = object.number_passengers;\r\n permit.id = object.permit_id;\r\n \r\n \r\n this.permitService.putAppPermit(permit, object['noOfDays']).subscribe(prm => {\r\n \r\n this.permitService.upadatePermit(permit).subscribe((result:any) => {\r\n // this.dataCntrl.permit = result;\r\n object.permit_id = result.id\r\n //console.log(object.permit_id);\r\n this.vehicleService.updateVehicle(object).subscribe((result:any) => {\r\n // setTimeout(()=>{this.getSavedVehicleByPermit('');},400);\r\n //console.log(result);\r\n // this.listvehicles.push(result);\r\n // this.dataCntrl.vehicles = result;\r\n let days: any = this.noOfDays;\r\n if (result != null) {\r\n let from_date: any = new Date(result.date_valid_from);\r\n let to_date: any = new Date(result.date_valid_to);\r\n \r\n if (from_date != undefined && to_date != undefined) {\r\n days = Math.floor((Date.UTC(to_date.getFullYear(), to_date.getMonth(), to_date.getDate()) - Date.UTC(from_date.getFullYear(), from_date.getMonth(), from_date.getDate())) / (1000 * 60 * 60 * 24));\r\n //console.log(\"------+\" + days);\r\n }\r\n }\r\n \r\n object['noOfDays'] = days;\r\n this.pageload = false;\r\n this.tabload = false;\r\n this.toastr.success('Updated Vehicle Successfully', 'Vehicle');\r\n \r\n \r\n if (this.isSaveAndCon == true) {\r\n this.dataCntrl.isSaveAndCon = true;\r\n this.applicationService.setTab(3);\r\n \r\n }\r\n\r\n const index: number = this.listvehicles.indexOf(item);\r\n // if(index!=null && index!=undefined && index!=-1){\r\n // this.listvehicles[index].id=result.id;\r\n // }\r\n this.dataCntrl.vehicles = this.listvehicles;\r\n // this.updateVehiclelist(result);\r\n },\r\n error => {\r\n this.pageload = false;\r\n this.tabload = false;\r\n // this.showModal.showError('Save Application','Failed to save application. If the problem persist, please contact system administrator.',error);\r\n this.toastr.error('Failed to save application. If the problem persist, please contact system administrator.', 'Vehicle');\r\n \r\n return;\r\n });\r\n });\r\n });\r\n }\r\n \r\n });\r\n \r\n \r\n }\r\n\r\n\r\n }\r\n // }\r\n }\r\n\r\n\r\n cancelVehicle(item) {\r\n this.pageload = true;\r\n //console.log(item)\r\n if (item.id == -1) {\r\n const index: number = this.listvehicles.indexOf(item);\r\n if (index !== -1) {\r\n this.listvehicles.splice(index, 1);\r\n }\r\n this.disableAdd = false;\r\n } else {\r\n item.editMode = false;\r\n this.disableAdd = false;\r\n }\r\n this.pageload = false;\r\n }\r\n\r\n saveVehicles() {\r\n this.pageload = true;\r\n this.tabload = true;\r\n this.isSaveAndCon = true;\r\n this.dataCntrl.isSaveAndCon = true;\r\n this.dataCntrl.isVehicleSave = true;\r\n\r\n if(!this.isDuplicate && !this.replaceVehicle && !this.isAmmendRoute && !this.isCorrection){\r\n for (let i = 0; i < this.listvehicles.length; i++) {\r\n if (this.listvehicles[i].number_passengers <= 0) {\r\n this.pageload = false;\r\n return this.toastr.warning('The vehicle with registration ' + this.listvehicles[i].registration_number + ' can not have zero or less passengers')\r\n } else {\r\n // Task 35 - 2021-05-28\r\n // Validate the vehicle number of passengers against the maximum number of passengers for the vehicle type\r\n let id = this.listvehicles[i].vehicle_type_id;\r\n var obj = this.list_vehicle_type.find(p => p.vehicle_type_id == id);\r\n if (obj != undefined && obj != null) {\r\n if (this.listvehicles[i].number_passengers > obj.passengers_max) {\r\n this.toastr.warning(`Maximum number of passengers for this vehicle type is ${obj.passengers_max}`, `${this.listvehicles[i].registration_number}`);\r\n this.editVehicle(this.listvehicles[i]);\r\n this.pageload = false;\r\n return\r\n }\r\n } else {\r\n this.toastr.warning(`There was a problem adding vehicle ${this.listvehicles[i].registration_number} to the permit application. Please try reloading the vehicle...`, `Add Vehicle(s)`);\r\n this.pageload = false;\r\n return\r\n }\r\n }\r\n }\r\n }\r\n \r\n for (let i = 0; i < this.listvehicles.length; i++) {\r\n if (this.listvehicles[i].id === -1 && !this.renewalFlag) {\r\n this.pageload = false;\r\n return this.toastr.warning('You have unsaved vehicle! Please save it.');\r\n }\r\n if (this.renewalFlag && this.listvehicles[i].id == -1) {\r\n \r\n this.eNatisCheck(this.listvehicles[i], i);\r\n //this.saveVehicle(this.listvehicles[i], i);\r\n }\r\n if(this.isDuplicate || this.replaceVehicle || this.isAmmendRoute || this.isCorrection || this.router.url.indexOf('edit')>0 ){\r\n \r\n this.eNatisCheck(this.listvehicles[i], i);\r\n //this.saveVehicle(this.listvehicles[i],i);\r\n }\r\n }\r\n if (this.listvehicles.length <= 0) {\r\n // this.listvehicles.forEach(element=>{\r\n // this.saveVehicle(element);\r\n // });\r\n if (this.dataCntrl.permittype.temp_long_ind === 1 || (this.dataCntrl.permittype.temp_long_ind === 2 && this.dataCntrl.permittype.freight_passenger_ind === 1) || this.dataCntrl.application.status_id == this.permitStatus13) {\r\n this.pageload = false;\r\n return this.toastr.warning('Please add a vehicle to continue');\r\n\r\n }\r\n }\r\n \r\n \r\n\r\n if (this.dataCntrl.permit !== undefined && this.dataCntrl.permit!== null && this.dataCntrl.permits.length > 0) {\r\n if (this.replaceVehicle) {\r\n const nextPos = this.utility.nextTabPosition(this.utility.sequenceNumbers.motivationNum);\r\n this.applicationService.setTab(nextPos);\r\n } else {\r\n \r\n this.applicationService.setTab(3);\r\n }\r\n }\r\n\r\n //console.log(this.dataCntrl.vehicles);\r\n if (this.dataCntrl.application.id !== null && this.dataCntrl.application.id !== undefined) {\r\n if (!this.haserror) {\r\n // return this.applicationService.setTab(3);\r\n }\r\n\r\n }\r\n this.dataCntrl.vehicles.forEach(element => {\r\n\r\n //element.permit_id = this.dataCntrl.permits.id;\r\n element.date_modified = element.date_created = new Date();\r\n element.user_modified = element.user_created = environment.authWebApi.userData.User.Username;\r\n });\r\n if (this.dataCntrl.application.id == undefined) {\r\n //this.saveApplication();\r\n this.pageload = false;\r\n this.toastr.warning('Please select permit type to continue');\r\n\r\n } else {\r\n this.pageload = false;\r\n if (!this.haserror) {\r\n // this.applicationService.setTab(3);\r\n }\r\n\r\n // this.vehicleService.postVehicle(this.dataCntrl.vehicles)\r\n // .subscribe(result => {\r\n // this.pageload = false;\r\n // this.dataCntrl.vehicles = result;\r\n // this.tabload = false;\r\n // this.toastr.success('Saved Vehicle Successfully','Vehicle');\r\n // this.updateVehiclelist(result);\r\n // },\r\n // error => {\r\n // this.pageload = false;\r\n // this.tabload = false;\r\n // // this.showModal.showError('Save Application','Failed to save application. If the problem persist, please contact system administrator.',error);\r\n // this.toastr.error('Failed to save application. If the problem persist, please contact system administrator.','Vehicle');\r\n\r\n // return;\r\n // });\r\n }\r\n \r\n // }, 7000);\r\n }\r\n\r\n UpdateVehicle() {\r\n this.dataCntrl.vehicles.forEach(element => {\r\n element.permit_id = this.dataCntrl.permits.id;\r\n element.date_modified = element.date_created = new Date();\r\n element.user_modified = element.user_created = environment.authWebApi.userData.User.Username;\r\n });\r\n this.vehicleService.updateVehicle(this.dataCntrl.vehicles).subscribe(result => {\r\n this.pageload = false;\r\n this.dataCntrl.vehicles = result;\r\n this.tabload = false;\r\n this.toastr.success('Saved Vehicle Successfully', 'Vehicle');\r\n // this.updateVehiclelist(result);\r\n //this.getApplication();\r\n\r\n },\r\n error => {\r\n this.pageload = false;\r\n this.tabload = false;\r\n // this.showModal.showError('Save Application','Failed to save application. If the problem persist, please contact system administrator.',error);\r\n this.toastr.error('Failed to save application. If the problem persist, please contact system administrator.', 'Vehicle');\r\n\r\n return;\r\n })\r\n }\r\n updateVehiclelist(data) {\r\n this.setVehicles();\r\n this.applicationService.setTab(3);\r\n this.utility.confirmCtrl = true;\r\n }\r\n backtoPermit() {\r\n this.router.navigate(['/carrier/permit/application/edit/' + this.dataCntrl.application.id]);\r\n this.applicationService.setTab(1);\r\n }\r\n cancelApplication() {\r\n let prevUrl = localStorage.getItem('previousUrl');\r\n if (prevUrl.search('/permit/approval') != -1) {\r\n this.router.navigate(['/permit/approval/']);\r\n } else if (prevUrl.search('/carrier/permit/application/mypermits') != -1) {\r\n this.router.navigate(['/carrier/permit/application/mypermits/',this.dataCntrl.carrierID]);\r\n } else {\r\n this.router.navigate(['/carrier/permit/application/',this.dataCntrl.carrierID]);\r\n }\r\n }\r\n // if (this.dataCntrl.application.id == undefined && this.dataCntrl.application.id == null) {\r\n // this.router.navigate(['/carrier/permit/application/' + this.dataCntrl.carrierID]);\r\n // } else {\r\n // this.showModal.showYesNo('Delete Application', 'Are you sure you want to delete?', `You're about to delete application`, 'Yes', 'No')\r\n // .subscribe((isConfirmed) => {\r\n // if (isConfirmed) {\r\n // this.deleteApplication()\r\n // } else {\r\n // return;\r\n // }\r\n // });\r\n // }\r\n // }\r\n deleteApplication() {\r\n //console.log(\"delete application\");\r\n this.pageload = true;\r\n\r\n this.permitService.deletePermit(this.dataCntrl.permits.id).subscribe(x => {\r\n //console.log(x);\r\n this.deleteApp(this.dataCntrl.application.id);\r\n this.pageload = false;\r\n\r\n this.router.navigate(['/carrier/permit/application/' + this.dataCntrl.carrierID]);\r\n\r\n })\r\n //this.dataCntrl.application.id\r\n //this.dataCntrl.permits.id\r\n }\r\n deletePermit(id) {\r\n this.permitService.deletePermit(id).subscribe(x => {\r\n //console.log(x);\r\n })\r\n\r\n }\r\n deleteApp(id) {\r\n this.applicationService.deleteApplication(id).subscribe(x => {\r\n //console.log(x);\r\n })\r\n }\r\n viewdate(date) {\r\n if (date != null) {\r\n let year: any = date.split(\"-\")[0];\r\n let month: any = date.split(\"-\")[1];\r\n let day: any = date.split(\"-\")[2];\r\n return { year: year, month: month, day: day };\r\n }\r\n }\r\n updateVehicle(object, item) {\r\n this.vehicleService.updateVehicle(object).subscribe((result:any) => {\r\n setTimeout(() => { this.getSavedVehicleByPermit(''); }, 400);\r\n //console.log(result);\r\n // this.dataCntrl.vehicles = result;\r\n this.tabload = false;\r\n this.toastr.success('Saved Permit & Vehicle Successfully', 'Permit & Vehicle');\r\n\r\n if (this.isSaveAndCon == true) {\r\n this.applicationService.setTab(3);\r\n\r\n }\r\n const index: number = this.listvehicles.indexOf(item);\r\n if (index != null && index != undefined && index != -1) {\r\n this.listvehicles[index].id = result.id;\r\n }\r\n this.dataCntrl.vehicles = this.listvehicles;\r\n // this.updateVehiclelist(result);\r\n },\r\n error => {\r\n this.pageload = false;\r\n this.tabload = false;\r\n // this.showModal.showError('Save Application','Failed to save application. If the problem persist, please contact system administrator.',error);\r\n this.toastr.error('Failed to save application. If the problem persist, please contact system administrator.', 'Vehicle');\r\n\r\n return;\r\n });\r\n }\r\n updateByStartDate(object) {\r\n\r\n this.vehicleService.postVehicleStartDate(object).subscribe(result => {\r\n //console.log(result);\r\n // this.dataCntrl.vehicles = result;\r\n setTimeout(() => { this.getSavedVehicleByPermit(''); }, 400);\r\n this.tabload = false;\r\n this.toastr.success('Saved Permit & Vehicle Successfully', 'Permit & Vehicle');\r\n\r\n }, erro => {\r\n //console.log(erro);\r\n\r\n })\r\n }\r\n UpdateDeletePermit() { \r\n this.pageload = true;\r\n this.permitService.deleteRouteDoc(this.dataCntrl.permits.id).subscribe(x => {\r\n //console.log(x);\r\n //console.log(this.listvehicles)\r\n for (let i = 0; i < this.listvehicles.length; i++) {\r\n\r\n let date = this.listvehicles[i].date_license_expiry.split('/');\r\n let day = parseInt(date[0], 10) + 1;\r\n let month = parseInt(date[1], 10);\r\n let year = parseInt(date[2], 10);\r\n let newDate = year + '/' + month + '/' + day;\r\n let newDate1 = new Date(newDate);\r\n this.listvehicles[i].date_license_expiry = newDate1\r\n\r\n let date2 = this.listvehicles[i].start_date.split('/');\r\n let day2 = parseInt(date2[0], 10) + 1;\r\n let month2 = parseInt(date2[1], 10);\r\n let year2 = parseInt(date2[2], 10);\r\n let newDate2 = year2 + '/' + month2 + '/' + day2;\r\n let newDate3 = new Date(newDate2);\r\n this.listvehicles[i].start_date = newDate3\r\n }\r\n this.vehicleService.deleteVehiclesList(this.listvehicles).subscribe(data => {\r\n //console.log(data);\r\n this.getSavedVehicleByPermit('');\r\n })\r\n this.pageload = false;\r\n\r\n })\r\n //this.dataCntrl.application.id\r\n //this.dataCntrl.permits.id\r\n }\r\n omit_special_char(event) {\r\n var k;\r\n k = event.charCode; // k = event.keyCode; (Both can be used)\r\n return ((k > 64 && k < 91) || (k > 96 && k < 123) || k == 8 || k == 32 || (k >= 48 && k <= 57));\r\n }\r\n updatePermit(result) {\r\n // result.permit_num = 100000000 + parseInt(result.id);\r\n this.permitService.upadatePermit(result).subscribe(res => {\r\n\r\n })\r\n }\r\n updatePermitStartDate(permit, noOfDays){\r\n \r\n this.permitService.putAppPermit(permit, noOfDays).subscribe(result => {\r\n setTimeout(() => { this.getSavedVehicleByPermit(''); }, 400);\r\n });\r\n\r\n }\r\n eNatisCheck(item, index) {\r\n this.myPassenger = item.number_passengers;\r\n this.myStartDate = item.start_date;\r\n this.myVehicleType = item.vehicle_type_id;\r\n this.myRegNum = item.registration_number;\r\n this.myGvm = item.gvn;\r\n this.MyVin = item.vin;\r\n this.myExpDAte = item.date_license_expiry;\r\n let data = null;\r\n this.pageload = true;\r\n\r\n // this.validatePassenger(item.vehicle_type_id,item);\r\n this.vehicleTypeService.getById(item.vehicle_type_id).subscribe((result:any) => {\r\n let item_ = result;\r\n //console.log(item_)\r\n if (item.number_passengers > item_.passengers_max) {\r\n this.pageload = false;\r\n return this.toastr.warning(\"Maximum number of passengers for this vehicle type is \" + item_.passengers_max);\r\n\r\n }\r\n this.entryService.checkVehicleApplication(item, this.dataCntrl.carrierID).subscribe(x => {\r\n data = x;\r\n console.log(data)\r\n if (data.Result === null) {\r\n this.pageload = false;\r\n this.customIndex = index;\r\n this.createForm();\r\n //console.log(this.myForm.value);\r\n $(\"#addEdit\").modal('show');\r\n\r\n return this.toastr.info('This vehicle details was not found on eNatis database. Please fill in this form.', 'Vehicle Register')\r\n } else {\r\n \r\n this.eNatisData = data.Result\r\n \r\n this.saveVehicle(item, index);\r\n }\r\n\r\n }, error => {\r\n });\r\n\r\n\r\n\r\n }, error => {\r\n this.toastr.error('Failed to save application. If the problem persist, please contact system administrator.', 'Vehicle');\r\n return;\r\n });\r\n\r\n\r\n\r\n\r\n }\r\n\r\n checkRoadworthy (event: any) {\r\n if(event.target.value =!'Roadworthy'){\r\n if (this.myForm.value.country_id === 113) {\r\n this.toastr.error('Please note that according to eNatis this vehicle is not roadworthy and therefore will not be eligible for permit application.')\r\n } else {\r\n this.toastr.error('Please note that according to your selection this vehicle is not roadworthy and therefore will not be eligible for permit application.')\r\n }\r\n return\r\n }\r\n }\r\n\r\n addApplicatioWithoutVehicle()\r\n {\r\n this.applicationService.setTab(3);\r\n }\r\n\r\n}\r\n","\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Vehicle* You can add one or more Vehicles in the Application with different Start Dates\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
= 51\">Permit NumValid From DateNo. Of DaysVehicle TypeRegistration No.PassengersGVMVINLicense or Roadworthy or C.O.F Expiry Date\r\n \r\n \r\n \r\n
= 51 && item.permit_num !=''\">\r\n {{item.permit_num}}\r\n \r\n {{item.start_date }}\r\n \r\n \r\n \r\n {{item.noOfDays}}\r\n \r\n \r\n {{item.vehicle_type}}\r\n \r\n \r\n {{item.registration_number}}\r\n \r\n \r\n {{item.number_passengers}}\r\n \r\n \r\n {{item.gvn}}\r\n \r\n \r\n {{item.vin}}\r\n \r\n \r\n {{item.date_license_expiry }}\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n\r\n\r\n\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n Back\r\n
\r\n
\r\n \r\n\r\n \r\n\r\n\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Vehicle* Please add all vehicles linked to this application\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Start DateTypeRegistration No.PassengersGVMVINLicense or Roadworthy or C.O.F Expiry Date\r\n \r\n
\r\n {{item.start_date }}\r\n \r\n {{item.vehicle_type}}\r\n \r\n \r\n {{item.registration_number}}\r\n \r\n \r\n {{item.number_passengers}}\r\n \r\n \r\n {{item.gvn}}\r\n \r\n \r\n {{item.vin}}\r\n \r\n \r\n {{item.date_license_expiry }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
Add Vehicle
\r\n
Edit Vehicle
\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n\r\n\r\n\r\n\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n\r\n
\r\n\r\n\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n\r\n\r\n\r\n
\r\n\r\n\r\n\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n\r\n\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n\r\n\r\n\r\n\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n\r\n\r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
","import { Component, OnInit, Input } from '@angular/core';\r\nimport { CarrierService } from 'app/services/carrier.service';\r\nimport { ApplicationService } from 'app/services/application.service';\r\nimport { Params, Router, ActivatedRoute } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-carrier-details',\r\n templateUrl: './carrier-details.component.html',\r\n styleUrls: ['./carrier-details.component.css']\r\n})\r\nexport class CarrierDetailsComponent implements OnInit {\r\n @Input() dataCntrl: any;\r\n public isLoading = false;\r\n caConfirmObj: any = {};\r\n message: any;\r\n oldAppId:any=null;\r\n appData:any=null;\r\n duration:any=\"\";\r\n permitType:any=\"\";\r\n permitInfo:any=\"\";\r\n constructor(private carrierService: CarrierService,\r\n private applicationService: ApplicationService, private router: Router, private activeRoute: ActivatedRoute) { }\r\n\r\n ngOnInit() {\r\n //console.log('Carrier');\r\n if (this.router.url.indexOf('change') > 0 || this.router.url.indexOf('duplicate') > 0 || this.dataCntrl.status == 2) {\r\n this.activeRoute.params.subscribe((params: Params) => {\r\n this.dataCntrl.application.id = params['id'];\r\n //console.log(params['id']);\r\n\r\n this.getApp(params['id']);\r\n });\r\n\r\n }\r\n if(localStorage.getItem(\"oldAppId\")!=undefined && localStorage.getItem(\"oldAppId\")!=null){\r\n this.oldAppId=localStorage.getItem(\"oldAppId\");\r\n this.getApplicationDetails();\r\n }\r\n }\r\n getApplicationDetails(){\r\n this.applicationService.getById(this.oldAppId).subscribe((data:any) => {\r\n this.appData=data;\r\n if(data.permit_type.permit_days > 0){\r\n this.duration = data.permit_type.permit_days > 0 ? data.permit_type.permit_days + \" Days\" : null;\r\n }\r\n if(data.permit_type.permit_months > 0){\r\n this.duration = data.permit_type.permit_months > 0 ? data.permit_type.permit_months + \" Months\" : null;\r\n }\r\n if(data.permit_type.permit_years > 0){\r\n this.duration = data.permit_type.permit_years > 0 ? data.permit_type.permit_years + \" Years\" : null;\r\n }\r\n this.permitType=data.permit_type.description\r\n });\r\n }\r\n getConfirmDetails() {\r\n this.carrierService.getAccountConfirmationDetailsById(this.dataCntrl.carrierID).subscribe(result => {\r\n this.caConfirmObj = result;\r\n //console.log(this.caConfirmObj)\r\n this.isLoading = false;\r\n }, error => {\r\n this.isLoading = false;\r\n });\r\n }\r\n getApp(id) {\r\n this.isLoading = true;\r\n this.message = \"Retrieving carrier account information, please wait...\";\r\n this.applicationService.getById(id).subscribe((data:any) => {\r\n //console.log(data);\r\n this.dataCntrl.application = data;\r\n this.dataCntrl.carrierID = data.carrier_id;\r\n this.getConfirmDetails();\r\n });\r\n }\r\n continueRoute() {\r\n if (this.router.url.indexOf('change') > 0) {\r\n this.activeRoute.params.subscribe((params: Params) => {\r\n this.dataCntrl.application.id = params['id'];\r\n const ctrlType = params['ctrlType'];\r\n if (ctrlType != 'vehicle' && this.router.url.indexOf('correction') < 0) {\r\n return this.applicationService.setTab(3);\r\n }\r\n if (ctrlType === 'vehicle') {\r\n return this.applicationService.setTab(2);\r\n }\r\n if (this.router.url.indexOf('correction') > 0) {\r\n return this.applicationService.setTab(1);\r\n }\r\n });\r\n\r\n }\r\n if (this.router.url.indexOf('duplicate') > 0)\r\n return this.applicationService.setTab(5);\r\n }\r\n}\r\n","
\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Physical AddressPermit Info
\r\n Registration Number : {{caConfirmObj.registration_number}}Address : {{caConfirmObj.physical_address?.line_address_1}}Permit Type : {{permitType}}
\r\n Tax Number : {{caConfirmObj.tax_number}}\r\n \r\n Town : {{caConfirmObj.physical_address?.line_address_town}}\r\n \r\n \r\n Duration : {{duration}}\r\n
\r\n Carrier Name : {{caConfirmObj.registered_name}}\r\n \r\n \r\n Postal Code : {{caConfirmObj.physical_address?.line_post_code}}\r\n \r\n \r\n
\r\n Trading Name : {{caConfirmObj.trading_name}}\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
","import { Component, OnInit, Input, Pipe, ViewChild, ElementRef } from '@angular/core';\r\n// import { PopupService } from '../../../../services/shared/popup.service';\r\nimport { PopupService } from 'app/services/shared/popup.service';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { ApplicationService } from 'app/services/application.service';\r\nimport { UtilityServiceService } from 'app/services/utility-service.service';\r\nimport { environment } from '../../../../../environments/environment';\r\nimport { PermitService } from 'app/services/permit.service';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { Router, ActivatedRoute, Params } from '@angular/router';\r\nimport { VehicleService } from 'app/services/vehicle.service';\r\nimport { FormControl, Validators, FormGroup, FormBuilder } from '@angular/forms';\r\n// import * as jsPDF from 'jspdf';\r\n// import 'jspdf-autotable';\r\nimport { CarrierService } from 'app/services/carrier.service';\r\nimport { CurrencyFormat } from 'app/pipes/currencyFormat.pipe';\r\nimport { AuthWebService } from 'app/services/authweb.service';\r\nimport { accounting } from 'accounting';\r\nimport { CorspdcService } from 'app/services/corspdc.service';\r\nimport { CountryService } from 'app/services/country.service';\r\nimport { PermitTypeDocumentService } from 'app/services/permit-type-document.service';\r\nimport { DatePipe } from '@angular/common';\r\nimport { VehicleMakeService } from '../../../../services/vehicle-make.service';\r\nimport { VehicleTypeService } from '../../../../services/vehicle-type.service';\r\nimport { RouteService } from 'app/services/route.service';\r\nimport { error } from 'protractor';\r\nimport { CarrierAccountService } from 'app/services/carrier-account.service';\r\nimport { PermitTypeService } from 'app/services/permit-type.service';\r\nimport { now } from 'jquery';\r\nimport { ConfirmDialogService } from 'app/services/shared/confirm-dialog/confirm-dialog.service';\r\n\r\nvar jsPDF = require('jspdf');\r\nrequire('jspdf-autotable');\r\ndeclare var $;\r\n// declare var jsPDF: any;\r\n// @Pipe({ name: 'safeHtml' })\r\n\r\n\r\n@Component({\r\n selector: 'app-confirmation',\r\n templateUrl: './confirmation.component.html',\r\n styleUrls: ['./confirmation.component.css'],\r\n providers: [PermitTypeDocumentService, RouteService]\r\n})\r\n\r\nexport class ConfirmationComponent implements OnInit {\r\n public isLoading = false;\r\n helphtml;\r\n linkhtml;\r\n pagehtml;\r\n @Input() dataCntrl: any;\r\n @Input() routeCtrl: any = { isNew: false, btnRadio: null, rLeg: {} };\r\n form: FormGroup;\r\n userDetails: any = null;\r\n totalFee: any = \"\";\r\n termsFlag: boolean = false;\r\n public pageload = false;\r\n enabledBtnsFlag: boolean = false;\r\n @ViewChild('content', { static: true }) content: ElementRef;\r\n status_id: number;\r\n email_body = \"\";\r\n decl_date = new Date();\r\n vehicles: any = [];\r\n caConfirmObj: any = {};\r\n lineTotal\r\n isProcess: boolean = true;\r\n submissionAmt: any = 0;\r\n paidAmt: any = 0;\r\n invoiceNumber: any = \"\";\r\n invoiceRes: any = null;\r\n dueAmt: any = 0;\r\n chargeInd: any = 0;\r\n renewCrId: any = \"\";\r\n renewFlag: boolean = false;\r\n country\r\n linkedDocs: any = [];\r\n listvehicles: any = [];\r\n myLoader: boolean = false;\r\n list_vehicle_make: any;\r\n selectedVMake: any;\r\n ownRoutes: any = [];\r\n count: any = 0;\r\n carrier_account_id: any = 0;\r\n debtorAccountId: any;\r\n accBalance: any = 0;\r\n Balance: any = 0;\r\n permitRenewal: boolean = false;\r\n inTransaction: boolean= false;\r\n permitStatus1: number;\r\n permitStatus2: number;\r\n permitStatus6: number;\r\n permitStatus4: number;\r\n permitStatus7: number;\r\n permitStatus10: number;\r\n permitStatus13: number;\r\n permitStatus14: number;\r\n showDocs: boolean = false;\r\n isEditMode : Boolean = false;\r\n accountBalance:number;\r\n branch: any = \"X\";\r\n message: any = \"Processing. Please wait...\";\r\n isDuplicateMode: boolean = false;\r\n replaceVehicle: boolean = false;\r\n isStandard:boolean=false;\r\n isCorrection:boolean=false;\r\n isLongTermCorrection:boolean=false;\r\n frghtPass = '';\r\n ptype: any = null;\r\n ptypeDays: any = null;\r\n ptypeMonth: any = null;\r\n ptypeYears: any = null;\r\n isAmmendRoute:boolean=false;\r\n isCompletePayment: boolean=false; \r\n newStatus: number;\r\n constructor(private sanitizer: DomSanitizer, private showModal: PopupService, private toastr: ToastrService,\r\n private applicationService: ApplicationService, public utility: UtilityServiceService, private permitService: PermitService,\r\n private router: Router, private vehicleService: VehicleService, private vehicleMakeService: VehicleMakeService,\r\n private carrierService: CarrierService, private crspdService: CorspdcService, private routeService: RouteService,\r\n private activeRoute: ActivatedRoute,\r\n public currformat: CurrencyFormat,\r\n private authWebService: AuthWebService,\r\n private countryService: CountryService,\r\n private service: PermitTypeDocumentService,private confirmDialogService: ConfirmDialogService,\r\n private carrieraccountserver: CarrierAccountService,\r\n private datePipe: DatePipe, private permitSevc: PermitService,private permittypeService: PermitTypeService) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n \r\n this.myLoader = true;\r\n this.isEditMode = this.router.url.indexOf('edit') > 0;\r\n if (this.router.url.indexOf('view') > 0) {\r\n $(\"#procesHeader\").html(\"View Application\");\r\n }\r\n\r\n this.toastr.clear();\r\n this.setHTMLDATA()\r\n this.getCarrier();\r\n this.setPageHTML();\r\n\r\n if (environment.authWebApi.systemData != null && environment.authWebApi.systemData.Configurations != null) {\r\n this.permitStatus1 = environment.authWebApi.systemData.Configurations.find(p => p.Code == 'PermitStatus1').Value;\r\n this.permitStatus2 = environment.authWebApi.systemData.Configurations.find(p => p.Code == 'PermitStatus2').Value;\r\n this.permitStatus4 = environment.authWebApi.systemData.Configurations.find(p => p.Code == 'PermitStatus4').Value;\r\n this.permitStatus6 = environment.authWebApi.systemData.Configurations.find(p => p.Code == 'PermitStatus6').Value;\r\n this.permitStatus7 = environment.authWebApi.systemData.Configurations.find(p => p.Code == 'PermitStatus7').Value;\r\n this.permitStatus10 = environment.authWebApi.systemData.Configurations.find(p => p.Code == 'PermitStatus10').Value;\r\n this.permitStatus13 = environment.authWebApi.systemData.Configurations.find(p => p.Code == 'PermitStatus13').Value;\r\n this.permitStatus14 = environment.authWebApi.systemData.Configurations.find(p => p.Code == 'PermitStatus14').Value;\r\n }\r\n this.userDetails = environment.authWebApi.userData.User;\r\n this.isCompletePayment = this.router.url.indexOf('completepayment') > 0\r\n if (this.isCompletePayment == true) {\r\n this.utility.confirmCtrl = false\r\n }\r\n // carrier/permit/application/renew/this.totalFee = (this.dataCntrl['permit'].application_fee + this.dataCntrl['permit'].permit_fee)*this.dataCntrl['vehicles'].length;\r\n if (this.router.url.indexOf('new') > 0) {\r\n this.getApplication();\r\n this.getSavedVehicleByPermit(this.dataCntrl.application.id);\r\n } else if (this.router.url.indexOf('edit') > 0 || this.router.url.indexOf('change') > 0) {\r\n this.activeRoute.params.subscribe((params: Params) => {\r\n if (params['type']) {\r\n this.renewFlag = true;\r\n this.renewCrId = params['crId'];\r\n }\r\n if(params['ctrlType']=='true'){\r\n this.isAmmendRoute=true;\r\n this.getOldStartDate(); // BUG : 121\r\n }\r\n if (this.dataCntrl.application.id == null || this.dataCntrl.application.id == undefined) {\r\n this.dataCntrl.application.id = params['id'];\r\n } else {\r\n this.dataCntrl.application.id = this.dataCntrl.permits[0].application_id;\r\n }\r\n this.getApplication();\r\n // this.getSavedVehicleByPermit(this.dataCntrl.application.id);\r\n });\r\n } else {\r\n if (this.router.url.indexOf('view') > 0) {\r\n this.isProcess = false;\r\n this.activeRoute.params.subscribe((params: Params) => {\r\n if (params['type']) {\r\n this.renewFlag = true;\r\n this.renewCrId = params['crId'];\r\n this.dataCntrl.carrierID = this.renewCrId;\r\n }\r\n if (this.dataCntrl.application.id == null || this.dataCntrl.application.id == undefined) {\r\n this.dataCntrl.application.id = params['id'];\r\n } else {\r\n this.dataCntrl.application.id = this.dataCntrl.permits[0].application_id;\r\n }\r\n this.getApplication();\r\n this.getRoutes();\r\n });\r\n } else {\r\n this.getApplication();\r\n this.getSavedVehicleByPermit(this.dataCntrl.application.id);\r\n }\r\n this.CheckConfirmDetails();\r\n }\r\n if (this.router.url.indexOf('view') > 0 || this.router.url.indexOf('renew') > 0) {\r\n this.isProcess = false;\r\n this.myLoader = true;\r\n if (this.dataCntrl.permittype.timetable_reqd) {\r\n this.utility.timetableActive = true;\r\n } else {\r\n this.utility.timetableActive = false;\r\n }\r\n this.getApplication();\r\n this.activeRoute.params.subscribe((params: Params) => {\r\n this.getSavedVehicleByPermit(params['id']);\r\n this.getVehicleMake();\r\n });\r\n this.CheckConfirmDetails();\r\n }\r\n\r\n this.CheckConfirmDetails();\r\n console.log(\"User Data\",this.accBalance);\r\n console.log(\"User Account\",this.dueAmt);\r\n \r\n }\r\n\r\n checkTerms(event) {\r\n if (event.target.checked) {\r\n this.termsFlag = true;\r\n } else {\r\n this.termsFlag = false;\r\n }\r\n }\r\n\r\n getConfirmDetails = () => {\r\n this.isLoading = true;\r\n this.message = \"Retrieving carrier account information, please wait...\";\r\n let carrierId:any=this.utility.carrierId;\r\n if(this.utility.ctrlPages[this.utility.acc.First].carrierId==undefined){\r\n carrierId=this.utility.carrierId;\r\n }else{\r\n if(this.utility.carrierId==undefined){\r\n carrierId=this.utility.ctrlPages[this.utility.acc.First].carrierId;\r\n }\r\n }\r\n this.carrierService.getAccountConfirmationDetailsById(carrierId).subscribe(result => {\r\n this.caConfirmObj = result;\r\n if(parseInt(this.caConfirmObj.account_balance)!=0){\r\n this.caConfirmObj.account_balance=-(parseInt(this.caConfirmObj.account_balance));\r\n this.accountBalance = this.caConfirmObj.account_balance; \r\n \r\n }\r\n\r\n console.log('this.caConfirmObj : '+JSON.stringify(this.caConfirmObj));\r\n this.isLoading = false;\r\n this.showDocs=true;\r\n }, error => {\r\n this.isLoading = false;\r\n //console.log(error);\r\n });\r\n }\r\n back(){ \r\n this.utility.activeTab = 2; \r\n }\r\n\r\n changes() {\r\n this.form.statusChanges.subscribe(\r\n result =>\r\n this.dataCntrl.formValid = result == 'VALID' ? true : false\r\n );\r\n }\r\n loadDataFromDatabase(route: any) {\r\n //////console.log('Route Selected :', route);\r\n this.routeCtrl.rLeg.route_summary = route.route_summary;\r\n this.routeCtrl.rLeg.code = route.code;\r\n this.routeCtrl.rLeg.route_detail = route.route_detail;\r\n if(this.dataCntrl.isStandard){\r\n this.isStandard=true;\r\n }\r\n }\r\n getApplication() {\r\n this.pageload = true;\r\n \r\n if (this.dataCntrl.application.id !== null && this.dataCntrl.application.id !== undefined) {\r\n this.applicationService.getById(this.dataCntrl.application.id).subscribe((data:any) => {\r\n if (this.router.url.indexOf('view') > 0 || this.router.url.indexOf('renew') > 0 || this.router.url.indexOf('completepayment') > 0) {\r\n this.dataCntrl = data;\r\n this.isProcess = false;\r\n this.CheckConfirmDetails();\r\n this.dataCntrl.permittype = data.permit_type; \r\n this.utility.timetableActive = data.permit_type.timetable_reqd;\r\n if (data.permit_type.timetable_reqd) {\r\n this.utility.sequenceNumbers.permitNum = 1;\r\n this.utility.sequenceNumbers.vehicleNum = 2;\r\n this.utility.sequenceNumbers.routesNum = 3;\r\n this.utility.sequenceNumbers.motivationNum = 4;\r\n this.utility.sequenceNumbers.timeTableNum = 5;\r\n this.utility.sequenceNumbers.uploadsNum = 6;\r\n this.utility.sequenceNumbers.cnfNum = 7;\r\n this.utility.activeTab = 7;\r\n } else {\r\n this.utility.sequenceNumbers.permitNum = 1;\r\n this.utility.sequenceNumbers.vehicleNum = 2;\r\n this.utility.sequenceNumbers.routesNum = 3;\r\n this.utility.sequenceNumbers.motivationNum = 4;\r\n this.utility.sequenceNumbers.uploadsNum = 5;\r\n this.utility.sequenceNumbers.cnfNum = 6;\r\n }\r\n\r\n }\r\n\r\n this.dataCntrl.permittype = data.permit_type;\r\n this.dataCntrl.permits.forEach(permit => {\r\n permit.permit_fee = this.dataCntrl.permittype.current_fee == null ? 0 : this.dataCntrl.permittype.current_fee;\r\n permit.application_fee = this.dataCntrl.permittype.current_application_fee == null ? 0 : this.dataCntrl.permittype.current_application_fee; \r\n });\r\n \r\n // this.vehicles = [];\r\n this.dataCntrl.application = data;\r\n this.dataCntrl.carrierID = data.carrier_id;\r\n this.dataCntrl.permit_type_id = data.permit_type_id;\r\n // this.dataCntrl.permit=data.permit;\r\n \r\n \r\n //this.dataCntrl.vehicles=this.dataCntrl.application.vehicle;\r\n this.carrier_account_id = data.carrier_account_id;\r\n\r\n //console.log(this.dataCntrl);\r\n\r\n this.getCarrier();\r\n this.getSavedVehicleByPermit(this.dataCntrl.application.id);\r\n }, error => {\r\n this.pageload = false;\r\n })\r\n } else { \r\n this.getCarrier();\r\n }\r\n this.pageload = false;\r\n this.getCorrectionPermitType();\r\n }\r\n formatCurrency(value) {\r\n return accounting.formatMoney(value, 'R', 2, ' ', '.');\r\n }\r\n getCarrier() {\r\n this.pageload = true;\r\n this.carrierService.getById(this.dataCntrl.carrierID).subscribe((result:any) => {\r\n this.setDebtorAccount(result.carrier_account_id);\r\n this.setCarrierData(result);\r\n this.pageload = false;\r\n }, error => {\r\n this.pageload = false;\r\n });\r\n }\r\n\r\n setDebtorAccount(carrierAccountId) {\r\n this.carrierService.getDebtorAccount(carrierAccountId).subscribe((result:any) => {\r\n this.debtorAccountId = result.customer_code;\r\n }, error => {\r\n });\r\n }\r\n\r\n listCountries(id) {\r\n this.countryService.listCountries().subscribe((result:any) => {\r\n if (id != null) {\r\n this.country = result.find(x => x.id == id);\r\n this.country = this.country.desc;\r\n }\r\n }, error => {\r\n this.isLoading = false;\r\n });\r\n }\r\n getCorrectionPermitType(){\r\n this.permittypeService.getById(this.dataCntrl['permit'].permit_type_id).subscribe((type:any) =>{\r\n this.ptype = type;\r\n //console.log(this.ptype);\r\n if(type.permit_days > 0){\r\n this.ptypeDays = type.permit_days;\r\n }\r\n if(type.permit_months > 0){\r\n this.ptypeMonth = type.permit_months;\r\n }\r\n if(type.permit_years > 0){\r\n this.ptypeYears = type.permit_years;\r\n }\r\n })\r\n }\r\n setCarrierData(data) {\r\n if (data.account_balance != null) {\r\n this.accBalance = data.account_balance * -1;\r\n if (!data.account_balance.toString().includes(\"R\")) {\r\n if (parseFloat(data.account_balance) != 0) {\r\n data.account_balance = -(parseFloat(data.account_balance));\r\n }\r\n data.account_balance = data.account_balance != 0 ? this.currformat.transform(parseFloat(data.account_balance)) : 'R 0.00';\r\n }\r\n }\r\n this.dataCntrl.carrier = data;\r\n $(\"#carrierName\").html(data.name);\r\n this.listCountries(data.country_id);\r\n }\r\n\r\n saveConfirmation(permitStatus) { \r\n \r\n \r\n\r\n if (permitStatus == -1) {\r\n // let tempAmtDue = this.dueAmt.substring(1);\r\n //let numAmoutDue: number = parseInt(tempAmtDue);\r\n // if(numAmoutDue < 1){\r\n // this.toastr.error(\"You cannot submit a Permit Application if Amount Paid And Amount Due are Zero.\",\"Insufficient Funds\")\r\n // return;\r\n // }\r\n\r\n // var currentDate : Date = new Date(); \r\n // var startDate : Date = new Date(new Date( this.dataCntrl.permits.date_11).toDateString());\r\n // var currentDate : Date = new Date(new Date().toDateString());\r\n \r\n // if(startDate < currentDate) {\r\n // this.toastr.error('One or more vehicles in your application, contains an invalid date. Please update the `valid from date` to the current or future date. ' ,\"Invalid Date\")\r\n // return;\r\n // }\r\n \r\n\r\n // this.showModal.showYesNo('Confirm Application', `Are you sure you want to submit application for a Permit ? A confirmation email will be sent to '${this.userDetails.EmailAddress}'.`, `Please access your CrosseEasy Portal to complete payment.`, 'Ok', 'Cancel')\r\n // .subscribe((isConfirmed) => {\r\n // if (isConfirmed) { \r\n // if (this.dataCntrl[\"application\"].status_id == this.permitStatus1) {\r\n // permitStatus = this.permitStatus6;\r\n // } \r\n // else if (this.dataCntrl[\"application\"].status_id == this.permitStatus6) {\r\n // permitStatus = this.permitStatus7;\r\n // } \r\n // else if (this.dataCntrl[\"application\"].status_id == this.permitStatus13) {\r\n // permitStatus = this.permitStatus14\r\n // } \r\n // else if (this.dataCntrl[\"application\"].status_id == this.permitStatus14) {\r\n // permitStatus = this.permitStatus2\r\n // } \r\n // else {\r\n // permitStatus = this.permitStatus6;\r\n // }\r\n // if(this.isAmmendRoute){\r\n // if(!this.dataCntrl.oldPermitStartDate || this.dataCntrl.oldPermitStartDate==null){\r\n // // this.toastr.error(\"Please enter vehicle permit start date.\",\"Route Amendment\")\r\n // // return false;\r\n // }else{\r\n // // let startDate:any=new Date(this.dataCntrl.oldPermitStartDate);\r\n // // let vehicleDate:any=new Date(this.vehicles[0].start_date.split(\"/\")[2]+\"-\"+this.vehicles[0].start_date.split(\"/\")[1]+\"-\"+this.vehicles[0].start_date.split(\"/\")[0]);\r\n // // vehicleDate.setHours(0);\r\n // // vehicleDate.setMinutes(0);\r\n // // vehicleDate.setSeconds(0);\r\n // // if(startDate.getTime()==vehicleDate.getTime()){\r\n // // this.toastr.error(\"please change vehicle start date\",\"permit error\")\r\n // // return false;\r\n // // }\r\n // }\r\n // }\r\n // if (this.renewFlag) {\r\n // this.saveApplication();\r\n // } else {\r\n // this.updateConfm(permitStatus);\r\n // }\r\n // } \r\n // else {\r\n // return;\r\n // }\r\n // });\r\n this.confirmDialogService.confirmThis(`Are you sure you want to submit application for a Permit ? A confirmation email will be sent to '${this.userDetails.EmailAddress}'. Please access your CrosseEasy Portal to complete payment.`, () => { \r\n if (this.dataCntrl[\"application\"].status_id == this.permitStatus1) {\r\n permitStatus = this.permitStatus6;\r\n } \r\n else if (this.dataCntrl[\"application\"].status_id == this.permitStatus6) {\r\n permitStatus = this.permitStatus7;\r\n } \r\n else if (this.dataCntrl[\"application\"].status_id == this.permitStatus13) {\r\n permitStatus = this.permitStatus14\r\n } \r\n else if (this.dataCntrl[\"application\"].status_id == this.permitStatus14) {\r\n permitStatus = this.permitStatus2\r\n } \r\n else {\r\n permitStatus = this.permitStatus6;\r\n }\r\n if(this.isAmmendRoute){\r\n if(!this.dataCntrl.oldPermitStartDate || this.dataCntrl.oldPermitStartDate==null){\r\n // this.toastr.error(\"Please enter vehicle permit start date.\",\"Route Amendment\")\r\n // return false;\r\n }else{\r\n // let startDate:any=new Date(this.dataCntrl.oldPermitStartDate);\r\n // let vehicleDate:any=new Date(this.vehicles[0].start_date.split(\"/\")[2]+\"-\"+this.vehicles[0].start_date.split(\"/\")[1]+\"-\"+this.vehicles[0].start_date.split(\"/\")[0]);\r\n // vehicleDate.setHours(0);\r\n // vehicleDate.setMinutes(0);\r\n // vehicleDate.setSeconds(0);\r\n // if(startDate.getTime()==vehicleDate.getTime()){\r\n // this.toastr.error(\"please change vehicle start date\",\"permit error\")\r\n // return false;\r\n // }\r\n }\r\n }\r\n if (this.renewFlag) {\r\n this.saveApplication();\r\n } else {\r\n this.updateConfm(permitStatus);\r\n }\r\n\r\n \r\n }, () => { \r\n return;\r\n })\r\n\r\n } else { \r\n if(this.isAmmendRoute){\r\n if(!this.dataCntrl.oldPermitStartDate || this.dataCntrl.oldPermitStartDate==null){\r\n // this.toastr.error(\"please change vehicle start date\",\"permit error\");\r\n // return false;\r\n }else{\r\n // let startDate:any=new Date(this.dataCntrl.oldPermitStartDate);\r\n // let vehicleDate:any=new Date(this.vehicles[0].start_date.split(\"/\")[2]+\"-\"+this.vehicles[0].start_date.split(\"/\")[1]+\"-\"+this.vehicles[0].start_date.split(\"/\")[0]);\r\n // vehicleDate.setHours(0);\r\n // vehicleDate.setMinutes(0);\r\n // vehicleDate.setSeconds(0);\r\n // if(startDate.getTime()==vehicleDate.getTime()){\r\n // this.toastr.error(\"please change vehicle start date\",\"permit error\")\r\n // return false;\r\n // }\r\n }\r\n }\r\n if (this.renewFlag) { \r\n this.saveApplication();\r\n } else { \r\n this.updateConfm(permitStatus);\r\n }\r\n }\r\n }\r\n\r\n PermitDetailsConfirmation() {\r\n\r\n if (this.branch == 'C') {\r\n this.UpdatepermitStatus(this.permitStatus14);\r\n }\r\n\r\n if (this.branch == 'F') {\r\n this.UpdatepermitStatus(this.permitStatus10);\r\n this.carrieraccountserver.ResendAccountLinkingOTP(this.dataCntrl.person, this.dataCntrl.person_id);\r\n }\r\n }\r\n\r\n CheckConfirmDetails() {\r\n //changes and owes money\r\n this.pageload = true;\r\n this.activeRoute.params.subscribe((params: Params) => {\r\n if(params['constatus'] == 2){\r\n if ((this.dataCntrl.permits[0].application_invoice_link == null || this.dataCntrl.permits[0].permit_invoice_link == null) && (this.applicationService.documentsChanged || this.applicationService.motivationChanged || this.applicationService.vehicleAdded)) {\r\n this.branch = \"A\";\r\n this.isProcess = true;\r\n\r\n }\r\n\r\n //changes and dont owe money\r\n if (this.dataCntrl.permits[0].application_invoice_link == null && this.dataCntrl.permits[0].permit_invoice_link == null && (!this.applicationService.documentsChanged || !this.applicationService.motivationChanged || !this.applicationService.vehicleAdded)) {\r\n this.branch = \"C\";\r\n }\r\n\r\n //No change and owes money\r\n if (this.dataCntrl.permits[0].application_invoice_link == null || this.dataCntrl.permits[0].permit_invoice_link == null && (!this.applicationService.documentsChanged || !this.applicationService.motivationChanged || !this.applicationService.vehicleAdded)) {\r\n this.branch = \"E\";\r\n this.isProcess = true;\r\n }\r\n\r\n //No Changes and dont owe money\r\n if (this.dataCntrl.permits[0].application_invoice_link != null && this.dataCntrl.permits[0].permit_invoice_link != null && (!this.applicationService.documentsChanged && !this.applicationService.motivationChanged && !this.applicationService.vehicleAdded)) {\r\n this.branch = \"F\";\r\n }\r\n }\r\n this.pageload = false;\r\n });\r\n }\r\n\r\n //Update Permit Status\r\n UpdatepermitStatus(status_id) {\r\n this.dataCntrl.permits.forEach(permit => {\r\n permit.status_id = status_id;\r\n this.permitService.upadatePermit(permit).subscribe((result:any) => {\r\n var foundIndex = this.dataCntrl.permits.findIndex(x => x.id == result.id);\r\n if(foundIndex >= 0)\r\n {\r\n this.dataCntrl.permits[foundIndex] = result;\r\n }\r\n \r\n // this.toastr.success('Updated Permit Type Successfully','Permit Type');\r\n // this.applicationService.setTab(2);\r\n\r\n });\r\n });\r\n }\r\n\r\n\r\n setHTMLDATA() {\r\n\r\n if (environment.authWebApi.systemData != null) {\r\n this.linkhtml = environment.authWebApi.systemData.Configurations.find(p => p.Code == 'HTMLDec2');\r\n // this.linkhtml = this.sanitizer.bypassSecurityTrustHtml(link.Value);\r\n }\r\n }\r\n retrieveSubmitStatus() {\r\n if (this.authWebService.userData) {\r\n\r\n if (this.branch == \"A\" || this.branch == \"C\") {\r\n this.status_id = this.permitStatus14\r\n }\r\n else if (this.branch == \"E\") {\r\n this.status_id = this.permitStatus7;\r\n }\r\n else if (this.branch == \"F\") {\r\n this.status_id = this.permitStatus10;\r\n }\r\n else {\r\n this.status_id = + environment.authWebApi.systemData.Configurations.find(config => config.Code == \"AccountStatus2\").Value;\r\n }\r\n\r\n this.dataCntrl.application.status_id = this.status_id;\r\n this.dataCntrl.application.submission_date = new Date();\r\n // if(this.vehicles==null || this.vehicles.length==0){\r\n // this.dataCntrl.application.total_fees=parseInt(this.dataCntrl['permit'].application_fee.replace(\"R\",\"\"));\r\n // }\r\n this.applicationService.putApplication(this.dataCntrl.application)\r\n .subscribe(result => {\r\n this.updatePermit(this.status_id);\r\n if (this.renewFlag) {\r\n this.toastr.success(`Your Permit Renewal has been submitted successfully.`, `Permit Renewal`);\r\n } else {\r\n this.toastr.success(`Your permit application was submitted successfully`, 'Permit Application');\r\n }\r\n if (this.renewFlag) {\r\n this.router.navigate(['carrier/permit/application/' + this.renewCrId]);\r\n } else {\r\n this.router.navigate(['/carrier/permit/application/' + this.dataCntrl.carrierID]);\r\n }\r\n this.pageload = false;\r\n },\r\n error => {\r\n this.pageload = false;\r\n\r\n // this.toastr.error('Failed to save application. If the problem persist, please contact system administrator.','Save Application')\r\n\r\n // this.showModal.showError('Save Application','Failed to save application. If the problem persist, please contact system administrator.',error);\r\n return;\r\n });\r\n }\r\n }\r\n updatePermit(status_id) {\r\n this.dataCntrl.permits.forEach(permit => {\r\n \r\n permit.status_id = status_id;\r\n if (this.vehicles == null || this.vehicles.length == 0) {\r\n permit.application_fee = parseFloat(permit.application_fee.replace(/[^\\d\\.]*/g, ''));\r\n // this.dataCntrl['permit'].permit_fee = parseFloat(this.dataCntrl['permit'].permit_fee.replace( /[^\\d\\.]*/g, ''));\r\n permit.permit_fee = 0;\r\n }\r\n this.permitService.upadatePermit(permit).subscribe((result:any) => {\r\n var index = this.dataCntrl.permits.findIndex(x=>x.id == result.id) ;\r\n if(index >= 0)\r\n {\r\n this.dataCntrl.permits[index]=result;\r\n } \r\n \r\n })\r\n\r\n });\r\n }\r\n\r\n\r\n downloadPdf() {\r\n var img = new Image()\r\n img.src = '/assets/banner1.png';\r\n let doc = new jsPDF('p', 'pt');\r\n // doc.addImage(img, 'png', 0, 0, 220, 50);\r\n // doc.fromHTML($(\"#confirm-content-1\").html(), 10, 50, {\r\n // width: 500\r\n // });\r\n let header: any = [\"\", \"\"];\r\n let createdDate: any = this.dataCntrl['application'].date_created.split(\"T\")[0];\r\n let content = [\r\n [\"Proforma Invoice and Confirmation\", \"\"],\r\n [\"Invoice:\", this.invoiceNumber],\r\n [\"Permit Application No:\", this.dataCntrl.carrier.carrier_code],\r\n [\"Application Date:\", createdDate],\r\n [\"Applicant:\", this.userDetails.FirstName + \" \" + this.userDetails.LastName],\r\n [\"Email:\", this.dataCntrl['carrier'].email]\r\n ];\r\n let content1 = [\r\n [\"Physical Address\", \"\"],\r\n [\"Address Line:\", this.dataCntrl['carrier'].physical_address_1],\r\n [\"Town:\", this.dataCntrl['carrier'].physical_address_town],\r\n [\"Post Codee:\", this.dataCntrl['carrier'].physical_post_code],\r\n [\"Country:\", this.dataCntrl['carrier'].country]\r\n ];\r\n\r\n let content8 = [\r\n [\"Routes\", this.dataCntrl['carrier'].ownRoutes]\r\n ];\r\n let content2 = [\r\n [\"Account Balance\", this.dataCntrl['carrier'].account_balance]\r\n ];\r\n let header2: any = [\"\", \"\", \"\"]\r\n let header1: any = [\"Vehicle Registration\", \"Vehicl Type\", \"Start Date\", \"Permit Type\", \"Duration\", \"Application Fee\", \"Permit Fee\", \"Line Total\"]\r\n let content3 = [];\r\n let content4 = [[\"\", \"Total\", this.totalFee]];\r\n let content5 = [[\"Fees shown in red are due on submission of the application. The remaining fee(s) if any will be payable before any permit is issued.These fees could change latter\", \"Payable on submission\", this.submissionAmt]];\r\n let content6 = [[\"\", \"Amount Paid\", this.paidAmt]];\r\n let content7 = [[\"\", \"Amount Due now\", this.dueAmt]];\r\n for (let list of this.vehicles) {\r\n let duration: any = \"\";\r\n if (this.dataCntrl['permittype'].permit_years > 0) {\r\n duration = this.dataCntrl['permittype'].permit_years + (this.dataCntrl['permittype'].permit_years == 1? \"- year\" : \"- years\");\r\n }\r\n if (this.dataCntrl['permittype'].permit_months > 0) {\r\n duration = this.dataCntrl['permittype'].permit_months + (this.dataCntrl['permittype'].permit_months == 1? \"- month\" : \"- months\");\r\n }\r\n if (this.dataCntrl['permittype'].permit_days > 0) {\r\n duration = this.dataCntrl['permittype'].permit_dayss + (this.dataCntrl['permittype'].permit_dayss == 1? \"- day\" : \"- days\");\r\n }\r\n let object: any = [list.registration_number, list.vehicle_type, list.start_date, this.dataCntrl['permittype'].description, duration, this.dataCntrl['permit'].application_fee,\r\n this.dataCntrl['permit'].permit_fee, this.lineTotal];\r\n content3.push(object);\r\n }\r\n let startingpage = doc.internal.getCurrentPageInfo().pageNumber;\r\n //doc.text(\"Proforma Invoice and Confirmation\");\r\n doc.setFontSize(10);\r\n doc.autoTable(header, content, {\r\n showHeader: 'firstPage',\r\n avoidPageSplit: true,\r\n theme: 'plain',\r\n margin: { top: 20, right: 305 },\r\n styles: { fontSize: 10, overflow: 'linebreak', columnWidth: 'wrap' },\r\n columnStyles: {\r\n 0: { columnWidth: 165 }\r\n }\r\n });\r\n doc.setPage(startingpage);\r\n doc.autoTable(header, content1, {\r\n showHeader: 'firstPage',\r\n avoidPageSplit: true,\r\n theme: 'plain',\r\n margin: { top: 20, left: 305 },\r\n styles: { fontSize: 10, overflow: 'linebreak', columnWidth: 'wrap' }\r\n });\r\n\r\n\r\n doc.autoTable(header, content2, {\r\n showHeader: 'firstPage',\r\n avoidPageSplit: true,\r\n margin: { top: 80 },\r\n theme: 'plain',\r\n startY: doc.autoTableEndPosY() + 20,\r\n styles: { fontSize: 10, overflow: 'linebreak', columnWidth: 'wrap' },\r\n\r\n });\r\n doc.autoTable(header, content8, {\r\n showHeader: 'firstPage',\r\n avoidPageSplit: true,\r\n margin: { top: 80 },\r\n theme: 'plain',\r\n startY: doc.autoTableEndPosY() + 20,\r\n styles: { fontSize: 10, overflow: 'linebreak', columnWidth: 'wrap' },\r\n\r\n });\r\n doc.autoTable(header1, content3, {\r\n showHeader: 'firstPage',\r\n avoidPageSplit: true,\r\n theme: 'plain',\r\n margin: { top: 80 },\r\n startY: doc.autoTableEndPosY() + 5,\r\n styles: { fontSize: 10, overflow: 'linebreak', columnWidth: 'wrap' },\r\n columnStyles: {\r\n 0: { columnWidth: 80 },\r\n 1: { columnWidth: 60 },\r\n 2: { columnWidth: 60 },\r\n 3: { columnWidth: 90 },\r\n 4: { columnWidth: 60 },\r\n 5: { columnWidth: 60 },\r\n 6: { columnWidth: 60 },\r\n 7: { columnWidth: 60 }\r\n }\r\n });\r\n doc.autoTable(header2, content4, {\r\n showHeader: 'firstPage',\r\n avoidPageSplit: true,\r\n theme: 'plain',\r\n margin: { top: 80 },\r\n startY: doc.autoTableEndPosY(),\r\n styles: { fontSize: 10, overflow: 'linebreak', columnWidth: 'wrap' },\r\n columnStyles: {\r\n 0: { columnWidth: 370 },\r\n 1: { columnWidth: 100 },\r\n 2: { columnWidth: 100 }\r\n }\r\n });\r\n doc.autoTable(header2, content5, {\r\n showHeader: 'firstPage',\r\n avoidPageSplit: true,\r\n theme: 'plain',\r\n margin: { top: 80 },\r\n startY: doc.autoTableEndPosY(),\r\n styles: { fontSize: 10, overflow: 'linebreak', columnWidth: 'wrap' },\r\n columnStyles: {\r\n 0: { columnWidth: 370 },\r\n 1: { columnWidth: 100 },\r\n 2: { columnWidth: 100 }\r\n }\r\n });\r\n doc.autoTable(header2, content6, {\r\n showHeader: 'firstPage',\r\n avoidPageSplit: true,\r\n theme: 'plain',\r\n margin: { top: 80 },\r\n startY: doc.autoTableEndPosY(),\r\n styles: { fontSize: 10, overflow: 'linebreak', columnWidth: 'wrap' },\r\n columnStyles: {\r\n 0: { columnWidth: 370 },\r\n 1: { columnWidth: 100 },\r\n 2: { columnWidth: 100 }\r\n }\r\n });\r\n doc.autoTable(header2, content7, {\r\n showHeader: 'firstPage',\r\n avoidPageSplit: true,\r\n theme: 'plain',\r\n margin: { top: 80 },\r\n startY: doc.autoTableEndPosY(),\r\n styles: { fontSize: 10, overflow: 'linebreak', columnWidth: 'wrap' },\r\n columnStyles: {\r\n 0: { columnWidth: 370 },\r\n 1: { columnWidth: 100 },\r\n 2: { columnWidth: 100 }\r\n }\r\n });\r\n this.sendConfirmMail(doc);\r\n doc.save('PermitApplication.pdf');\r\n }\r\n\r\n\r\n cancelApplication() {\r\n let prevUrl = localStorage.getItem('previousUrl');\r\n if (prevUrl.search('/permit/approval') != -1) {\r\n this.router.navigate(['/permit/approval/']);\r\n } else if (prevUrl.search('/carrier/permit/application/mypermits') != -1) {\r\n this.router.navigate(['/carrier/permit/application/mypermits/',this.dataCntrl.carrierID]);\r\n } else {\r\n this.router.navigate(['/carrier/permit/application/',this.dataCntrl.carrierID]);\r\n }\r\n }\r\n // if (this.dataCntrl.application.id == undefined && this.dataCntrl.application.id == null) {\r\n // this.router.navigate(['/carrier/permit/application/' + this.dataCntrl.carrierID]);\r\n // } else {\r\n // this.showModal.showYesNo('Delete Application', 'Are you sure you want to delete?', `You're about to delete application`, 'Yes', 'No')\r\n // .subscribe((isConfirmed) => {\r\n // if (isConfirmed) {\r\n // this.deleteApplication()\r\n // } else {\r\n // return;\r\n // }\r\n // });\r\n // }\r\n // }\r\n\r\n // deleteApplication() {\r\n // this.pageload = true;\r\n\r\n // this.permitService.deletePermit(this.dataCntrl.permits.id).subscribe(x => {\r\n // this.deleteApp(this.dataCntrl.application.id);\r\n // this.pageload = false;\r\n\r\n // this.router.navigate(['/carrier/permit/application/' + this.dataCntrl.carrierID]);\r\n\r\n // })\r\n // //this.dataCntrl.application.id\r\n // //this.dataCntrl.permits.id\r\n // }\r\n\r\n deletePermit(id) {\r\n this.permitService.deletePermit(id).subscribe(x => {\r\n })\r\n\r\n }\r\n deleteApp(id) {\r\n this.applicationService.deleteApplication(id).subscribe(x => {\r\n })\r\n }\r\n disbledBtn() { \r\n let dueAmt: any = 0;\r\n if (!this.termsFlag && !this.isCompletePayment) {\r\n return true;\r\n } else {\r\n // if (this.vehicles.length > 0) {\r\n let acntBal: any = 0;\r\n if (this.dataCntrl['carrier'].account_balance != null) {\r\n acntBal = (this.dataCntrl['carrier'].account_balance).toString().replace(/\\s+/g, \"\");\r\n acntBal = acntBal.replace(\"R\", \"\");\r\n //acntBal = parseFloat(acntBal.replace(\"-\", \"\"));\r\n }\r\n //let dueAmt: any = 0;\r\n if (this.dueAmt != null && this.dueAmt != undefined && this.dueAmt != \"\") {\r\n dueAmt = this.dueAmt.replace(\" \", \"\");\r\n dueAmt = parseFloat(dueAmt.replace(\"R\", \"\"));\r\n }\r\n if (acntBal < dueAmt) {\r\n \r\n return true;\r\n // }\r\n } else {\r\n return false;\r\n }\r\n } \r\n }\r\n\r\n determineStatus() {\r\n // let dCreated = new Date(this.dataCntrl.application.date_created);\r\n // let dToday = new Date();\r\n // let dDifference = (dToday.valueOf() - dCreated.valueOf()) / 86400000;\r\n \r\n if ((this.dataCntrl['permittype'].freight_passenger_ind == 2 && this.dataCntrl['permittype'].temp_long_ind == 2 && this.dataCntrl['permittype'].charge_when_ind == 1)) \r\n {\r\n if (this.dataCntrl[\"application\"].status_id == this.permitStatus13 || this.dataCntrl[\"application\"].status_id == this.permitStatus14) {\r\n this.newStatus = this.permitStatus2;\r\n }\r\n else {\r\n this.newStatus = this.permitStatus7;\r\n }\r\n } else {\r\n this.newStatus = this.permitStatus2;\r\n }\r\n \r\n }\r\n\r\n sendConfirmMail(pdfDoc) {\r\n let payload: any = Object();\r\n payload['carrier_id'] = this.dataCntrl.carrierID;\r\n payload['application_id'] = this.dataCntrl.application.id;\r\n payload['document_id1'] = null;\r\n payload['document_id2'] = null;\r\n payload['document_id3'] = null;\r\n payload['corspdc_type_ind'] = 2;\r\n payload['body_text'] = null;\r\n payload['notes'] = null;\r\n payload['attachment'] = pdfDoc.output('datauri');\r\n payload['subject'] = 'Permit Application';\r\n payload['send_receive_ind'] = 1;\r\n payload['comm_type_ind'] = 1;\r\n payload['num_bookmarks'] = 1;\r\n payload['date_created'] = new Date();\r\n payload['date_modified'] = new Date();\r\n payload['user_created'] = new Date();\r\n payload['user_modified'] = new Date();\r\n payload['bookmark1_value'] = null;\r\n payload['bookmark2_value'] = null;\r\n payload['bookmark3_value'] = null;\r\n payload['bookmark4_value'] = null;\r\n payload['bookmark5_value'] = null;\r\n payload['bookmark6_value'] = null;\r\n payload['from_person_id'] = this.dataCntrl.carrier.person_id;\r\n payload['correspondence_person'] = [this.dataCntrl.carrier.person_id];\r\n payload['file_name'] = 'PrmitAppliaction';\r\n this.crspdService.sendMail(payload).subscribe(res => {\r\n this.toastr.success(`Your permit application was submitted successfully`, 'Permit Application');\r\n if (this.renewFlag) {\r\n this.router.navigate(['carrier/permit/application/renew/' + this.renewCrId]);\r\n } else {\r\n this.router.navigate(['/carrier/permit/application/' + this.dataCntrl.carrierID]);\r\n }\r\n })\r\n }\r\n \r\n SubmitApplication()\r\n {\r\n\r\n // this.showModal.showYesNo('Confirm Application', `Are you sure you want to submit application for a Permit ?. A confirmation email will be sent to '${this.userDetails.EmailAddress}'.`, `Please access your Portal for next steps.`, 'Ok', 'Cancel')\r\n // .subscribe((isConfirmed) => {\r\n // if(isConfirmed) {\r\n // this.determineStatus();\r\n // this.saveConfirmation(this.newStatus); \r\n // }\r\n // else\r\n // {\r\n // return;\r\n // }\r\n // }\r\n // );\r\n this.confirmDialogService.confirmThis(`Are you sure you want to submit application for a Permit?. A confirmation email will be sent to '${this.userDetails.EmailAddress}'. Please access your Portal for next steps.`, () => { \r\n \r\n this.determineStatus();\r\n this.saveConfirmation(this.newStatus);\r\n \r\n }, () => { \r\n return;\r\n }) \r\n }\r\n\r\n\r\n\r\n getUpdateBalance() {\r\n this.carrierService.getUpdateBalance(this.dataCntrl.carrier.carrier_account_id).subscribe(res => {\r\n\r\n })\r\n }\r\n sendCorr(ind) {\r\n let body_text = environment.authWebApi.systemData.Configurations.find(config => config.Code == \"SubmitEmail2\").Value;\r\n\r\n let payload: any = Object();\r\n payload['carrier_id'] = this.dataCntrl.carrierID;\r\n payload['application_id'] = this.dataCntrl.application.id;\r\n payload['permit_id'] = this.dataCntrl.permits.id;\r\n payload['document_id1'] = null;\r\n payload['document_id2'] = null;\r\n payload['document_id3'] = null;\r\n payload['corspdc_type_ind'] = 2;\r\n payload['body_text'] = body_text;\r\n payload['notes'] = null;\r\n payload['attachment'] = null;\r\n payload['subject'] = 'Permit Application';\r\n if (ind === 0) {\r\n payload['send_receive_ind'] = 11;\r\n\r\n } else {\r\n payload['send_receive_ind'] = ind;\r\n }\r\n payload['comm_type_ind'] = 1;\r\n payload['num_bookmarks'] = 0;\r\n payload['date_created'] = new Date();\r\n payload['date_modified'] = new Date();\r\n payload['user_created'] = this.userDetails.FirstName;\r\n payload['user_modified'] = this.userDetails.FirstName;\r\n payload['bookmark1_value'] = null;\r\n payload['bookmark2_value'] = null;\r\n payload['bookmark3_value'] = null;\r\n payload['bookmark4_value'] = null;\r\n payload['bookmark5_value'] = null;\r\n payload['bookmark6_value'] = null;\r\n payload['from_person_id'] = this.dataCntrl.carrier.person_id;\r\n payload['correspondence_person'] = [this.dataCntrl.carrier.person_id];\r\n payload['file_name'] = null;\r\n this.crspdService.sendMail(payload).subscribe(data => {\r\n\r\n }, error => {\r\n\r\n })\r\n\r\n }\r\n getSavedVehicleByPermit(id) {\r\n this.myLoader = true;\r\n this.pageload = true;\r\n this.listvehicles = [];\r\n this.vehicles=[];\r\n this.permitSevc.getAllPermitsByApplicationId(id).subscribe(data => {\r\n //console.log(this.dataCntrl.permit);\r\n let permits: any = data;\r\n \r\n //permits = data.filter(i => i.application_id == this.dataCntrl.permits.application_id);\r\n this.vehicleService.getPermitsAppVecle(id).subscribe((x: any) => {\r\n this.listvehicles = [];\r\n if (permits.length > 0) {\r\n \r\n for (let p = 0; p < permits.length; p++) {\r\n let allVeh = x.filter(i => i.permit_id == permits[p].id);\r\n\r\n if (allVeh.length > 0) {\r\n \r\n for (let v = 0; v < allVeh.length; v++) {\r\n let vehicles: any = allVeh[v];\r\n //this.vehicleService.getAllVe(allVeh[v].permit_id).subscribe(vehicles => {\r\n\r\n let dateValidTo: any = null;\r\n if (this.renewFlag) {\r\n if (permits[p].date_valid_to != null) {\r\n \r\n dateValidTo = new Date(permits[p].date_valid_to);\r\n dateValidTo.setDate(dateValidTo.getDate() + 1);\r\n \r\n dateValidTo = this.datePipe.transform(this.isEditMode && dateValidTo < new Date() ? new Date() : dateValidTo, 'dd/MM/yyyy');\r\n }\r\n else\r\n { \r\n dateValidTo = this.datePipe.transform(new Date() , 'dd/MM/yyyy');\r\n }\r\n } else {\r\n dateValidTo = this.datePipe.transform(this.isEditMode && (vehicles.start_date === null || new Date(vehicles.start_date)) < new Date()? new Date(): vehicles.start_date , 'dd/MM/yyyy');\r\n }\r\n \r\n let object = {\r\n id: vehicles.id,\r\n vehicle_type_id: vehicles.vehicle_type_id,\r\n vehicle_make_id: vehicles.vehicle_make_id,\r\n vehicle_make: vehicles.vehicle_make,\r\n vehicle_type: vehicles.vehicle_type,\r\n is_current: false,\r\n registration_number: vehicles.registration_number,\r\n // seating_capacity:vehicles.seating_capacity,\r\n number_passengers: vehicles.number_passengers,\r\n gvn: vehicles.gvn,\r\n vin: vehicles.vin,\r\n date_license_expiry: this.datePipe.transform(vehicles.date_license_expiry, 'dd/MM/yyyy'),\r\n start_date: dateValidTo,\r\n editMode: false,\r\n permit_fee : permits[p].permit_fee,\r\n application_fee : permits[p].application_fee\r\n }\r\n\r\n // if(this.listvehicles.length === data.vehicle.length){\r\n // //console.log('Its 0')\r\n // this.listvehicles = this.dataCntrl.vehicles ;\r\n // this.pageload = false;\r\n\r\n // return;\r\n // }\r\n\r\n // alert(JSON.stringify(object));\r\n this.listvehicles.push(object);\r\n \r\n\r\n\r\n this.dataCntrl.vehicles = this.listvehicles;\r\n\r\n this.listvehicles.sort(function (a, b) {\r\n if (a.id < b.id) { return -1; }\r\n if (a.id > b.id) { return 1; }\r\n return 0;\r\n })\r\n\r\n // this.vehicles == [];\r\n this.vehicles = this.dataCntrl.vehicles\r\n this.pageload = false;\r\n\r\n //return true\r\n // }, error => {\r\n // this.pageload = false;\r\n\r\n // this.dataCntrl.vehicles = this.listvehicles;\r\n // })\r\n this.pageload = false;\r\n }\r\n\r\n }\r\n\r\n this.pageload = false;\r\n this.dataCntrl.vehicles = this.listvehicles;\r\n // this.vehicles = [];\r\n this.vehicles = this.dataCntrl.vehicles;\r\n\r\n\r\n\r\n\r\n\r\n }\r\n } else {\r\n this.pageload = false;\r\n this.dataCntrl.vehicles = this.listvehicles;\r\n // this.vehicles = [];\r\n this.vehicles = this.dataCntrl.vehicles;\r\n\r\n }\r\n\r\n // this.newListvehicles.push(x)\r\n // //console.log(this.newListvehicles)\r\n // this.dataCntrl.vehicles = this.newListvehicles\r\n // // this.listvehicles = this.dataCntrl.vehicles;\r\n\r\n\r\n\r\n }, error => {\r\n this.pageload = false;\r\n this.dataCntrl.vehicles = this.listvehicles;\r\n this.vehicles = this.dataCntrl.vehicles;\r\n });\r\n\r\n //if (this.router.url.indexOf('edit') > 0) {\r\n setTimeout(() => {\r\n this.populateData();\r\n this.count = this.count++;\r\n this.myLoader = false;\r\n\r\n }, 4000);\r\n //}\r\n\r\n return true;\r\n\r\n }, error => {\r\n this.pageload = false;\r\n this.dataCntrl.vehicles = this.listvehicles;\r\n });\r\n\r\n\r\n }\r\n populateData() {\r\n if (this.count == 0) {\r\n this.pageload = true;\r\n\r\n this.count = this.count + 1;\r\n this.paidAmt = 0;\r\n this.dueAmt = 0;\r\n this.submissionAmt = 0;\r\n this.totalFee = 0;\r\n\r\n if (this.dataCntrl.vehicles == null || this.dataCntrl.vehicles == undefined) {\r\n this.dataCntrl.vehicles = [];\r\n }\r\n\r\n // alert('v: ' + this.dataCntrl.vehicles.length)\r\n this.dataCntrl.permits.forEach(permit => {\r\n \r\n \r\n // Paid Amount\r\n if (permit.application_invoice_link != null && (permit.application_invoice_link).substring(0,3) == \"INV\") {\r\n this.paidAmt += permit.application_fee; \r\n }\r\n\r\n if (permit.permit_invoice_link != null && (permit.permit_invoice_link).substring(0,3) == \"INV\") {\r\n this.paidAmt += permit.permit_fee; \r\n }\r\n\r\n // Total Fee\r\n this.totalFee += parseFloat(permit.application_fee) + parseFloat(permit.permit_fee);\r\n // if (this.vehicles == null || this.vehicles.length == 0) {\r\n // this.totalFee = permit.application_fee;\r\n // this.lineTotal = permit.application_fee;\r\n // }\r\n\r\n this.lineTotal = (parseFloat(permit.application_fee) + parseFloat(permit.permit_fee));\r\n this.lineTotal = this.formatCurrency(this.lineTotal);\r\n\r\n // charge_when_ind\r\n if (this.isCompletePayment == true && permit.renewal_num > 0) {\r\n this.chargeInd = 2;\r\n } else {\r\n this.chargeInd = this.dataCntrl['permittype'].charge_when_ind;\r\n }\r\n // alert(this.chargeInd);\r\n\r\n if ((this.vehicles == null || this.vehicles.length == 0) && (this.chargeInd == 1)) {\r\n this.dueAmt = permit.application_fee - this.paidAmt;\r\n this.submissionAmt = permit.application_fee;\r\n }\r\n //this.totalFee = this.formatCurrency(this.totalFee);\r\n // alert(this.totalFee);\r\n // Application Fee Only\r\n if ((this.chargeInd == 1)) {\r\n this.submissionAmt += permit.application_fee;\r\n if (this.dataCntrl['application'].status_id == this.permitStatus13 || this.dataCntrl['application'].status_id == this.permitStatus14) {\r\n this.dueAmt += parseFloat(permit.permit_fee) ;\r\n } \r\n else if (permit.permit_invoice_link != null && (permit.permit_invoice_link).substring(0,3) == \"INV\") {\r\n this.dueAmt = (this.submissionAmt + parseFloat(permit.permit_fee)) - this.paidAmt;\r\n } \r\n else {\r\n this.dueAmt = this.submissionAmt - this.paidAmt;\r\n }\r\n }\r\n // Application & Permit Fee\r\n if (this.chargeInd == 2) {\r\n this.submissionAmt += parseFloat(permit.application_fee) + parseFloat(permit.permit_fee);\r\n this.dueAmt = this.submissionAmt - this.paidAmt;\r\n }\r\n permit.application_fee = this.formatCurrency(permit.application_fee);\r\n permit.permit_fee = this.formatCurrency(permit.permit_fee)\r\n\r\n });\r\n this.submissionAmt = this.formatCurrency(this.submissionAmt);\r\n this.paidAmt = this.formatCurrency(this.paidAmt);\r\n this.dueAmt = this.formatCurrency(this.dueAmt);\r\n\r\n this.pageload = false;\r\n }\r\n }\r\n getVehicleMake() {\r\n this.vehicleMakeService.getAll().subscribe((result: any) => {\r\n this.list_vehicle_make = result\r\n this.selectedVMake = result.find(x => x.code == 'Unknown');\r\n }, error => {\r\n\r\n });\r\n }\r\n saveApplication() {\r\n let object: any = Object();\r\n object['date_modified'] = this.dataCntrl.application.date_modified;\r\n object['user_modified'] = this.dataCntrl.application.user_modified;\r\n object['reference_num'] = this.dataCntrl.application.reference_num;\r\n object['permit_type_id'] = this.dataCntrl.application.permit_type_id;\r\n object['person_id'] = this.dataCntrl.application.person_id;\r\n object['carrier_id'] = this.dataCntrl.application.carrier_id;\r\n object['date_created'] = this.dataCntrl.application.date_created;\r\n object['user_created'] = this.dataCntrl.application.user_created;\r\n let oldResult: any = this.dataCntrl.application;\r\n this.applicationService.postApplication(object)\r\n .subscribe(result => {\r\n this.savePermit(result);\r\n });\r\n }\r\n updatePermitRenew() {\r\n if (this.dataCntrl.permits.renewal_num == null) {\r\n this.dataCntrl.permits.renewal_num = 1;\r\n } else {\r\n this.dataCntrl.permits.renewal_num = parseInt(this.dataCntrl.permits.renewal_num) + 1;\r\n }\r\n this.permitService.upadatePermit(this.dataCntrl.permit)\r\n .subscribe((result:any) => {\r\n result.renewal_num = this.dataCntrl.permits.renewal_num;\r\n this.dataCntrl.permit = result;\r\n });\r\n }\r\n savePermit(data) {\r\n this.updatePermitRenew();\r\n\r\n this.dataCntrl.permits.forEach(permit => {\r\n\r\n let permitObject: any = JSON.parse(JSON.stringify(permit));\r\n permitObject.permit_type_id = data.permit_type_id;\r\n permitObject.application_id = data.id;\r\n permitObject.date_modified = permit.date_created = new Date();\r\n permitObject.user_modified = permit.user_created = environment.authWebApi.userData.User.FirstName;\r\n permitObject.permit_fee = this.dataCntrl.permittype.current_fee == null ? 0 : this.dataCntrl.permittype.current_fee;\r\n permitObject.application_fee = this.dataCntrl.permittype.current_application_fee == null ? 0 : this.dataCntrl.permittype.current_application_fee;\r\n permitObject.status_id = 11;\r\n permitObject.date_11 = null;\r\n //permitObject.renewal_num=0;\r\n // permitObject.date_11=newDate2;\r\n permitObject.date_valid_from = null;\r\n permitObject.date_valid_to = null;\r\n permitObject.number_passengers = this.vehicles[0].number_passengers;\r\n this.permitService.postPermit(permitObject)\r\n .subscribe(result => {\r\n this.saveVehicles(result, data);\r\n });\r\n });\r\n }\r\n saveVehicles(data, application) {\r\n let count: any = 0;\r\n for (let item of this.vehicles) {\r\n let newDate1;\r\n if (!item.date_license_expiry) {\r\n item.date_license_expiry = null;\r\n }\r\n if (!item.start_date) {\r\n item.start_date = null;\r\n }\r\n if (item.date_license_expiry != null) {\r\n let date = item.date_license_expiry.split('/');\r\n let day = parseInt(date[0], 10);\r\n let month = parseInt(date[1], 10);\r\n let year = parseInt(date[2], 10);\r\n let newDate = year + '/' + month + '/' + day;\r\n newDate1 = new Date(newDate);\r\n newDate1.setDate(newDate1.getDate() + 1);\r\n }\r\n let newDate2;\r\n if (item.start_date != null) {\r\n let date2 = item.start_date.split('/');\r\n let day2 = parseInt(date2[0], 10);\r\n let month2 = parseInt(date2[1], 10);\r\n let year2 = parseInt(date2[2], 10);\r\n let newDate10 = year2 + '/' + month2 + '/' + day2;\r\n newDate2 = new Date(newDate10);\r\n newDate2.setDate(newDate2.getDate() + 1);\r\n\r\n }\r\n let newDatepm: any = null;\r\n if (this.dataCntrl.permits.date_valid_to != null) {\r\n let parseDate: any = this.dataCntrl.permits.date_valid_to.split(\"T\")[0];\r\n newDatepm = new Date(Date.parse(parseDate + \" EDT\"));\r\n newDatepm.setDate(newDatepm.getDate() + 1);\r\n newDatepm = newDatepm.toISOString();\r\n }\r\n\r\n\r\n let object = {\r\n id: \"-1\",\r\n vehicle_type_id: item.vehicle_type_id,\r\n vehicle_type: item.vehicle_type,\r\n vehicle_make_id: this.selectedVMake.id,\r\n vehicle_make: this.selectedVMake.description,\r\n is_current: true,\r\n registration_number: item.registration_number,\r\n number_passengers: item.number_passengers,\r\n gvn: item.gvn,\r\n vin: item.vin,\r\n permit_id: 0,\r\n date_license_expiry: newDate1,\r\n start_date: newDate2,\r\n date_modified: new Date(),\r\n date_created: new Date(),\r\n user_modified: item.user_created = environment.authWebApi.userData.User.FirstName,\r\n editMode: true\r\n }\r\n if (count == 0) {\r\n data.date_11 = newDatepm;\r\n this.permitService.upadatePermit(data).subscribe((res:any) => {\r\n object.permit_id = res.id\r\n this.vehicleService.updateVehicle(object).subscribe(result => {\r\n });\r\n });\r\n } else {\r\n data.date_11 = item.start_date;\r\n data.date_valid_to = null;\r\n data.date_valid_from = null;\r\n data.number_passengers = item.number_passengers;\r\n this.permitService.postPermit(data).subscribe((result:any) => {\r\n // this.dataCntrl.permit = result;\r\n object.permit_id = result.id\r\n this.vehicleService.updateVehicle(object).subscribe(result => {\r\n });\r\n });\r\n }\r\n count++;\r\n }\r\n this.saveRoutes(data, application);\r\n }\r\n getRoutes() {\r\n this.routeService.getDoNotBelong().subscribe((rts: any) => {\r\n this.ownRoutes = rts.filter(x => x.user_created == environment.authWebApi.userData.User.FirstName);\r\n });\r\n }\r\n saveRoutes(data, app) {\r\n this.routeService.getMyRoute(this.dataCntrl.application.route_id).subscribe((route: any) => {\r\n\r\n let id = this.ownRoutes.filter((map) => { return map.description == route.description });\r\n let routes: any = {\r\n id: id[0].id,\r\n code: route.code.split(\"-\")[0] + \"-\" + app.id,\r\n route_detail: route.route_detail,\r\n description: route.description,\r\n route_summary: route.route_summary,\r\n // num_countries:this.form.value.num_countries,\r\n // num_border_crossings:this.form.value.num_border_crossings,\r\n user_created: environment.authWebApi.userData.User.FirstName,\r\n user_modified: environment.authWebApi.userData.User.FirstName,\r\n date_created: new Date(),\r\n date_modified: new Date(),\r\n }\r\n this.routeService.saveRouteAndRouteLeg(routes).subscribe((x: any) => {\r\n data.route_id = x.id;\r\n this.permitService.upadatePermit(data)\r\n .subscribe(result => {\r\n app.route_id = x.id;\r\n app.route_summary = this.dataCntrl.application.route_summary;\r\n app.route_detail = this.dataCntrl.application.route_detail;\r\n app.motivation_detail = this.dataCntrl.application.motivation_detail;\r\n this.applicationService.putApplication(app)\r\n .subscribe(result => {\r\n this.dataCntrl.application = result;\r\n this.dataCntrl.carrier.id = this.renewCrId;\r\n this.updateConfm(this.permitStatus6);\r\n });\r\n });\r\n });\r\n });\r\n }\r\n backToTab() {\r\n const tabNum = this.utility.tabPosition(this.utility.sequenceNumbers.cnfNum);\r\n this.applicationService.setTab(tabNum);\r\n //this.applicationService.setTab(5);\r\n }\r\n backtoApp(){\r\n // this.router.navigate(['/carrier/permit/application/',this.dataCntrl.carrierID]);\r\n let prevUrl = localStorage.getItem('previousUrl');\r\n if (prevUrl.search('/permit/approval') != -1) {\r\n this.router.navigate(['/permit/approval/']);\r\n } else if (prevUrl.search('/carrier/permit/application/mypermits') != -1) {\r\n this.router.navigate(['/carrier/permit/application/mypermits/',this.dataCntrl.carrierID]);\r\n } else {\r\n this.router.navigate(['/carrier/permit/application/',this.dataCntrl.carrierID]);\r\n }\r\n }\r\n\r\n //New updateConfirm\r\n updateConfm(permitStatus) {\r\n this.pageload = true;\r\n if (!this.termsFlag) {\r\n this.pageload = false;\r\n return this.toastr.warning('Please agree the terms', 'Terms');\r\n }\r\n const config: any = environment.authWebApi.systemData.Configurations.find(config => config.Code == \"SubmitEmail2\");\r\n\r\n let payload: any = Object();\r\n payload['carrier_id'] = this.dataCntrl.carrierID;\r\n payload['application_id'] = this.dataCntrl.application.id;\r\n //payload['permit_id'] = this.dataCntrl.permits.id;\r\n payload['document_id1'] = null;\r\n payload['document_id2'] = null;\r\n payload['document_id3'] = null;\r\n payload['corspdc_type_ind'] = 3;\r\n payload['body_text'] = config.Value;\r\n payload['notes'] = null;\r\n payload['attachment'] = null;\r\n payload['subject'] = config.Description;\r\n payload['send_receive_ind'] = 11;\r\n payload['comm_type_ind'] = 3;\r\n payload['num_bookmarks'] = 0;\r\n payload['date_created'] = new Date();\r\n payload['date_modified'] = new Date();\r\n payload['user_created'] = this.userDetails.FirstName;\r\n payload['user_modified'] = this.userDetails.FirstName;\r\n payload['bookmark1_value'] = null;\r\n payload['bookmark2_value'] = null;\r\n payload['bookmark3_value'] = null;\r\n payload['bookmark4_value'] = null;\r\n payload['bookmark5_value'] = null;\r\n payload['bookmark6_value'] = null;\r\n //payload['from_person_id'] = this.dataCntrl.carrier.person_id;\r\n //payload['correspondence_person'] = [this.dataCntrl.carrier.person_id];\r\n payload['file_name'] = null;\r\n ////console.log('Application data : ', payload)\r\n // this.permitService.UpdatePermitNum(this.dataCntrl.permits.id).subscribe(data => {\r\n // });\r\n let oldAppID = 0;\r\n if (this.permitRenewal == false) {\r\n if(localStorage.getItem(\"oldAppId\")){\r\n if(this.router.url.indexOf('correction') > 0 || this.router.url.indexOf('duplicate') > 0 || this.router.url.indexOf('vehicle') > 0 || this.router.url.indexOf('change') > 0){\r\n oldAppID = parseInt(localStorage.getItem(\"oldAppId\"));\r\n //console.log(oldAppID)\r\n }\r\n }\r\n }\r\n this.crspdService.savePermitCorrespondence(payload,oldAppID,permitStatus, true).subscribe((data:any) => {\r\n this.pageload = false;\r\n //this.isLoading = false;\r\n ////console.log('Correspondence : ', data);\r\n if (data.isSaved == \"Success\") {\r\n if (this.renewFlag) {\r\n this.toastr.success(`Your Permit Renewal has been submitted successfully.`, 'Permit Renewal');\r\n } else {\r\n this.toastr.success(`Your permit application was submitted successfully`, 'Permit Application');\r\n }\r\n if (this.renewFlag) {\r\n this.router.navigate(['carrier/permit/application/' + this.renewCrId]);\r\n } else {\r\n this.router.navigate(['/carrier/permit/application/' + this.dataCntrl.carrierID]);\r\n }\r\n } else {\r\n this.toastr.error(`Error during permit confirmation. The server error response message : ${data.isSaved}`, `ERROR : Confirmation`);\r\n // this.toastr.error(`Submission for ${this.dataCntrl['carrier'].name} failed.Please contact the system administrator if the problem persists.`, `ERROR : Confirmation`);\r\n }\r\n }, error => {\r\n this.pageload = false;\r\n //this.isLoading = false;\r\n this.toastr.error(`Error during permit confirmation. The server responded with error code \"${error.status} : ${error.statusText}\"\"`, `ERROR : Confirmation`);\r\n // this.toastr.error(`Submission for ${this.dataCntrl['carrier'].name} failed.Please contact the system administrator if the problem persists.`, `Confirmation`);\r\n })\r\n\r\n\r\n }\r\n\r\n getOldStartDate() {\r\n // BUG : 121\r\n // all we have to work with is he old application number from local storage\r\n let appId: string = localStorage.getItem(\"oldAppId\");\r\n let perm_num:any = this.dataCntrl.permits.permit_num;\r\n // ...so we retieve all the vehicles for this application\r\n this.vehicleService.getPermitsAppVecle(appId).subscribe((result:any) => {\r\n // ...then we loop through them all\r\n result.forEach(perm => {\r\n this.permitService.getById(perm.permit_id).subscribe((vehcle:any) => {\r\n if (perm_num == vehcle.permit_num) {\r\n this.dataCntrl.oldPermitStartDate=perm.start_date;\r\n }\r\n });\r\n });\r\n });\r\n }\r\n setPageHTML(){\r\n this.authWebService.webrequest(\"GET\",'ConfigurationService', 'SystemConfig',JSON.stringify({\r\n systemCode: environment.authWebApi.systemCode\r\n })).then((data) => {\r\n environment.authWebApi.systemData = data;\r\n let html = environment.authWebApi.systemData.Configurations.find(p => p.Code == 'iCBMS_Land1');\r\n if (html) {\r\n this.pagehtml = this.sanitizer.bypassSecurityTrustHtml(this.dataCntrl.application.route_detail);\r\n } else {\r\n this.pagehtml = \"CBRTA - Integrated Cross Border Management System\";\r\n }\r\n\r\n //console.log( environment.authWebApi.userData )\r\n }, (error) => {\r\n //console.log(error)\r\n });\r\n }\r\n\r\n\r\n}\r\n\r\n\r\n\r\n","
\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n PROFORMA INVOICE AND CONFIRMATION\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Account Id : {{debtorAccountId}}
Application No : {{dataCntrl['application'].id}}
Application Date : {{dataCntrl['application'].date_created | date :'dd/MM/yyyy'}}
Applicant : {{dataCntrl['carrier'].name}}
Email Address : {{userDetails.EmailAddress}}
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n Physical Address\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Address : {{dataCntrl['carrier'].physical_address_1}}
Town : {{dataCntrl['carrier'].physical_address_town}}
Post Code : {{dataCntrl['carrier'].physical_post_code}}
Country : {{country}}
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n

\r\n \r\n \r\n\r\n \r\n
Route:{{dataCntrl.application.route_summary}}
\r\n \r\n
\r\n\r\n
\r\n\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n
Account Balance : {{dataCntrl['carrier'].account_balance==null ? ' R 0.00' : dataCntrl['carrier'].account_balance}}
\r\n\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 0\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
Vehicle Registration Vehice TypeStart DatePermit TypeDurationApplication FeePermit FeeLine Total
{{list.registration_number}}{{list.vehicle_type}}{{list.start_date}}{{dataCntrl['permittype'].description}}{{dataCntrl['permittype'].permit_years}} - Year 1\">{{dataCntrl['permittype'].permit_years}} - Years{{dataCntrl['permittype'].permit_months}} - Month 1\">{{dataCntrl['permittype'].permit_months}} - Months{{dataCntrl['permittype'].permit_days}} - Day 1\">{{dataCntrl['permittype'].permit_days}} - Days{{ptypeYears}} - Year 1\">{{ptypeYears}} - Years{{ptypeMonth}} - Month 1\">{{ptypeMonth}} - Months{{ptypeDays}} - Day 1\">{{ptypeDays}} - Days{{formatCurrency(list.application_fee)}}{{formatCurrency(list.permit_fee)}}{{formatCurrency(lineTotal)}}
{{dataCntrl['permittype'].description}}{{dataCntrl['permittype'].permit_years}} - Year 1\">{{dataCntrl['permittype'].permit_years}} - Years{{dataCntrl['permittype'].permit_months}} - Month 1\">{{dataCntrl['permittype'].permit_months}} - Months{{dataCntrl['permittype'].permit_days}} - Days 1\">{{dataCntrl['permittype'].permit_days}} - Days{{list.application_fee}}{{list.application_fee}}
Total {{ formatCurrency(totalFee) }}
\r\n Fees shown in red are due on submission of the application. The remaining fee(s) if any will be payable before any permit is issued. These fees could change later\r\n Payable on submission {{submissionAmt }}
Amount paid {{paidAmt }}
Amount due now {{dueAmt }}
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n
Declaration by {{userDetails.FirstName}} {{userDetails.LastName}} on {{decl_date|date : 'dd/MM/yyyy'}}\r\n You declare that you agree with the declaration above by checking the box:\r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-under-construction',\r\n templateUrl: './under-construction.component.html',\r\n styleUrls: ['./under-construction.component.css']\r\n})\r\nexport class UnderConstructionComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","

\r\n Under Construction\r\n

\r\n","import { Component, OnInit, Input, Output } from '@angular/core';\r\nimport { RouteService } from 'app/services/route.service';\r\nimport { AuthWebService } from 'app/services/authweb.service';\r\nimport { FormGroup, FormControl, Validators, FormBuilder, FormArray } from '@angular/forms';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { TimetableService } from 'app/services/timetable.service';\r\ndeclare var $: any;\r\n\r\n@Component({\r\n selector: 'manage',\r\n templateUrl: './manage.component.html',\r\n styleUrls: ['./manage.component.css']\r\n})\r\nexport class ManageComponent implements OnInit {\r\n @Input('dataCntrl') dataCntrl: any;\r\n form;\r\n routeLeg: any;\r\n isLoading = false;\r\n message = null;\r\n isCreated = true;\r\n timetables: FormArray;\r\n interval: any = [];\r\n user = { LastName: '' };\r\n\r\n\r\n\r\n constructor(private timetblSrc: TimetableService, private authWebService: AuthWebService, private formBuilder: FormBuilder, private toastr: ToastrService) { }\r\n\r\n ngOnInit() {\r\n this.user.LastName = (this.authWebService.userData) ? this.authWebService.userData.User.LastName : '';\r\n this.initForm();\r\n ////console.log('dataCntrl = ', this.dataCntrl);\r\n this.onLoadTimetable();\r\n }\r\n initForm() {\r\n this.form = this.formBuilder.group({\r\n id: [0, []]\r\n , permit_id: [0, []]\r\n , route_id: [0, []]\r\n , timetable_direction: ['Forward', []]\r\n , timetable_interval: ['', []]\r\n , timetable_pair_num: [1, []]\r\n , is_all: [false, []]\r\n , is_for_day1: [false, []]\r\n , is_for_day2: [false, []]\r\n , is_for_day3: [false, []]\r\n , is_for_day4: [false, []]\r\n , is_for_day5: [false, []]\r\n , is_for_day6: [false, []]\r\n , is_for_day7: [false, []]\r\n //borderCrossings: this.formBuilder.array([]),\r\n });\r\n\r\n }\r\n onLoadTimetable = () => {\r\n if (this.dataCntrl.timeId > 0) {\r\n this.isCreated = false;\r\n this.onSwitchOnOrOff(true);\r\n this.message = 'Loading timetable, please wait...';\r\n this.timetblSrc.getById(this.dataCntrl.timeId).subscribe((rsrc:any) => {\r\n //console.log('Timetable = ', rsrc);\r\n\r\n this.form.patchValue({\r\n id: rsrc.timetable.id\r\n //, permit_id: rsrc.timetable.permit_id\r\n , route_id: rsrc.timetable.route_id\r\n , timetable_direction: rsrc.timetable.timetable_direction\r\n , timetable_interval: rsrc.timetable.timetable_interval\r\n , timetable_pair_num: rsrc.timetable.timetable_pair_num\r\n , is_all: rsrc.timetable.is_all\r\n , is_for_day1: rsrc.timetable.is_for_day1\r\n , is_for_day2: rsrc.timetable.is_for_day2\r\n , is_for_day3: rsrc.timetable.is_for_day3\r\n , is_for_day4: rsrc.timetable.is_for_day4\r\n , is_for_day5: rsrc.timetable.is_for_day5\r\n , is_for_day6: rsrc.timetable.is_for_day6\r\n , is_for_day7: rsrc.timetable.is_for_day7\r\n });\r\n\r\n this.onSwitchOnOrOff();\r\n //this.toastr.success('Create Timetable', 'Timetable created successfully');\r\n\r\n }, error => {\r\n //console.log('Form data = ', JSON.stringify(error));\r\n this.onSwitchOnOrOff();\r\n this.toastr.error('Failed to load timetable. If the problem persists, please contact system administrator.', 'Save Route');\r\n });\r\n }\r\n }\r\n\r\n\r\n //onLoadRouteById = (id) => {\r\n // this.onSwitchOnOrOff(true);\r\n // this.rutSrc.getRouteLegById(id).subscribe(\r\n // resource => {\r\n // this.routeLeg = resource;\r\n // this.form.patchValue({\r\n // id: this.routeLeg.id,\r\n // route_type_ind: this.routeLeg.route_type_ind,\r\n // display_ind: this.routeLeg.display_ind,\r\n // code: this.routeLeg.code,\r\n // route_detail: this.routeLeg.route_detail,\r\n // route_summary: this.routeLeg.route_summary,\r\n // description: this.routeLeg.description,\r\n // is_active: this.routeLeg.is_active,\r\n // sort_order: this.routeLeg.sort_order,\r\n // group_code: this.routeLeg.group_code,\r\n // date_created: this.routeLeg.date_created,\r\n // departure_place_id: this.routeLeg.departure_place_id,\r\n // destination_place_id: this.routeLeg.destination_place_id,\r\n // departure_country_id: this.routeLeg.departure_country_id,\r\n // destination_country_id: this.routeLeg.destination_country_id,\r\n // });\r\n\r\n // this.onSwitchOnOrOff();\r\n // },\r\n // error => {\r\n // this.onSwitchOnOrOff();\r\n // //console.log('Problems : ', error);\r\n // this.toastr.error('Failed to load route. If the problem persists, please contact system administrator.', 'Save Route');\r\n\r\n // }\r\n // );\r\n //}\r\n\r\n onSwitchOnOrOff = (state = false) => {\r\n this.isLoading = state;\r\n }\r\n\r\n onSubmit = (form: any) => {\r\n ////console.log('Index 2 = ', this.dataCntrl.index);\r\n form.timetable_interval = this.setInterval();\r\n if (this.dataCntrl.isReturned) {\r\n\r\n ////console.log('Timetable ID: ', this.dataCntrl.timeId);\r\n this.onCreateReturnTimetable(form);\r\n } else {\r\n if (this.dataCntrl.timeId > 0) {\r\n this.onSwitchOnOrOff(true);\r\n this.message = 'Updating timetable, please wait...';\r\n form.user_modified = this.user.LastName;\r\n form = { timetable: form };\r\n this.timetblSrc.update(form).subscribe(rsrc => {\r\n ////console.log('Updated data = ', rsrc);\r\n this.onSwitchOnOrOff();\r\n $(\"#timeBtn\").click();\r\n this.toastr.success('Timetable updated successfully', 'Update Timetable');\r\n this.onClose();\r\n this.dataCntrl.timeId = 0;\r\n }, error => {\r\n this.onSwitchOnOrOff();\r\n this.toastr.error('Failed to update timetable. If the problem persists, please contact system administrator.', 'Update Timetable');\r\n this.onClose();\r\n this.dataCntrl.timeId = 0;\r\n });\r\n } else {\r\n form.timetable_pair_num = this.dataCntrl.index;\r\n form.route_id = this.dataCntrl.application.route_id;\r\n // alert(JSON.stringify( this.dataCntrl.application.permits));\r\n // this.dataCntrl.application.permits.forEach(permit => {\r\n // form.permit_id.push(permit.id);\r\n // });\r\n \r\n form.user_created = form.user_modified = this.user.LastName;\r\n this.onSwitchOnOrOff(true);\r\n this.message = 'Creating timetable, please wait...';\r\n form = { timetable: form };\r\n this.timetblSrc.add(form).subscribe(rsrc => {\r\n ////console.log('Saved data = ', rsrc);\r\n this.onSwitchOnOrOff();\r\n $(\"#timeBtn\").click();\r\n this.toastr.success('Timetable created successfully', 'Create Timetable');\r\n setTimeout(() => {\r\n this.toastr.clear();\r\n clearTimeout();\r\n }, 3000);\r\n $(\"#timeBtn\").click();\r\n this.onClose();\r\n }, error => {\r\n this.onSwitchOnOrOff();\r\n this.toastr.error('Failed to create timetable. If the problem persists, please contact system administrator.', 'Create Timetable');\r\n this.onClose();\r\n });\r\n }\r\n }\r\n\r\n }\r\n\r\n\r\n createTimetableLegs(leg: any = null): FormGroup {\r\n return this.formBuilder.group({\r\n legId: 0,\r\n placeFrom: 0,\r\n placeTo: 0,\r\n stepNum: 1,\r\n routeType: 0,\r\n stopType: 0,\r\n station_from: null,\r\n station_to: null,\r\n country_from: '',\r\n country_to: '',\r\n timetableLeg_id: 0,\r\n timetable_id: 0,\r\n depart_time: null,\r\n arrive_time: null,\r\n duration: null\r\n });\r\n }\r\n\r\n addRouteLegs(legs: any): void {\r\n this.timetables = this.form.get('timetables') as FormArray;\r\n let start = legs[0];\r\n let current: any;\r\n legs.forEach(leg => {\r\n if (leg.stepNum > 1) {\r\n this.timetables.push(this.formBuilder.group({\r\n legId: leg.legId,\r\n placeFrom: leg.placeFrom,\r\n placeTo: leg.placeTo,\r\n stepNum: leg.stepNum,\r\n routeType: leg.routeType,\r\n stopType: leg.stopType,\r\n station_from: leg.station_from,\r\n station_to: leg.station_to,\r\n country_from: leg.country_from,\r\n country_to: leg.country_to,\r\n timetableLeg_id: leg.timetableLeg_id,\r\n timetable_id: leg.timetable_id,\r\n depart_time: leg.depart_time,\r\n arrive_time: leg.arrive_time,\r\n duration: leg.duration\r\n }));\r\n start = leg;\r\n } else {\r\n this.form.patchValue({ first_place_leg_id: leg.legId });\r\n }\r\n })\r\n\r\n }\r\n\r\n\r\n isAll = (event: any) => {\r\n if (event.currentTarget.checked) {\r\n this.form.patchValue({\r\n is_for_day1: true\r\n , is_for_day2: true\r\n , is_for_day3: true\r\n , is_for_day4: true\r\n , is_for_day5: true\r\n , is_for_day6: true\r\n , is_for_day7: true\r\n });\r\n //this.interval.push(['Mondays', 'Tuesdays', 'Wednesdays', 'Thursdays', 'Fridays', 'Saturdays', 'Sundays']);\r\n } else {\r\n this.form.patchValue({\r\n is_for_day1: false\r\n , is_for_day2: false\r\n , is_for_day3: false\r\n , is_for_day4: false\r\n , is_for_day5: false\r\n , is_for_day6: false\r\n , is_for_day7: false\r\n });\r\n this.interval = [];\r\n }\r\n //console.log('Interval = ', this.interval.toString());\r\n }\r\n\r\n setInterval = () => {\r\n this.interval = [];\r\n const isAll = this.form.get('is_all').value;\r\n if (isAll) {\r\n this.interval.push('Daily');\r\n\r\n } else {\r\n\r\n const intervals = [\r\n { key: this.form.get('is_for_day1').value, value: 'Mondays' },\r\n { key: this.form.get('is_for_day2').value, value: 'Tuesdays' },\r\n { key: this.form.get('is_for_day3').value, value: 'Wednesdays' },\r\n { key: this.form.get('is_for_day4').value, value: 'Thursdays' },\r\n { key: this.form.get('is_for_day5').value, value: 'Fridays' },\r\n { key: this.form.get('is_for_day6').value, value: 'Saturdays' },\r\n { key: this.form.get('is_for_day7').value, value: 'Sundays' }\r\n ];\r\n\r\n intervals.forEach(elm => {\r\n if (elm.key == true) {\r\n this.interval.push(elm.value);\r\n }\r\n });\r\n }\r\n //this.form.patchValue({ 'timetable_interval': this.interval.toString()});\r\n\r\n\r\n\r\n ////console.log('Interval = ', this.interval.toString());\r\n return this.interval.toString();\r\n\r\n\r\n }\r\n\r\n unSelectAll() {\r\n const intervals = [\r\n this.form.get('is_for_day1').value,\r\n this.form.get('is_for_day2').value,\r\n this.form.get('is_for_day3').value,\r\n this.form.get('is_for_day4').value,\r\n this.form.get('is_for_day5').value,\r\n this.form.get('is_for_day6').value,\r\n this.form.get('is_for_day7').value\r\n ];\r\n const isAll = (intervals.indexOf(false) == -1) ? true : false;\r\n this.form.patchValue({ is_all: (isAll) ? true : false });\r\n }\r\n\r\n\r\n onClose = () => {\r\n $(\"#Manager\").modal('hide');\r\n }\r\n\r\n isValidForm = () => {\r\n const intervals = [\r\n this.form.get('is_for_day1').value,\r\n this.form.get('is_for_day2').value,\r\n this.form.get('is_for_day3').value,\r\n this.form.get('is_for_day4').value,\r\n this.form.get('is_for_day5').value,\r\n this.form.get('is_for_day6').value,\r\n this.form.get('is_for_day7').value\r\n ];\r\n return (intervals.indexOf(true) > -1) ? true : false;\r\n\r\n }\r\n\r\n onCreateReturnTimetable = (form: any) => {\r\n form.user_created = form.user_modified = this.user.LastName;\r\n form.timetable_direction = \"Return\"\r\n this.onSwitchOnOrOff(true);\r\n this.message = 'Creating return timetable, please wait...';\r\n form = { timetable: form };\r\n this.timetblSrc.createReturn(form).subscribe((rsrc:any) => {\r\n //console.log('created Return = ', rsrc);\r\n this.onSwitchOnOrOff();\r\n if (rsrc.isCreated) {\r\n $(\"#timeBtn\").click();\r\n this.toastr.success('Return timetable created successfully', 'Create Return Timetable');\r\n setTimeout(() => {\r\n this.toastr.clear();\r\n clearTimeout();\r\n }, 4000);\r\n } else {\r\n this.toastr.info(\"The timetable can't be used to create a return timetable.\", 'Create Return Timetable');\r\n }\r\n this.onClose();\r\n }, error => {\r\n this.onSwitchOnOrOff();\r\n this.toastr.error('Failed to create return timetable. If the problem persists, please contact system administrator.', 'Create Return Timetable');\r\n this.onClose();\r\n });\r\n\r\n }\r\n\r\n\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n
Please check all the days to which the timetable applies...
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n
Select allMondayTuesdayWednesdayThursdayFridaySaturdaySunday
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n\r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n","import { Component, OnInit, Input, ViewChild } from '@angular/core';\r\nimport { FormControl, Validators, FormGroup, FormBuilder } from '@angular/forms';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { ApplicationService } from 'app/services/application.service';\r\nimport { Router, ActivatedRoute, Params } from '@angular/router';\r\nimport { PermitService } from 'app/services/permit.service';\r\nimport { VehicleService } from 'app/services/vehicle.service';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { debounceTime, distinctUntilChanged, filter, map, merge } from 'rxjs/operators';\r\nimport { PlaceService } from 'app/services/place.service';\r\nimport { NgbTypeahead } from '@ng-bootstrap/ng-bootstrap';\r\nimport { DocumenttypeService } from 'app/services/documenttype.service';\r\nimport { RouteService } from 'app/services/route.service';\r\nimport { CountryService } from 'app/services/country.service';\r\nimport { PopupService } from 'app/services/shared/popup.service';\r\nimport { TimetableService } from 'app/services/timetable.service';\r\nimport { UtilityServiceService } from 'app/services/utility-service.service';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { DatePipe } from '@angular/common';\r\nimport * as angular from 'angular';\r\nimport { resolve } from 'url';\r\nimport html2canvas from 'html2canvas';\r\n\r\ndeclare var $: any;\r\n\r\n@Component({\r\n selector: 'app-timetable',\r\n templateUrl: './timetable.component.html',\r\n styleUrls: ['./timetable.component.css'],\r\n providers: [RouteService]\r\n})\r\nexport class TimetableComponent implements OnInit {\r\n @Input() dataCntrl: any;\r\n @Input() isApproval: boolean = false;\r\n \r\n isLoading = false;\r\n message = \"Loading timetables. Please wait...\";\r\n instructMsg = '';\r\n departuresList: any = [];\r\n departuresListRemove: any = [];\r\n editFlag: boolean = false;\r\n pageload: boolean = false;\r\n showBlock: boolean = false;\r\n isDuplicateMode: boolean = false;\r\n isProcess:boolean=true;\r\n timetableDirection: any = \"\"; \r\n timeTableTemplate : any;\r\n timeTableDetail : any;\r\n\r\n permitStatus13: any;\r\n constructor(private formBuilder: FormBuilder, private toastr: ToastrService,\r\n private showModal: PopupService, public applicationService: ApplicationService,\r\n private utility: UtilityServiceService,\r\n private router: Router, private permitService: PermitService,\r\n private vehicleService: VehicleService,\r\n private activeRoute: ActivatedRoute, private placeService: PlaceService,\r\n private documenttypeService: DocumenttypeService, private timetblSrc: TimetableService,\r\n private routeService: RouteService, private countryService: CountryService, private datePipe: DatePipe) {\r\n this.toastr.clear();\r\n\r\n }\r\n\r\n ngOnInit() {\r\n\r\n if (environment.authWebApi.systemData != null && environment.authWebApi.systemData.Configurations != null) {\r\n this.permitStatus13 = environment.authWebApi.systemData.Configurations.find(p => p.Code == 'PermitStatus13').Value;\r\n }\r\n\r\n this.timeTableTemplate = environment.authWebApi.systemData.Configurations.find(p => p.Code == 'TimeTableTemplate').Value;\r\n\r\n this.isDuplicateMode = this.router.url.indexOf('duplicate') > 0;\r\n if (this.router.url.indexOf('view') > 0) {\r\n this.isProcess=false;\r\n }\r\n if(this.router.url.indexOf('change') > 0){\r\n if(this.activeRoute.params['_value'].ctrlType!=undefined && this.activeRoute.params['_value'].ctrlType=='vehicle'){\r\n this.isDuplicateMode=true;\r\n }\r\n }\r\n\r\n this.applicationService.getById(this.dataCntrl.application.id).subscribe(app=>{\r\n this.dataCntrl.application = app;\r\n this.getTimeTable();\r\n });\r\n }\r\n \r\n\r\n getTimeTable() {\r\n this.isLoading = true;\r\n if(this.dataCntrl.application.timeTableDetail == null || this.dataCntrl.application.timeTableDetail == undefined || this.dataCntrl.application.timeTableDetail == '' || this.dataCntrl.application.timeTableDetail ===\"\")\r\n {\r\n this.timeTableDetail = this.dataCntrl.application.timeTableDetail = this.timeTableTemplate; \r\n }\r\n else{\r\n this.timeTableDetail = this.dataCntrl.application.timeTableDetail;\r\n }\r\n this.isLoading = false;\r\n\r\n }\r\n\r\n \r\n async saveTable() {\r\n this.message=\"Saving TimeTable, Please wait...\";\r\n this.isLoading = true;\r\n this.dataCntrl.application.timeTableDetail = this.timeTableDetail; \r\n //this.dataCntrl.application.timeTableDetailImg = await this.convertTabletoImage(this.timeTableDetail);\r\n //alert(JSON.stringify(this.dataCntrl.application.timeTableDetailImg));\r\n\r\n if (this.router.url.indexOf('duplicate') > 0 && this.router.url.indexOf('edit') < 0) {\r\n //console.log(\"duplicated\");\r\n //console.log(this.dataCntrl.application);\r\n this.applicationService.putApplicationDuplicate(this.dataCntrl.application)\r\n .subscribe((result:any) => {\r\n this.dataCntrl.application = result;\r\n // this.saveDepatureDestination();\r\n this.toastr.success('Application duplicated successfully', 'Duplicate Application');\r\n let url: any = \"carrier/permit/application/duplicate/edit/\" + result.id;\r\n this.router.navigate([url]);\r\n },\r\n error => {\r\n this.toastr.error('Failed to save application. If the problem persist, please contact system administrator.', 'Save Application')\r\n\r\n // this.showModal.showError('Save Application','Failed to save application. If the problem persist, please contact system administrator.',error);\r\n return;\r\n });\r\n }\r\n if (this.router.url.indexOf('correction') > 0) {\r\n return this.applicationService.setTab(7);\r\n } else {\r\n \r\n \r\n console.log(this.dataCntrl.application);\r\n this.applicationService.putApplication(this.dataCntrl.application).subscribe(x=>{\r\n this.toastr.success('Timetable Saved!', 'Save Application');\r\n this.isLoading=false;\r\n });\r\n if(!this.isApproval)\r\n {\r\n this.applicationService.setTab(6);\r\n }\r\n }\r\n }\r\n\r\n replaceWith(theTable) : any\r\n { \r\n console.log(theTable);\r\n var html = ''; \r\n \r\n \r\n $('tr', theTable).each(function() { \r\n html += '
'; \r\n $('th', this).each(function() { \r\n html += '
' + $(this).html() + '
'; \r\n }); \r\n $('td', this).each(function() { \r\n html += '
' + $(this).html() + '
'; \r\n }); \r\n html += '
'; \r\n }); \r\n \r\n\r\n html.replace(' ','');\r\n return '
' + html + '
'; \r\n } \r\n cancelApplication() {\r\n let prevUrl = localStorage.getItem('previousUrl');\r\n if (prevUrl.search('/permit/approval') != -1) {\r\n this.router.navigate(['/permit/approval/']);\r\n } else if (prevUrl.search('/carrier/permit/application/mypermits') != -1) {\r\n this.router.navigate(['/carrier/permit/application/mypermits/',this.dataCntrl.carrierID]);\r\n } else {\r\n this.router.navigate(['/carrier/permit/application/',this.dataCntrl.carrierID]);\r\n }\r\n }\r\n\r\n createElementFromHTML(htmlString) : HTMLDivElement {\r\n \r\n var div = document.createElement('div');\r\n div.setAttribute(\"id\", \"test\");\r\n\r\n div.innerHTML = htmlString.trim(); \r\n // Change this to div.childNodes to support multiple top-level nodes\r\n return div; \r\n }\r\n \r\n async convertTabletoImage(theTable) :Promise\r\n {\r\n \r\n var node = this.createElementFromHTML(theTable);\r\n \r\n //console.log(node);\r\n //alert(JSON.stringify(node));\r\n let myImageBlob : any; \r\n \r\n //console.log(node);\r\n var cbe = document.getElementById('test');\r\n // console.log(cbe);\r\n // console.log(document.body);\r\n // console.log($('div#test2').get[0]);\r\n await this.getScreenshotOfElement($('div#test2').get[0], 0, 0, 100, 100, function(data) {\r\n // in the data variable there is the base64 image\r\n // exmaple for displaying the image in an \r\n myImageBlob = data;\r\n });\r\n\r\n \r\n\r\n \r\n console.log(myImageBlob);\r\n var theImage = myImageBlob;//.src.replace(\"data:image/png;base64,\",\"\");\r\n return theImage;\r\n \r\n \r\n }\r\n\r\n async getScreenshotOfElement(element, posX, posY, width, height, callback) {\r\n console.log(element);\r\n await html2canvas(element,{width: width,\r\n height: height,\r\n useCORS: true,}).then(canvas => {\r\n var imgData = canvas.toDataURL();\r\n // alert(imgData);\r\n callback(imgData.replace(\"data:image/png;base64,\", \"\"));\r\n \r\n });\r\n // await html2canvas(element, { \r\n // width: width,\r\n // height: height \r\n // }).then(canvas =>{\r\n // alert(1);\r\n // var imgData = canvas.toDataURL(\"image/png\");\r\n\r\n // var context = canvas.getContext('2d');\r\n // var imageData = context.getImageData(posX, posY, width, height).data;\r\n // var outputCanvas = document.createElement('canvas');\r\n // var outputContext = outputCanvas.getContext('2d');\r\n // outputCanvas.width = width;\r\n // outputCanvas.height = height;\r\n // alert(2);\r\n // var idata = outputContext.createImageData(width, height);\r\n // idata.data.set(imageData);\r\n // outputContext.putImageData(idata, 0, 0);\r\n // callback(outputCanvas.toDataURL().replace(\"data:image/png;base64,\", \"\"));\r\n \r\n // });\r\n}\r\n\r\n \r\n \r\n backToTab() {\r\n this.applicationService.setTab(4);\r\n }\r\n}\r\n \r\n","
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n Timetable For : {{ dataCntrl?.application?.route_summary}}\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute, Params, Router } from '@angular/router';\r\nimport { PopupService } from '../../../services/shared/popup.service';\r\nimport { CurrencyFormat } from '../../../pipes/currencyFormat.pipe';\r\nimport { CarrierService } from '../../../services/carrier.service';\r\nimport { ApplicationService } from '../../../services/application.service';\r\nimport { PermitService } from '../../../services/permit.service';\r\nimport { VehicleService } from '../../../services/vehicle.service';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { AppVehicleComponent } from '../shared/app-vehicle/app-vehicle.component'\r\n\r\n@Component({\r\n selector: 'app-view-permit-application',\r\n templateUrl: './view-permit-application.component.html',\r\n styleUrls: ['./view-permit-application.component.css'],\r\n providers: [CurrencyFormat]\r\n})\r\nexport class ViewPermitApplicationComponent implements OnInit {\r\n\r\n dataCntrl: any = { applicationID:-1, permittypeSelected:false, selectedtype:'', disableTypes:false, processStarted:false, currentTab:'', formValid:false, isViewEditControl:true, carrier: {}, application: {}, permit: {}, permittype: {}, vehicles:[]};\r\n editMode: boolean;\r\n StartComplete:boolean;\r\n VehicleComplete:boolean;\r\n loadchild:boolean;\r\n canSave:boolean;\r\n canSubmit:boolean;\r\n pageload:boolean;\r\n tabload: boolean;\r\n\r\n activeTab = 'permitype';\r\n disableTabs:boolean = true;\r\n myreference: '';\r\n username: any;\r\n message = '';\r\n\r\n constructor(private router: Router, private activeRoute: ActivatedRoute, private showModal:PopupService,\r\n private carrierService: CarrierService, public currformat: CurrencyFormat,\r\n public applicationService: ApplicationService, public permitService: PermitService,\r\n public vehicleService: VehicleService) { }\r\n\r\n ngOnInit() {\r\n this.activeRoute.params.subscribe((params: Params) => {\r\n this.dataCntrl.applicationID = params['id'];\r\n this.editMode = params['edit'];\r\n });\r\n this.dataCntrl.currentTab = 'permitype';\r\n this.getApplicationData();\r\n this.username = environment.authWebApi.userData.User.Username;\r\n\r\n }\r\n\r\n getApplicationData(){\r\n this.pageload = true;\r\n this.applicationService.getById(this.dataCntrl.applicationID).subscribe(result => {\r\n //this.dataCntrl.carrier = result.carrier;\r\n this.dataCntrl.application = result;\r\n //this.dataCntrl.permit = result.permit;\r\n //this.dataCntrl.permittype = result.permit_type;\r\n //this.dataCntrl.vehicles = result.vehicle;\r\n this.pageload = false;\r\n this.loadchild == true;\r\n }, error => {\r\n this.pageload = false;\r\n //console.log(error);\r\n });\r\n }\r\n\r\n getCarrier(){\r\n this.pageload = true;\r\n this.carrierService.getById(this.dataCntrl.carrierID).subscribe(result => {\r\n this.setCarrierData(result);\r\n this.pageload = false;\r\n }, error => {\r\n this.pageload = false;\r\n //console.log(error);\r\n });\r\n }\r\n\r\n setCarrierData(data){\r\n data.account_balance = this.currformat.transform(parseFloat(data.account_balance));\r\n this.dataCntrl.carrier = data;\r\n this.dataCntrl.application.carrier_id = data.id;\r\n this.dataCntrl.application.person_id = data.person_id;\r\n }\r\n\r\n tabChanged(tab){\r\n this.dataCntrl.currentTab = tab;\r\n this.disableButtons();\r\n switch (tab) {\r\n case 'permitype': {\r\n this.canSave = this.dataCntrl.permittypeSelected ? true : false;\r\n this.activeTab = tab;\r\n break;\r\n }\r\n case 'vehicle': {\r\n this.canSave = true;\r\n this.activeTab = tab;\r\n break;\r\n }\r\n case 'route': {\r\n this.canSave = true;\r\n this.activeTab = tab;\r\n break;\r\n }\r\n case 'motivation': {\r\n this.canSave = true;\r\n this.activeTab = tab;\r\n break;\r\n }\r\n case 'uploads': {\r\n this.canSave = true;\r\n this.activeTab = tab;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n onSubmit(){}\r\n\r\n disableButtons(){\r\n this.canSave = false;\r\n this.canSubmit = false;\r\n }\r\n\r\n onStart(){\r\n this.saveApplication();\r\n this.canSave = true;\r\n this.dataCntrl.processStarted = true;\r\n this.disableTabs = this.dataCntrl.permittypeSelected ? false : true;\r\n this.activeTab = 'vehicle';\r\n this.dataCntrl.currentTab = 'vehicle';\r\n }\r\n\r\n onCancel(){\r\n if(this.dataCntrl.processStarted==true && this.dataCntrl.application.id==undefined){\r\n this.showModal.showConfirm('Cancel Application', 'Are you sure you want to cancel?', `Your application has not been saved. If you continue to cancel without saving, you will loose all your data.`, 'Yes', 'No')\r\n .subscribe((isConfirmed) => {\r\n if (isConfirmed) {\r\n this.router.navigateByUrl(`/carrier/permit/application/${this.dataCntrl.application.carrier_id}`);\r\n } else {\r\n return;\r\n }\r\n });\r\n }else{\r\n this.router.navigateByUrl(`/carrier/permit/application/${this.dataCntrl.application.carrier_id}`);\r\n }\r\n }\r\n\r\n onSave(){\r\n switch (this.dataCntrl.currentTab) {\r\n case 'permitype': {\r\n if(this.dataCntrl.application.id == undefined){\r\n this.saveApplication();\r\n }else{\r\n this.showModal.showAlert('Save Application','Application saved successfully');\r\n }\r\n break;\r\n }\r\n case 'vehicle': {\r\n this.saveVehicles();\r\n break;\r\n }\r\n case 'route': {\r\n this.saveRoute();\r\n break;\r\n }\r\n case 'motivation': {\r\n this.saveMotivation();\r\n break;\r\n }\r\n case 'uploads': {\r\n if(this.dataCntrl.application.id == undefined){\r\n this.saveApplication();\r\n }else{\r\n this.showModal.showAlert('Save Application','Application saved successfully');\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n\r\n saveApplication() {\r\n this.tabload = true;\r\n this.dataCntrl.application.date_modified = this.dataCntrl.application.date_created = new Date();\r\n this.dataCntrl.application.user_modified = this.dataCntrl.application.user_created = this.username;\r\n this.applicationService.postApplication(this.dataCntrl.application)\r\n .subscribe((result:any) => {\r\n this.dataCntrl.application = result;\r\n this.dataCntrl.permit.permit_type_id = result.permit_type_id;\r\n this.dataCntrl.permit.application_id = result.id;\r\n this.savePermit();\r\n },\r\n error => {\r\n this.tabload = false;\r\n this.showModal.showError('Save Application', 'Failed to save application. If the problem persist, please contact system administrator.', error);\r\n return;\r\n });\r\n }\r\n\r\n savePermit(){\r\n //console.log(this.dataCntrl)\r\n this.dataCntrl.permit.date_modified = this.dataCntrl.permit.date_created = new Date();\r\n this.dataCntrl.permit.user_modified = this.dataCntrl.permit.user_created = this.username;\r\n this.dataCntrl.permit.permit_fee = this.dataCntrl.permittype.current_fee == null ? 0 : this.dataCntrl.permittype.current_fee ;\r\n this.dataCntrl.permit.application_fee = this.dataCntrl.permittype.current_application_fee == null ? 0 : this.dataCntrl.permittype.current_application_fee ;\r\n this.permitService.postPermit(this.dataCntrl.permit)\r\n .subscribe(result => {\r\n this.dataCntrl.permit = result;\r\n this.tabload = false;\r\n },\r\n error => {\r\n this.tabload = false\r\n this.showModal.showError('Save Application', 'Failed to save application. If the problem persist, please contact system administrator.', error);\r\n return;\r\n });\r\n }\r\n\r\n saveVehicles(){\r\n this.tabload = true;\r\n this.dataCntrl.vehicles.forEach(element => {\r\n element.permit_id = this.dataCntrl.permit.id;\r\n element.date_modified = element.date_created = new Date();\r\n element.user_modified = element.user_created = this.username;\r\n });\r\n if(this.dataCntrl.application.id == undefined){\r\n this.saveApplication();\r\n }else{\r\n this.vehicleService.postVehicle(this.dataCntrl.vehicles)\r\n .subscribe(result => {\r\n this.dataCntrl.vehicles = result;\r\n this.updateVehiclelist(result);\r\n this.showModal.showAlert('Save Application','Vehicles saved successfully');\r\n },\r\n error => {\r\n this.tabload = false;\r\n this.showModal.showError('Save Application','Failed to save application. If the problem persist, please contact system administrator.',error);\r\n return;\r\n });\r\n }\r\n }\r\n\r\n updateVehiclelist(data){\r\n //console.log(data)\r\n this.tabload = false;\r\n }\r\n\r\n saveRoute(){\r\n this.tabload = true;\r\n if(this.dataCntrl.application.id == undefined){\r\n this.saveApplication();\r\n }else{\r\n this.applicationService.putApplication(this.dataCntrl.application)\r\n .subscribe(result => {\r\n this.dataCntrl.application = result;\r\n this.tabload = false;\r\n this.showModal.showAlert('Save Application','Route saved successfully');\r\n },\r\n error => {\r\n this.tabload = false;\r\n this.showModal.showError('Save Application','Failed to save application. If the problem persist, please contact system administrator.',error);\r\n return;\r\n });\r\n }\r\n }\r\n\r\n saveMotivation(){\r\n this.tabload = true;\r\n if(this.dataCntrl.application.id == undefined){\r\n this.saveApplication();\r\n }else{\r\n this.applicationService.putApplication(this.dataCntrl.application)\r\n .subscribe(result => {\r\n this.dataCntrl.application = result;\r\n this.tabload = false;\r\n this.showModal.showAlert('Save Application','Motivation saved successfully');\r\n },\r\n error => {\r\n //console.log(error)\r\n this.tabload = false;\r\n this.showModal.showError('Save Application','Failed to save application. If the problem persist, please contact system administrator.',error);\r\n return;\r\n });\r\n }\r\n }\r\n}\r\n","
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n

\r\n \r\n \r\n Permit: New Application ( {{dataCntrl.carrier.name}} )\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n","import {Pipe} from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'currencyFormat'\r\n})\r\nexport class CurrencyFormat {\r\n transform(value: number,\r\n currencySign: string = 'R ',\r\n decimalLength: number = 0,\r\n chunkDelimiter: string = ' ',\r\n decimalDelimiter: string = '.',\r\n chunkLength: number = 3): string {\r\n\r\n const result = '\\\\d(?=(\\\\d{' + chunkLength + '})+' + (decimalLength > 0 ? '\\\\D' : '$') + ')'\r\n let num = '';\r\n\r\n if (value) {\r\n num = value.toFixed(Math.max(0, ~~decimalLength));\r\n }\r\n\r\n return currencySign + (decimalDelimiter ? num.replace(',', decimalDelimiter) : num).replace(new RegExp(result, 'g'), '$&' + chunkDelimiter);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { of } from 'rxjs';\r\n\r\n@Pipe({\r\n name: 'customTimeZone'\r\n})\r\nexport class CustomTimeZonePipe implements PipeTransform {\r\n\r\n transform(value: any, args?: any): any {\r\n let modifiedVal:any=\"\";\r\n if(value!=\"\" && value!=null && value!=undefined){\r\n if(parseInt(value.split(\":\")[0]) < 12){\r\n modifiedVal = value +\" AM\";\r\n }\r\n if(parseInt(value.split(\":\")[0]) >= 12){\r\n modifiedVal = value +\" PM\";\r\n }\r\n }\r\n return modifiedVal;\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\r\n\r\n@Pipe({ name: 'noSanitize' })\r\nexport class NoSanitizePipe implements PipeTransform {\r\n constructor(private domSanitizer: DomSanitizer) {\r\n\r\n }\r\n transform(html: string): SafeHtml {\r\n return this.domSanitizer.bypassSecurityTrustHtml(html);\r\n }\r\n}","import { Component, OnInit, ViewChild, AfterViewInit, ElementRef} from '@angular/core';\r\nimport { DialogComponent, DialogService } from 'ng2-bootstrap-modal';\r\n//import { ElementRef } from '@angular/core/src/linker/element_ref';\r\n\r\n\r\nexport interface AlertModel {\r\n title: string;\r\n message: string;\r\n bold?: string;\r\n}\r\n\r\n@Component({\r\n selector: 'alert',\r\n template: `
\r\n
\r\n
\r\n

{{title || 'Alert!'}}

\r\n \r\n
\r\n
\r\n

\r\n
\r\n
\r\n \r\n
\r\n
\r\n
`,\r\n styles: [`\r\n .bgd-c{background:#1D3F94!important;color:white!important}\r\n #msg{color: red!important;} \r\n `]\r\n})\r\nexport class AlertComponent extends DialogComponent implements AlertModel {\r\n title: string;\r\n message: string;\r\n bold?: string;\r\n constructor(dialogService: DialogService) {\r\n super(dialogService);\r\n }\r\n\r\n ngOnInit() {\r\n if (this.bold) {\r\n document.getElementById('msg').innerHTML = this.makeBold(this.message, this.bold);\r\n }\r\n }\r\n\r\n @ViewChild('setfocus', { static: true }) private elementref: ElementRef\r\n public ngAfterViewInit(): void {\r\n this.elementref.nativeElement.focus();\r\n }\r\n\r\n makeBold(message, bold?) {\r\n return message.replace(new RegExp('(' + bold + ')', 'gi'), '$1')\r\n }\r\n\r\n private inputFocused = false;\r\n moveFocus() {\r\n this.inputFocused = true;\r\n setTimeout(() => {this.inputFocused = false});\r\n }\r\n}\r\n","import { Component, OnInit, ViewChild, AfterViewInit, ElementRef} from '@angular/core';\r\nimport { DialogComponent, DialogService } from 'ng2-bootstrap-modal';\r\nimport { FormGroup, FormControl, Validators } from '@angular/forms'\r\n\r\nexport interface CommentModel {\r\n title: string;\r\n message: string;\r\n canExit: boolean;\r\n blocking: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'gridedit',\r\n template: `
\r\n
\r\n
\r\n

{{title || 'Document Upload'}}

\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
`\r\n})\r\nexport class CommentComponent extends DialogComponent implements CommentModel {\r\n title: string;\r\n message: string;\r\n canExit = false;\r\n data = '';\r\n blocking: boolean;\r\n option = '';\r\n\r\n form: FormGroup;\r\n\r\n constructor(dialogService: DialogService) {\r\n super(dialogService);\r\n }\r\n\r\n ngOnInit() {\r\n this.form = new FormGroup({\r\n INPUT: new FormControl('', Validators.required)\r\n });\r\n }\r\n\r\n onSave() {\r\n this.result = this.data; //`${this.option}<->${this.data}`;\r\n this.close();\r\n }\r\n\r\n onCancel() {\r\n this.result = null;\r\n this.close()\r\n }\r\n\r\n @ViewChild('setfocus', { static: true }) private elementref: ElementRef\r\n public ngAfterViewInit(): void {\r\n this.elementref.nativeElement.focus();\r\n }\r\n\r\n private inputFocused = false;\r\n moveFocus() {\r\n this.inputFocused = true;\r\n setTimeout(() => {this.inputFocused = false});\r\n }\r\n\r\n\r\n}\r\n","import { Component, ViewChild, AfterViewInit, ElementRef } from '@angular/core';\r\nimport { DialogComponent, DialogService } from 'ng2-bootstrap-modal';\r\n\r\nexport interface ConfirmModel {\r\n title: string;\r\n message: string;\r\n extra: string ;\r\n confirmButtonText: string;\r\n cancelButtonText: string;\r\n}\r\n\r\n@Component({\r\n selector: 'confirm',\r\n template: `
\r\n
\r\n
\r\n

{{title || 'Confirm'}}

\r\n \r\n
\r\n
\r\n

{{message || 'Are you sure?'}}

\r\n {{extra}}\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
`\r\n})\r\nexport class ConfirmComponent extends DialogComponent implements ConfirmModel {\r\n title: string;\r\n message: string;\r\n extra = '';\r\n confirmButtonText: string;\r\n cancelButtonText: string;\r\n No: any;\r\n Yes: any;\r\n\r\n constructor(dialogService: DialogService) {\r\n super(dialogService);\r\n }\r\n\r\n @ViewChild('setfocus', { static: true }) private elementref: ElementRef\r\n public ngAfterViewInit(): void {\r\n this.elementref.nativeElement.focus();\r\n }\r\n\r\n confirm() {\r\n // on click on confirm button we set dialog result as true,\r\n // ten we can get dialog result from caller code\r\n this.result = true;\r\n this.close();\r\n }\r\n cancel() {\r\n this.result = false;\r\n this.close();\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport {\r\n animate,\r\n keyframes,\r\n state,\r\n style,\r\n transition,\r\n trigger\r\n} from '@angular/animations';\r\n\r\nimport { Toast, ToastrService, ToastPackage } from 'ngx-toastr';\r\n\r\n\r\n@Component({\r\n selector: 'app-custom-toast',\r\n templateUrl: './custom-toast.component.html',\r\n styleUrls: ['./custom-toast.component.css'],\r\n animations: [\r\n trigger('flyInOut', [\r\n state('inactive', style({\r\n display: 'none',\r\n opacity: 0\r\n })),\r\n transition('inactive => active', animate('400ms ease-out', keyframes([\r\n style({\r\n opacity: 0,\r\n }),\r\n style({\r\n opacity: 1,\r\n })\r\n ]))),\r\n transition('active => removed', animate('400ms ease-out', keyframes([\r\n style({\r\n opacity: 1,\r\n }),\r\n style({\r\n transform: 'translate3d(10%, 0, 0) skewX(10deg)',\r\n opacity: 0,\r\n }),\r\n ]))),\r\n ]),\r\n ],\r\n preserveWhitespaces: false,\r\n})\r\n\r\nexport class CustomToastComponent extends Toast {\r\n // used for demo purposes\r\n undoString = 'undo';\r\n\r\n // constructor is only necessary when not using AoT\r\n constructor(\r\n protected toastrService: ToastrService,\r\n public toastPackage: ToastPackage,\r\n ) {\r\n super(toastrService, toastPackage);\r\n }\r\n\r\n action(event: Event) {\r\n event.stopPropagation();\r\n this.undoString = 'undid';\r\n this.toastPackage.triggerAction();\r\n return false;\r\n }\r\n}","

\r\n custom-toast works!\r\n

\r\n
\r\n
\r\n
\r\n {{ title }}\r\n
\r\n
\r\n
\r\n
\r\n {{ message }}\r\n
\r\n
\r\n
\r\n \r\n \r\n ×\r\n \r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, ViewChild, AfterViewInit, ElementRef } from '@angular/core';\r\nimport { DialogComponent, DialogService } from 'ng2-bootstrap-modal';\r\n\r\nexport interface ErrorModel {\r\n title: string;\r\n message: string;\r\n statuscode: string;\r\n url: string;\r\n servermessage: string;\r\n}\r\n\r\n@Component({\r\n selector: 'error',\r\n template: `
\r\n
\r\n
\r\n

{{title || 'Alert!'}}

\r\n \r\n
\r\n
\r\n

{{message || 'TADAA-AM!'}}

\r\n \r\n
\r\n
\r\n
Error Code : {{statuscode || 'Server Error'}}
\r\n
Url : {{url || 'http://cbrta.co.za'}}
\r\n

Error Message :
{{servermessage || 'Error'}}

\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
`,\r\n styleUrls: ['./style.css']\r\n})\r\nexport class ErrorComponent extends DialogComponent implements ErrorModel {\r\n title: string;\r\n message: string;\r\n statuscode: string;\r\n url: string;\r\n servermessage: string;\r\n btnTitle = 'Read More';\r\n constructor(dialogService: DialogService) {\r\n super(dialogService);\r\n }\r\n\r\n @ViewChild('setfocus', { static: true }) private elementref: ElementRef\r\n public ngAfterViewInit(): void {\r\n this.elementref.nativeElement.focus();\r\n }\r\n\r\n onClick() {\r\n this.btnTitle = (this.btnTitle === 'Read More') ? 'Read Less' : 'Read More';\r\n }\r\n}\r\n","import { Component, ViewChild, AfterViewInit, ElementRef } from '@angular/core';\r\nimport { DialogComponent, DialogService } from 'ng2-bootstrap-modal';\r\nimport { ConfirmComponent } from \"./confirm.component\";\r\n\r\n\r\n@Component({\r\n selector: 'parent-dialog',\r\n template: `
\r\n
\r\n
\r\n

Parent dialog

\r\n \r\n
\r\n
\r\n

bla-bla

\r\n

bla-bla

\r\n

bla-bla

\r\n
\r\n
\r\n \r\n
\r\n
\r\n
`\r\n})\r\nexport class ParentDialogComponent extends DialogComponent {\r\n\r\n constructor(dialogService: DialogService) {\r\n super(dialogService);\r\n }\r\n\r\n confirm() {\r\n var iConfirm = {title: 'Confirm', message: 'Are you sure you want close dialog?'};\r\n this.dialogService.addDialog(ConfirmComponent,iConfirm).subscribe((isConfirmed)=>{\r\n if(isConfirmed) {\r\n this.close();\r\n }\r\n });\r\n }\r\n\r\n @ViewChild('setfocus', { static: true }) private elementref: ElementRef\r\n public ngAfterViewInit(): void {\r\n this.elementref.nativeElement.focus();\r\n }\r\n}\r\n","import { Component, ViewChild, AfterViewInit, ElementRef } from '@angular/core';\r\nimport { DialogComponent, DialogService } from \"ng2-bootstrap-modal\";\r\n\r\nexport interface PromptModel {\r\n title:string;\r\n question:string;\r\n}\r\n\r\n@Component({\r\n selector: 'prompt',\r\n template: `
\r\n
\r\n
\r\n

{{title || 'Prompt'}}

\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
`\r\n})\r\nexport class PromptComponent extends DialogComponent implements PromptModel {\r\n title: string;\r\n question: string;\r\n message: string = '';\r\n constructor(dialogService: DialogService) {\r\n super(dialogService);\r\n }\r\n apply() {\r\n this.result = this.message;\r\n this.close();\r\n }\r\n\r\n @ViewChild('setfocus', { static: true }) private elementref: ElementRef\r\n public ngAfterViewInit(): void {\r\n this.elementref.nativeElement.focus();\r\n }\r\n\r\n}\r\n","import { Component, ViewChild, AfterViewInit, ElementRef } from '@angular/core';\r\nimport { DialogComponent, DialogService } from 'ng2-bootstrap-modal';\r\n\r\nexport interface YesNoModel {\r\n title: string;\r\n message: string;\r\n comment: string;\r\n confirmButtonText: string;\r\n cancelButtonText: string;\r\n}\r\n\r\n@Component({\r\n selector: 'yesno',\r\n template: `
\r\n
\r\n
\r\n

{{title || 'Confirmation'}}

\r\n {{message}}
\r\n {{comment}} \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
`,\r\n styles: [`\r\n .bgd-c{background:rgb(57, 50,118 )!important;}\r\n .ft-c{color: rgb(253, 207,76 )!important;} \r\n `]\r\n})\r\nexport class YesNoComponent extends DialogComponent implements YesNoModel {\r\n title: string;\r\n message: string;\r\n comment: string;\r\n confirmButtonText: string;\r\n cancelButtonText: string; \r\n\r\n constructor(dialogService: DialogService) {\r\n super(dialogService);\r\n } \r\n\r\n confirm() {\r\n // on click on confirm button we set dialog result as true,\r\n // ten we can get dialog result from caller code\r\n this.result = true;\r\n this.close();\r\n }\r\n cancel() {\r\n this.result = false;\r\n this.close();\r\n }\r\n}\r\n","import { Component, NgZone, OnInit } from '@angular/core';\r\nimport { FormGroup, FormControl, Validators, FormBuilder ,Form }from '@angular/forms';\r\nimport { AlertComponent } from 'app/popup/alert.component';\r\nimport { UtilityServiceService } from 'app/services/utility-service.service';\r\nimport { AuthWebService } from 'app/services/authweb.service';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { DialogService } from 'ng2-bootstrap-modal';\r\nimport { EqualvalidatorDirective } from 'app/validators/equalvalidator.directive';\r\nimport { Observable , concat } from 'rxjs';\r\nimport { environment } from 'environments/environment';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { isNumeric } from 'rxjs/util/isNumeric';\r\nimport { SearchCountryField, TooltipLabel, CountryISO } from 'app/shared/projects/ngx-intl-tel-input/src/public_api';\r\nimport { SocialloginService } from '../services/sociallogin.service';\r\nimport { Socialusers } from '../models/socialusers';\r\n\r\nimport { ViewChild } from '@angular/core';\r\nimport { ElementRef } from '@angular/core';\r\n\r\nimport {\r\n GoogleLoginProvider,\r\n FacebookLoginProvider,\r\n SocialAuthService,\r\n SocialUser,\r\n} from 'angular12-social-login';\r\nimport { MsalService } from '@azure/msal-angular';\r\nimport { AuthenticationResult } from '@azure/msal-browser';\r\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\r\n\r\ndeclare var emailValue;\r\n@Component({\r\n selector: 'app-register',\r\n templateUrl: './register.component.html',\r\n styleUrls: ['./register.component.css']\r\n})\r\nexport class RegisterComponent implements OnInit {\r\n auth2: any;\r\n\t@ViewChild('loginRef', { static: true }) loginElement!: ElementRef;\r\n\tsKey: string = null;\r\n\tenvironment:string = null;\r\n socialLogin = false;\r\n\r\n socialusers = new Socialusers();\r\n response: any;\r\n hide: boolean = true;\r\n hideNew: boolean = true;\r\n\r\n aUser: any = {};\r\n correspondenceType:string = null;\r\n sub: any;\r\n lblHeading = '';\r\n btnActionLabel = '';\r\n authenticator = '';\r\n isEdit: boolean;\r\n user = \"Haddad\";\r\n isDup = false;\r\n selectedGroupCode: any = {};\r\n selectedDisplay = 3;\r\n reCaptcha: string = null;\r\n terms: string = null;\r\n // tslint:disable-next-line: no-inferrable-types\r\n loadingpage: boolean = false;\r\n public isLoading = false;\r\n message = null;\r\n mobnumPattern = /^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$/;\r\n cbrtapattern='^27[0-9]{9}$';\r\n form:any;\r\n email:any;\r\n numberisvalid =false;\r\n\r\n //SADC Countries\r\n separateDialCode = true;\r\n\tSearchCountryField = SearchCountryField;\r\n\tTooltipLabel = TooltipLabel;\r\n CountryISO = CountryISO;\r\n defaultCountry = CountryISO.SouthAfrica;\r\n defaultCountryPhone = CountryISO.SouthAfrica\r\n preferredCountries: CountryISO[] = [\r\n CountryISO.Angola,\r\n CountryISO.Botswana,\r\n CountryISO.Comoros,\r\n CountryISO.CongoDRCJamhuriYaKidemokrasiaYaKongo,\r\n CountryISO.Lesotho,\r\n CountryISO.Madagascar,\r\n CountryISO.Malawi,\r\n CountryISO.Mauritius,\r\n CountryISO.Mozambique,\r\n CountryISO.Namibia,\r\n CountryISO.Seychelles,\r\n CountryISO.Swaziland,\r\n CountryISO.Zambia,\r\n CountryISO.Zimbabwe,\r\n ];\r\n\r\n showCaptcha:boolean=false;\r\n ngZone: any;\r\n urlPOPE: SafeResourceUrl;\r\n url: string = \"https://www.cbrta.co.za/legal-and-privacy\";\r\n\r\n constructor(public authWebService: AuthWebService,public sanitizer: DomSanitizer,\r\n private router: Router,private builder: FormBuilder,\r\n private route: ActivatedRoute, public utility: UtilityServiceService, private toastr:ToastrService, \r\n public OAuth: SocialAuthService, private SocialloginService: SocialloginService,\r\n private msalService:MsalService, private zone: NgZone) {\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.urlPOPE= this.sanitizer.bypassSecurityTrustResourceUrl(this.url);\r\n this.initForm();\r\n //this.onChanges();\r\n this.sKey = environment.captcha.siteKey;\r\n this.environment = environment.name;\r\n this.googleAuthSDK(); \r\n \r\n \r\n };\r\n \r\n\r\n\r\n \r\n\r\n\r\n\r\n callLogin() {\r\n\r\n this.auth2.attachClickHandler(this.loginElement.nativeElement, {},\r\n (googleAuthUser: any) => {\r\n\r\n //Print profile details in the console logs\r\n\r\n let profile = googleAuthUser.getBasicProfile();\r\n console.log('Token || ' + googleAuthUser.getAuthResponse().id_token);\r\n console.log('ID: ' + profile.getId());\r\n console.log('Name: ' + profile.getName());\r\n console.log('Image URL: ' + profile.getImageUrl());\r\n console.log('Email: ' + profile.getEmail());\r\n\r\n\r\n\t\tthis.aUser.DateCreated = this.aUser.DateUpdated = new Date();\r\n\t\t// this.aUser.UserCreated = this.aUser.UserUpdated = this.user;\r\n\t\tthis.aUser.ActiveYN = true;\r\n\t\t// this.isLoading = true;\r\n\t\t //console.dir(this.aUser);\r\n\t\tthis.aUser.UserName=profile.getEmail().toLowerCase();\r\n\t\tthis.aUser.EmailAddress=profile.getEmail().toLowerCase();\r\n\t\tvar SplittedName = profile.getName().split(\" \");\r\n\r\n\t\tthis.aUser.FirstName = SplittedName[1];\r\n\t\tthis.aUser.LastName = SplittedName[0];\r\n this.aUser.Authenticator = \"Google\";\r\n\r\n this.form.controls['FirstName'].setValue(SplittedName[1]);\r\n this.form.controls['LastName'].setValue(SplittedName[0]);\r\n this.form.controls['UserName'].setValue(profile.getEmail().toLowerCase());\r\n this.form.controls['EmailAddress'].setValue(profile.getEmail().toLowerCase());\r\n\r\n this.authenticator = \"Google\";\r\n this.socialLogin = true;\r\n var element = document.getElementById(\"passwordfield\");\r\n element.classList.add(\"d-none\");\r\n var element1 = document.getElementById(\"passwordfieldnew\");\r\n element1.classList.add(\"d-none\");\r\n var _username = document.getElementById(\"ssoemailusername\");\r\n _username.classList.add(\"d-none\");\r\n var _confirmemail = document.getElementById(\"sooconfirmemail\");\r\n _confirmemail.classList.add(\"d-none\");\r\n\r\n\tconsole.log(\"User Data\")\r\n\t\tconsole.log(this.aUser)\r\n\t\t\r\n\t\t\r\n // this.zone.run(() => this.authWebService.regitsersociallogin(this.aUser))\r\n\r\n }, (error: any) => {\r\n // alert(JSON.stringify(error, undefined, 2));\r\n });\r\n\r\n }\r\ngoogleAuthSDK() {\r\n\r\n (window)['googleSDKLoaded'] = () => {\r\n (window)['gapi'].load('auth2', () => {\r\n this.auth2 = (window)['gapi'].auth2.init({\r\n client_id: '42235825666-vl4kgsvsl4lvh7986v1dl2ifspe351tk.apps.googleusercontent.com',\r\n plugin_name:'login',\r\n cookiepolicy: 'single_host_origin',\r\n scope: 'profile email'\r\n });\r\n this.callLogin();\r\n });\r\n }\r\n\r\n (function (d, s, id) {\r\n var js, fjs = d.getElementsByTagName(s)[0];\r\n if (d.getElementById(id)) { return; }\r\n js = d.createElement('script');\r\n js.id = id;\r\n js.src = \"https://apis.google.com/js/platform.js?onload=googleSDKLoaded\";\r\n fjs?.parentNode?.insertBefore(js, fjs);\r\n }(document, 'script', 'google-jssdk'));\r\n }\r\n \r\n public socialSignIn(socialProvider: string) {\r\n let socialPlatformProvider = '';\r\n if (socialProvider === 'facebook') {\r\n socialPlatformProvider = FacebookLoginProvider.PROVIDER_ID;\r\n } else if (socialProvider === 'google') {\r\n socialPlatformProvider = GoogleLoginProvider.PROVIDER_ID;\r\n }\r\n\r\n // signInWithGoogle(): void {\r\n // this.authService.signIn(GoogleLoginProvider.PROVIDER_ID);\r\n // }\r\n\r\n // signInWithFB(): void {\r\n // this.authService.signIn(FacebookLoginProvider.PROVIDER_ID);\r\n // }\r\n\r\n // this.OAuth.signIn(GoogleLoginProvider.PROVIDER_ID);\r\n\r\n // this.OAuth.signIn(FacebookLoginProvider.PROVIDER_ID);\r\n\r\n this.OAuth.signIn(socialPlatformProvider).then(\r\n (socialusers: SocialUser) => {\r\n console.log(socialProvider, socialusers);\r\n console.log(socialusers);\r\n // this.Savesresponse(socialusers);\r\n // this.form.value.FirstName = socialusers.firstName;\r\n this.form.controls['FirstName'].setValue(socialusers.firstName);\r\n this.form.controls['LastName'].setValue(socialusers.lastName);\r\n this.form.controls['UserName'].setValue(socialusers.email);\r\n this.form.controls['EmailAddress'].setValue(socialusers.email);\r\n\r\n\r\n \r\n// this.checkMobileNumber();\r\n\r\n// if (!this.numberisvalid )\r\n// {\r\n// return this.toastr.warning('Please check the Mobile Number','Registration failed');\r\n// }\r\n \r\n\r\n this.message = \"Creating User Profile..\";\r\n this.aUser.DateCreated = this.aUser.DateUpdated = new Date();\r\n this.aUser.UserCreated = this.aUser.UserUpdated = this.user;\r\n this.aUser.CommunicationType = this.correspondenceType === \"2\" ? \"SMS\" : \"EMAIL\";\r\n this.aUser.ActiveYN = true;\r\n this.isLoading = true;\r\n //console.dir(this.aUser);\r\n this.aUser.UserName=socialusers.email.toLowerCase();\r\n this.aUser.EmailAddress=socialusers.email.toLowerCase();\r\n this.aUser.FirstName = socialusers.firstName;\r\n this.aUser.Lastname = socialusers.lastName;\r\n this.aUser.Authenticator = \"Facebook\";\r\n this.authenticator = \"Facebook\";\r\n this.socialLogin = true;\r\n var element = document.getElementById(\"passwordfield\");\r\n element.classList.add(\"d-none\");\r\n var element1 = document.getElementById(\"passwordfieldnew\");\r\n element1.classList.add(\"d-none\");\r\n\r\n var _username = document.getElementById(\"ssoemailusername\");\r\n _username.classList.add(\"d-none\");\r\n var _confirmemail = document.getElementById(\"sooconfirmemail\");\r\n _confirmemail.classList.add(\"d-none\");\r\n //this.authWebService.registersociallogin(this.aUser);\r\n\r\n this.isLoading = false;\r\n \r\n }\r\n );\r\n }\r\n\r\n Savesresponse(socialusers: SocialUser) {\r\n this.SocialloginService.Savesresponse(socialusers).subscribe((res: any) => {\r\n debugger;\r\n console.log(res);\r\n this.socialusers = res;\r\n this.response = res.userDetail;\r\n localStorage.setItem('socialusers', JSON.stringify(this.socialusers));\r\n console.log(\r\n localStorage.setItem('socialusers', JSON.stringify(this.socialusers))\r\n );\r\n // this.router.navigate([`/Dashboard`]);\r\n });\r\n }\r\n\r\n ngAfterViewInit(){\r\n setTimeout(()=>{this.showCaptcha=true;},500); \r\n }\r\n\r\n\r\n initForm() {\r\n this.form = new FormGroup({\r\n ID: new FormControl()\r\n // , UserName: new FormControl(this.aUser.UserName, Validators.compose([Validators.required, Validators.maxLength(100), Validators.pattern('[\\\\w\\-\\\\s\\\\/]+')]))\r\n , UserName: new FormControl(this.aUser.UserName, Validators.compose([\r\n Validators.required,\r\n Validators.pattern('^[_A-Za-z0-9-\\\\+]+(\\\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\\\\.[A-Za-z0-9]+)*(\\\\.[A-Za-z]{2,})$')]))\r\n , FirstName: new FormControl(this.aUser.FirstName,Validators.compose([Validators.required, Validators.pattern('([a-zA-Z,.-]+( [a-zA-Z,.-]+)*){2,30}')]))\r\n , LastName: new FormControl(this.aUser.LastName,Validators.compose([Validators.required, Validators.pattern('([a-zA-Z,.-]+( [a-zA-Z,.-]+)*){2,30}')]))\r\n , EmailAddress: new FormControl(this.aUser.EmailAddress, Validators.compose([Validators.required, Validators.pattern('^[_A-Za-z0-9-\\\\+]+(\\\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\\\\.[A-Za-z0-9]+)*(\\\\.[A-Za-z]{2,})$')]))\r\n //, MobileNumber: new FormControl(this.aUser.MobileNumber, Validators.compose([Validators.required,Validators.maxLength(11)]))\r\n , MobileNumber: new FormControl(this.aUser.MobileNumber, Validators.required)\r\n // , PhoneNumber: new FormControl(this.aUser.PhoneNumber, Validators.compose([Validators.required,Validators.maxLength(10)]))\r\n , PhoneNumber: new FormControl(this.aUser.PhoneNumber, Validators.required)// ^(\\+27|0)[6-8][0-9]{8}$\r\n , ActiveYN: new FormControl()\r\n , Password: new FormControl('', Validators.compose([Validators.required,Validators.pattern( '^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9]).{8,}$')] ))\r\n , ConfirmPassword: new FormControl( '', Validators.compose([Validators.required,Validators.pattern( '^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9]).{8,}$')] ))\r\n //, terms: new FormControl(this.aUser.terms, Validators.required)\r\n , DateCreated: new FormControl()\r\n , UserCreated: new FormControl()\r\n , UserUpdated: new FormControl()\r\n }); updateOn:\"blur\"\r\n this.form.patchValue(this.utility.defaults);\r\n }\r\n \r\n\r\n ngOnDestroy() {\r\n ///this.sub.unsubscribe();\r\n }\r\n onChange(event){\r\n // //console.log(event.countryCode.toLowerCase());\r\n // event.toLowerCase();\r\n }\r\n ChangeCountry(event){\r\n this.defaultCountry = event.iso2;\r\n }\r\n ChangeCountryPhone(event){\r\n this.defaultCountryPhone = event.iso2;\r\n }\r\n\r\n onSubmit(obj: any) {\r\n\r\n if(!this.form.valid){\r\n return this.toastr.warning('Please fill in all required fields','Registration failed');\r\n }\r\n\r\n //console.log(this.defaultCountry);\r\n if (this.reCaptcha === null && this.environment != 'qa' && this.environment != 'dev'){\r\n // return\tthis.dialogService.addDialog(AlertComponent, { title: 'Authentication failed', message: 'Are you a robot?' });\r\n return this.toastr.warning('Are you a robot?','Authentication failed');\r\n\r\n }\r\n\r\n if (this.terms === null || this.terms === undefined){\r\n // return\tthis.dialogService.addDialog(AlertComponent, { title: 'Authentication failed', message: 'Please click terms and conditions' });\r\n return this.toastr.warning('Please click POPIA Processing Notice','Registration failed');\r\n \r\n }\r\n\r\n if (this.correspondenceType === null){\r\n \r\n return this.toastr.warning('Please select how you want to recieve the confirmation link!','Registration failed');\r\n\r\n}\r\n\r\n\r\n if (this.isDup) { return; }\r\n this.aUser = obj;\r\n// this.checkMobileNumber();\r\n\r\n// if (!this.numberisvalid )\r\n// {\r\n// return this.toastr.warning('Please check the Mobile Number','Registration failed');\r\n// }\r\n \r\n\r\n this.message = \"Creating User Profile..\";\r\n\r\n this.aUser.DialCodeMobile = this.form.value.MobileNumber.dialCode\r\n this.aUser.MobileNumber = this.form.value.MobileNumber.number\r\n if(this.form.value.PhoneNumber !== undefined){\r\n this.aUser.DialCodePhone = this.form.value.PhoneNumber.dialCode\r\n this.aUser.ISO2Phone = this.defaultCountryPhone;\r\n this.aUser.PhoneNumber = this.form.value.PhoneNumber.number\r\n }\r\n this.aUser.ISO2Mobile = this.defaultCountry;\r\n this.aUser.DateCreated = this.aUser.DateUpdated = new Date();\r\n this.aUser.UserCreated = this.aUser.UserUpdated = -1;\r\n this.aUser.CommunicationType = this.correspondenceType === \"2\" ? \"SMS\" : \"EMAIL\";\r\n this.aUser.ActiveYN = true;\r\n this.isLoading = true;\r\n //console.dir(this.aUser);\r\n this.aUser.UserName=this.aUser.UserName.toLowerCase();\r\n this.aUser.EmailAddress=this.aUser.EmailAddress.toLowerCase();\r\n\r\n if(this.socialLogin == false){\r\n this.aUser.Authenticator = \"AuthWeb\";\r\n this.authWebService.register(this.aUser);\r\n\r\n } else{\r\n this.aUser.Authenticator = this.authenticator;\r\n this.authWebService.registersociallogin(this.aUser);\r\n }\r\n\r\n this.isLoading = false;\r\n\r\n\r\n }\r\n\r\n navigate() {\r\n this.router.navigateByUrl('/login');\r\n }\r\n\r\n onDuplicates(control) {\r\n\r\n\r\n }\r\n\r\ncheckMobileNumber()\r\n{\r\n //check length\r\n \r\n if (this.aUser.MobileNumber.trim().length >= 10) \r\n {\r\n// how many spaces are in a string?\r\n var knt = this.aUser.MobileNumber.trim().split(\" \").length - 1;\r\n //console.log(\"what is the count\");\r\n //console.log(knt);\r\n var str = new String(this.aUser.MobileNumber.trim()); \r\n for(let i =0;i {\r\n\r\n if (code.length > 3) {\r\n this.authWebService.checkByCode(code.trim()).subscribe(result => {\r\n this.isDup = (result.Status && !this.isEdit) ? true : false;\r\n }, error => {\r\n this.isDup = false;\r\n\r\n });\r\n }\r\n });\r\n }\r\n\r\n onChangeValue() {\r\n\r\n }\r\n selectcorrespondenceType(typeVal){\r\n //console.log(typeVal)\r\n this.correspondenceType=typeVal;\r\n \r\n }\r\n\r\n onSelectChange() {\r\n console.dir(this.selectedDisplay);\r\n }\r\n\r\n ckeckTerms(event){\r\n if ( event.target.checked ) {\r\n\r\n this.terms = 'clicked'\r\n }else {\r\n this.terms = null;\r\n }\r\n\r\n}\r\nresolved(captchaResponse: string){\r\n //console.log(captchaResponse)\r\n this.reCaptcha = captchaResponse;\r\n}\r\n\r\nvalidateEmail(control){\r\n\r\n}\r\n\r\ngetErrorFirtsName() {\r\n return this.form.get('FirstName').hasError('required') ? 'First name is required' :\r\n this.form.get('FirstName').hasError('pattern') ? 'First Name entered is invalid' : '';\r\n}\r\n\r\ngetErrorLastName() {\r\n return this.form.get('LastName').hasError('required') ? 'Last name is required' :\r\n this.form.get('LastName').hasError('pattern') ? 'Last Name entered is invalid' : '';\r\n}\r\n\r\n\r\ngetErrorUsername() {\r\n return this.form.get('UserName').hasError('required') ? 'Email is required' :\r\n this.form.get('UserName').hasError('pattern') ? 'Email Address is invalid . Please enter a valid email address e.g: name@example.com' : '';\r\n}\r\n\r\ngetErrorEmail() {\r\n return this.form.get('UserName').hasError('required') ? 'Email is required' :\r\n this.form.get('UserName').hasError('pattern') ? 'Email Address is invalid . Please enter a valid email address e.g: name@example.com' : '';\r\n}\r\ngetConfirmEmail(){\r\n return this.form.get('EmailAddress').hasError('required') ? 'Confirmation Email Address is required' :\r\n this.form.get('EmailAddress').hasError('pattern') ? 'Email Address is invalid . Please enter a valid email address e.g: name@example.com' :\r\n this.form.get('EmailAddress').hasError('notMatched') ? 'The Email Address and confirmation email address DO NOT MATCH' : '';\r\n}\r\n\r\nemailVerification(UserName,EmailAddress){\r\nif(UserName!=EmailAddress){\r\n this.form.controls['EmailAddress'].setErrors({'notMatched':true});\r\n}\r\n}\r\n\r\n//Password Guide\r\ngetPasswordErr(){\r\n return this.form.get('Password').hasError('required') ? 'Password is required' :\r\n this.form.get('Password').hasError('pattern') ? 'Password must atleast be eight character long,including uppercase letter[A-Z], lowercase letter [a-z], number [0-9] and special character [@#$%*]' : '';\r\n}\r\ngetConfirmPasswordErr(){\r\n return this.form.get('ConfirmPassword').hasError('required') ? 'Confirm Password is required' :\r\n //this.form.get('ConfirmPassword').hasError('pattern') ? 'Password to include atleast eight characters,including one uppercase [A-Z], one lowercase letter [a-z],one number [0-9] and one character [@#$%*] ' :'';\r\n this.form.get('ConfirmPassword').hasError('notMatched') ? 'Password do not match' :'';\r\n}\r\nvalidateFirstName()\r\n{\r\n \r\n if(this.aUser.FirstName.match(/[^0-9]/)){\r\n return this.form.get('FirstName').hasError('required') ? 'Invalid First name' :\r\n this.form.get('FirstName').hasError('pattern') ? 'First Name is invalid . Please enter a valid first Name e.g: Cross' : '';\r\n }\r\n}\r\nvalidateLastName()\r\n{\r\n if(this.aUser.LastName.match(/[^0-9]/)){\r\n return this.form.get('LastName').hasError('required') ? 'Invalid Last name' :\r\n this.form.get('LastName').hasError('pattern') ? 'Last name is invalid . Please enter a valid last Name e.g: Easy' : '';\r\n }\r\n}\r\n\r\npasswordMatch(Password,confirmPassword){\r\n if(Password!=confirmPassword){\r\n this.form.controls['ConfirmPassword'].setErrors({'notMatched':true}); }\r\n}\r\ngetErrorPhoneNumber(){\r\n return this.form.get('PhoneNumber').hasError('required') ? 'Phone Number is required' :\r\n this.form.get('PhoneNumber').hasError('maxLength') ? 'Inavlid Mobile Number' :\r\n this.form.get('PhoneNumber').hasError('pattern') ?'Mobile Number entered is invalid' :'';\r\n}\r\ngetErrorMobileNumber(){\r\n return this.form.get('MobileNumber').hasError('required') ? 'Mobile Number is required' :'';\r\n // this.form.get('MobileNumber').hasError('maxLength') ? 'Inavlid Mobile Number' : '';\r\n}\r\n\r\ngetErrorCorrespondenceType(){\r\n return this.form.get('correspondenceType').hasError('required') ? 'Correspondence is required' :'';\r\n // this.form.get('MobileNumber').hasError('maxLength') ? 'Inavlid Mobile Number' : '';\r\n}\r\ngetSiteKey(){\r\n return this.sKey\r\n}\r\nazureLogin(){\r\n this.msalService.loginPopup().subscribe((response:AuthenticationResult) =>{\r\n if(response.account)\r\n this.message = \"Loading...\";\r\n this.aUser.FirstName = response.account.name.substring(0,response.account.name.indexOf(\" \")).trim();\r\n this.aUser.LastName = response.account.name.substring(response.account.name.indexOf(\" \")).trim()\r\n this.aUser.UserCreated = this.aUser.UserUpdated = this.aUser.FirstName;\r\n this.aUser.CommunicationType = this.correspondenceType === \"2\" ? \"SMS\" : \"EMAIL\";\r\n this.isLoading = true;\r\n //console.dir(this.aUser);\r\n this.aUser.UserName=response.account.username.toLowerCase();\r\n this.aUser.EmailAddress=response.account.username.toLowerCase();\r\n this.aUser.Authenticator = \"Azure\";\r\n this.authWebService.registerAzure(this.aUser);\r\n});\r\n}\r\nazureLogout(){\r\n this.msalService.logout();\r\n}\r\nshowPassword() {\r\n this.hide = !this.hide;\r\n }\r\n showPasswordNew() {\r\n this.hideNew = !this.hideNew;\r\n }\r\n}\r\n","\"iCBMS\"\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \"iCBMS\"\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n\r\n

\r\n User Registration\r\n

\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n {{getErrorFirtsName()}}\r\n \r\n \r\n \r\n {{getErrorFirtsName()}}\r\n \r\n \r\n\r\n
\r\n\r\n\r\n
\r\n \r\n \r\n \r\n {{getErrorLastName()}}\r\n \r\n \r\n \r\n {{getErrorLastName()}}\r\n \r\n \r\n\r\n
\r\n\r\n\r\n\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n

*Mobile Number is required

\r\n

*Invalid mobile number

\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n

*Phone number is required

\r\n

*Invalid mobile number

\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n {{getErrorEmail()}}\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n {{getConfirmEmail()}}\r\n \r\n
\r\n\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{getPasswordErr()}}\r\n \r\n \r\n \r\n {{getPasswordErr()}}\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{getConfirmPasswordErr()}}\r\n \r\n\r\n
\r\n
\r\n Send confirmation link by *\r\n EMAIL\r\n SMS\r\n \r\n \r\n
\r\n \r\n\r\n
\r\n

Fields marked with * are mandatory. Note that your Email Address will be your Username.

\r\n By clicking the checkbox, you note our\r\n POPIA Processing Notices\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n
\r\n

Already registered? Click Here

\r\n\r\n\r\n
\r\n
\r\n
OR
\r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n
POPIA Processing Notices
\r\n \r\n
\r\n
\r\n\r\n

Background to data privacy in South Africa


The Protection of Personal Information Act, 4 of 2013, (“POPIA”), which came into force on 1 July 2021, is a law which regulates the use and processing of a person and / legal entity’s personal information, this being in response to, and in order to protect and give effect to a person and/or legal entity’s rights to privacy, including the right not to have their / its personal information and related data misused, abused or used for ulterior purposes.

POPIA applies to personal information which belongs to individuals and legal entities (“Data Subjects”) which is processed, be it in an automated or non-automated manner in South Africa, by another (“Responsible Party”) and places on any Responsible Party who is processing a data Subject’s personal information, a duty to use it lawfully and only for a specific and defined purpose(s).

In terms of POPIA, Cross Border Road Transport Agency (C-BRTA) , as a Responsible Party, is required to appoint an Information Officer (“IO”) and Deputy Information Officers (“DIOs”), to be responsible for establishing a POPIA Compliance Framework, and who following this, are required to assess, analyse and understand what types of personal information C-BRTA is processing which belongs to Data Subjects and to thereafter develop certain processes and procedures, including a POPIA Policy, which have to be followed by all C-BRTA employees when they process and use another’s personal information.

A Personal Information Impact Assessment as per the C-BRTA’s POPIA Compliance Framework has been carried out and created, which has indicated that C-BRTA , during the course of its business activities does and will continue to collect, store and process personal information about C-BRTA employees, its customers, suppliers and other third parties.

Furthermore, the Impact Assessment has defined and revealed that C-BRTA processes a large amount of different types of personal information including names, addresses, opinions, financial details, medical details and the like which pertain to current, past and prospective employees and customers, suppliers, and others who C-BRTA communicates and deals with and which processing is carried out for a variety of purposes, including for business, compliance and legal purposes.

C-BRTA also processes special purpose information including gender, sex, marital status, colour, age, race or ethnic origin, religious beliefs, trade union membership and the like for the purposes of recruitment, employment equity statistics, legal compliance and for the facilitation of union fees and memberships.

Following the Personal Information Impact Assessment, C-BRTA is confident that whilst this personal information is held on paper or on a computer or other media, such storage is subject to the prescribed legal safeguards as specified in POPIA and other regulations.

As per the POPIA requirements has implemented a robust POPIA compliance programme which includes various POPIA policies and processes, some of which are internal documents and some are which are available for public access. These documents are available for public access and can be accessed in the menu on the left.


\r\n\r\n \r\n\r\n \r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\r\nimport { AlertComponent } from 'app/popup/alert.component';\r\nimport { UtilityServiceService } from 'app/services/utility-service.service';\r\nimport { AuthWebService } from 'app/services/authweb.service';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { DialogService } from 'ng2-bootstrap-modal';\r\nimport { EqualvalidatorDirective } from 'app/validators/equalvalidator.directive';\r\nimport { environment } from 'environments/environment';\r\n\r\n@Component({\r\n selector: 'app-confirmpasswordchange',\r\n templateUrl: './confirmpasswordchange.component.html',\r\n styleUrls: ['./confirmpasswordchange.component.css']\r\n})\r\nexport class ConfirmpasswordchangeComponent implements OnInit {\r\n form;\r\n params: any = {};\r\n loginUser: any = { };\r\n systemCode: String = null;\r\n public isLoading = false;\r\n message = null;\r\n resetcodepattern = /^[0-9]+$/;\r\n\r\n constructor(public authWebService: AuthWebService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n public utility: UtilityServiceService) { }\r\n\r\n ngOnInit() {\r\n this.systemCode = environment.authWebApi.systemCode\r\n this.initForm();\r\n\r\n }\r\n\r\n initForm(){\r\n this.form = new FormGroup({\r\n EmailAddress: new FormControl(this.loginUser.EmailAddress, Validators.compose([Validators.required, Validators.pattern('^[_A-Za-z0-9-\\\\+]+(\\\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\\\\.[A-Za-z0-9]+)*(\\\\.[A-Za-z]{2,})$')]))\r\n , Password: new FormControl('', Validators.compose([Validators.required,Validators.pattern( '^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9]).{8,}$')] ))\r\n , ConfirmPassword: new FormControl( '', Validators.compose([Validators.required,Validators.pattern( '^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9]).{8,}$')] ))\r\n , ResetCode: new FormControl(this.loginUser.ResetCode,Validators.compose([Validators.required,Validators.pattern(this.resetcodepattern)]))\r\n\r\n });\r\n\r\n }\r\n\r\n onSubmit(obj:any){\r\n\r\n this.loginUser = obj;\r\n\r\n this.authWebService.passwordResetConfirm(this.loginUser);\r\n }\r\n getErrorEmail() {\r\n return this.form.get('EmailAddress').hasError('required') ? 'Email is required' :\r\n this.form.get('EmailAddress').hasError('pattern') ? 'Email Address is invalid . Please enter a valid email address eg: name@example.com' : '';\r\n }\r\n getPasswordErr(){\r\n return this.form.get('Password').hasError('required') ? 'Password is required' :\r\n this.form.get('Password').hasError('pattern') ? 'Password must be atleast eight characters including one uppercase letter, one lowercase letter and one number' : '';\r\n }\r\n getConfirmPasswordErr(){\r\n return this.form.get('ConfirmPassword').hasError('required') ? 'Confirm Password is required' :\r\n this.form.get('ConfirmPassword').hasError('pattern') ? 'Confirm Password must be atleast eight characters including one uppercase letter, one lowercase letter and one number' :\r\n this.form.get('ConfirmPassword').hasError('notMatched') ? 'Password and Confirm Password do not match' :'';\r\n }\r\n passwordMatch(Password,confirmPassword){\r\n if(Password!=confirmPassword){\r\n this.form.controls['ConfirmPassword'].setErrors({'notMatched':true}); }\r\n }\r\n getResetCodeErr(){\r\n return this.form.get('ResetCode').hasError('required') ? 'Reset Code is required' :\r\n this.form.get('ResetCode').hasError('pattern') ? 'Reset Code must contain numbers only' : '';\r\n\r\n }\r\n\r\n\r\n}\r\n","
\r\n
\r\n
\r\n\r\n

\r\n \r\n \r\n \r\n Confirm Reset Password\r\n

\r\n
\r\n
\r\n \r\n
\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n {{getPasswordErr()}}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n {{getConfirmPasswordErr()}}\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n {{getResetCodeErr()}}\r\n \r\n
\r\n\r\n\r\n
\r\n \r\n \r\n
\r\n {{getErrorEmail()}}\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\r\nimport { environment } from 'environments/environment';\r\nimport { StorageService } from 'app/services/storage.service';\r\nimport { AuthWebService } from 'app/services/authweb.service';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { DialogService } from 'ng2-bootstrap-modal';\r\nimport { UtilityServiceService } from 'app/services/utility-service.service';\r\nimport { EqualvalidatorDirective } from 'app/validators/equalvalidator.directive';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\n@Component({\r\n selector: 'app-reset',\r\n templateUrl: './reset.component.html',\r\n styleUrls: ['./reset.component.css']\r\n})\r\nexport class ResetComponent implements OnInit {\r\n form;\r\n params: any = {};\r\n loginUser: any = { };\r\n systemCode: String = null;\r\n correspondencechoice: string=null;\r\n public isLoading = false;\r\n message = null;\r\n\r\n constructor(public authWebService: AuthWebService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n public utility: UtilityServiceService,private toastr:ToastrService) { }\r\n\r\n ngOnInit() {\r\n this.systemCode = environment.authWebApi.systemCode\r\n\r\n if(localStorage.getItem('isLogged') == 'true')\r\n {\r\n localStorage.clear();\r\n window.location.reload();\r\n }\r\n this.initForm();\r\n }\r\n initForm(){\r\n this.form = new FormGroup({\r\n EmailAddress: new FormControl(\"\", Validators.compose([Validators.required, Validators.pattern(/^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/)]))\r\n \r\n \r\n });\r\n \r\n }\r\n selectcorrespondenceType(typeVal){\r\n \r\n this.correspondencechoice=typeVal;\r\n \r\n }\r\n\r\n \r\n onSubmit(obj: any){\r\n\r\n if (this.correspondencechoice === null){\r\n \r\n return this.toastr.warning('Please select how you want to recieve the reset confirmation link!','Password Reset');\r\n \r\n }\r\n\r\n if (obj.EmailAddress === null)\r\n {\r\n return this.toastr.warning('Enter Email address!','Password Reset');\r\n }\r\n obj.EmailAddress=obj.EmailAddress.toLowerCase();\r\n //send to authweb\r\n this.authWebService.passwordResetRequest(obj.EmailAddress, this.systemCode, this.correspondencechoice === \"2\" ? \"SMS\" : \"EMAIL\");\r\n \r\n }\r\n\r\n \r\n}\r\n","\"iCBMS\"\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \"iCBMS\"\r\n\r\n
\r\n \r\n
\r\n\r\n\r\n
\r\n\r\n\r\n\r\n\r\n
\r\n\r\n
\r\n
\r\n\r\n

\r\n \r\n \r\n Forgot Password?\r\n

\r\n
\r\n
\r\n \r\n
\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n Send reset confirmation link by \r\n EMAIL\r\n  or \r\n SMS\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
","\r\nimport {map} from 'rxjs/operators';\r\nimport { Injectable, Inject } from '@angular/core';\r\nimport { Observable , Subject } from \"rxjs\";\r\nimport \"rxjs/Rx\";\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\n\r\nimport { Baseservice } from './baseservice'\r\n\r\nimport { AuthenticationService } from './authentication.service';\r\n\r\n@Injectable()\r\nexport class ApplicationService extends Baseservice {\r\n private activeTab = new Subject();\r\n\r\n //keeping track of changes\r\n public dataControlTrackChanges: any = null;\r\n public motivationChanged: boolean = false;\r\n public documentsChanged: boolean = false;\r\n public vehicleAdded: boolean = false;\r\n\r\n public vehicleLoadCount: number = 0;\r\n public vehiclesControlTrackChanges: any = [];\r\n\r\n constructor(http: HttpClient, authentication: AuthenticationService) {\r\n super(\"application\", http, authentication);\r\n }\r\n\r\n get() {\r\n return this.getApplication(this.url + \"/application\");\r\n }\r\n\r\n getById(id: any) {\r\n return this.getApplication(this.url + \"/find/\" + id);\r\n }\r\n getAllApp() {\r\n return this.http.get(this.url + \"/find-all\");\r\n }//permit-apps\r\n getAllAppPermits() {\r\n return this.http.get(this.url + \"/permit-apps\");\r\n }\r\n postAllAppPermits(data) {\r\n return this.http.post(this.url + \"/permit-apps\", data);\r\n }\r\n getApplication(url: string) {\r\n return this.getRequest(url).pipe(map(response => response));\r\n }\r\n\r\n postApplication(object: any) {\r\n let body = object; \r\n console.log(this.url);\r\n return this.http.post(this.url, body);\r\n }\r\n\r\n putApplication(object) {\r\n let body = object;\r\n return this.http.put(this.url, body);\r\n }\r\n putApplicationDuplicate(object) {\r\n let body = object;\r\n return this.http.put(this.url + \"/duplicate\", body);\r\n }\r\n setTab(num) {\r\n this.activeTab.next(num);\r\n }\r\n getTab(): Observable {\r\n return this.activeTab.asObservable();\r\n }\r\n deleteApplication(id) {\r\n //alert(this.url);\r\n return this.http.delete(this.url + '/' + id);\r\n }\r\n\r\n searchApplications(keyword: any, PageNum: number, PageSize: number, isDef: boolean, sort: number, direction: boolean) {\r\n return this.http.post(`${this.url}/search/${isDef}/${PageNum}/${PageSize}/${sort}/${direction}`, keyword);\r\n }\r\n\r\n \r\n getApplicationByAppId(appId :number) {\r\n return this.http.get(`${this.url}/getApplicationByAppId/${appId}`);\r\n }\r\n\r\n createInvoice(object) {\r\n let body = object;\r\n return this.http.post(this.url + \"/invoice\", body);\r\n }\r\n UnsubmitApp(id, feeType) {\r\n return this.getRequest(`${this.url}/unsubmit/${id}/${feeType}`);\r\n }\r\n\r\n getByIdForComplianceApp(appID, permitNumber)\r\n {\r\n return this.getRequest(`${this.url}/getByIdForComplianceApp/${appID}/${permitNumber}`);\r\n }\r\n}\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { environment } from '../../environments/environment';\r\n\r\ndeclare var jQuery: any;\r\ndeclare var async: any;\r\n\r\n@Injectable()\r\nexport class AuthenticationService {\r\n\r\n\t\r\n\r\n\tconstructor() {\r\n\t\t\r\n\t}\r\n\r\n\tpublic get loginUrl(): string {\r\n return null;//return this.keycloak.createLoginUrl();\r\n\t}\r\n\r\n public logoutUrl(): string {\r\n //const str = this.keycloak.createLogoutUrl();\r\n ////console.log(str);\r\n return null;// return str;\r\n\t}\r\n\r\n\tpublic get registerUrl(): string {\r\n return null;//return this.keycloak.createRegisterUrl();\r\n\t}\r\n\r\n\tpublic get accountManagementUrl(): string {\r\n return null;//return this.keycloak.createAccountUrl();\r\n\t}\r\n\r\n\tpublic get authenticated(): boolean {\r\n return null;//return this.keycloak.authenticated;\r\n\t}\r\n\r\n\t//public get userId(): string {\r\n\t//\treturn this.keycloak.subject;\r\n\t//}\r\n\r\n\t//public get userProfile(): string {\r\n\t//\treturn this.keycloak.profile;\r\n\t//}\r\n\r\n\t//public get userInfo(): string {\r\n\t//\treturn this.keycloak.userInfo;\r\n\t//}\r\n\r\n\tpublic get userData(): any {\r\n return null;//return environment.authWebApi.userData;\r\n\t}\r\n\r\n\tpublic get token(): string {\r\n return null;//return this.keycloak.token;\r\n\t}\r\n\r\n\tpublic get tokenContent(): string {\r\n return null;//this.keycloak.tokenParsed;\r\n\t}\r\n\r\n\t//actions\r\n\r\n\tpublic login() {\r\n return null;//return this.keycloak.login();\r\n\t}\r\n\r\n\tpublic logout() {\r\n return null;//return this.keycloak.logout();\r\n\t}\r\n\r\n\tpublic register() {\r\n return null;//return this.keycloak.register();\r\n\t}\r\n\r\n\tpublic accountManagement() {\r\n return null;//return this.keycloak.accountManagement();\r\n\t}\r\n\r\n\t\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { environment } from '../../environments/environment';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { StorageService } from './storage.service';\r\nimport { Router, RoutesRecognized } from '@angular/router';\r\nimport { DialogService } from 'ng2-bootstrap-modal';\r\nimport { AlertComponent } from 'app/popup/alert.component';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { IdleManagerService } from './idle-manager.service';\r\nimport { filter, pairwise} from 'rxjs/operators';\r\nimport { AuthenticationService } from './authentication.service';\r\nimport { SignalrService } from './signalr.service';\r\nimport { AuthSession } from 'app/interfaces/authsession.interface';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { GoogleLoginProvider, SocialAuthService } from 'angular12-social-login';\r\nimport { ScannerService } from './scanner.service';\r\n\r\n\r\ndeclare var jQuery: any;\r\ndeclare var async: any;\r\n\r\n@Injectable()\r\nexport class AuthWebService {\r\n private static AUTHORIZATION: string = \"Authorization\";\r\n private static HEADERS = {};\r\n private static PENDING_REQUESTS = [];\r\n public isLoading = false;\r\n sessionId: string;\r\n isMachineKiosk = false;\r\n reload = new BehaviorSubject(false);\r\n isloggedout = false;\r\n\r\n\r\n\tconstructor(\r\n private storageService: StorageService, private authService: SocialAuthService, private http: HttpClient,private signalrService: SignalrService,private authentication:AuthenticationService,\r\n private router: Router, private toastr: ToastrService,\r\n private idleSrvc: IdleManagerService, private scanner: ScannerService,) {\r\n AuthWebService.HEADERS['Content-Type'] = 'application/json';\r\n AuthWebService.HEADERS['Accept'] = 'application/json';\r\n\r\n\t}\r\n checkReload(data){\r\n this.reload.next(data);\r\n }\r\n getRealod(){\r\n return this.reload.asObservable();\r\n }\r\n loginWithDNN(data){\r\n return this.http.post(environment.authWebApi.url + '/api/UserService/LoginWithDNN' ,data)\r\n }\r\n\r\n\tpublic login(userName, password) {\r\n this.isLoading = true;\r\n\r\n\t\t//console.log(\"Start Authentication\");this.http.get(environment.authWebApi.url + 'api/ConfigurationService/SystemConfig/'+environment.authWebApi.systemCode)\r\n this.webrequest('POST','UserService', 'Login', JSON.stringify({\r\n\t\t\tusername: userName,\r\n\t\t\tpassword: password,\r\n\t\t\tsystemcode: environment.authWebApi.systemCode\r\n\t\t})).then((data:any) => {\r\n this.isLoading = false;\r\n if(data === null){\r\n return this.toastr.warning('Account not activated, please check your email for activation.','Authentication failed')\r\n\r\n }\r\n \r\n\t\t\tif (data.IsAuthenticated) {\r\n\t\t\t\tenvironment.authWebApi.userData = data;\r\n this.storageService.setID(data.User.Id);\r\n this.storageService.setSessionId(data.User.Id);\r\n this.idleSrvc.setLoggedIn(data.IsAuthenticated);\r\n localStorage.setItem('isLogged','true');\r\n this.storageService.isLogged=true;\r\n let role:any=null;\r\n let userRoles:any=data.Roles.filter((map=>{return map.Code=='ADMIN'}));\r\n if(userRoles!=null && userRoles.length>0){\r\n role='ADMIN'; \r\n }else{\r\n role='GUEST'\r\n }\r\n \r\n this.isKiosk();\r\n \r\n // this.signalrService.SessionManager(data.User.Id + '');\r\n \r\n let previousUrl:any=localStorage.getItem(\"previousUrl\")!=undefined ? localStorage.getItem(\"previousUrl\") : sessionStorage.getItem(\"previousUrl\")!=undefined ? sessionStorage.getItem(\"previousUrl\") : undefined;\r\n if(previousUrl!=undefined && (previousUrl.indexOf('process')>0 || previousUrl.indexOf('approval')>0) && role!=null && role=='ADMIN'){\r\n this.router.navigate([previousUrl]);\r\n localStorage.removeItem('previousUrl');\r\n }else{\r\n this.redirectTo('home');\r\n }\r\n\t\t\t\t\r\n\t\t\t}else if(data.IsAuthenticated == false && data.User != null){\r\n this.isLoading = false;\r\n this.toastr.error('Your Account is locked. A Password Reset Link was emailed to you.\\n'+'Contact the administrator if the problem persists.\\n'+'Tel : 012 471 2121'+'\\nEmail: helpdesk@cbrta.co.za','Authentication failed');\r\n }\r\n else {\r\n this.isLoading = false;\r\n //this.messageBox.warning('Authentication failed', 'Invalid usename or password. Please try again.');\r\n // this.dialogService.addDialog(AlertComponent, { title: 'Authentication failed', message: 'Invalid usename or password. Please try again.' });\r\n this.toastr.error('Contact the administrator if the problem persists.\\n'+'Tel : 012 471 2121'+'\\nEmail: helpdesk@cbrta.co.za','Authentication failed');\r\n\t\t }\r\n }, (error) => {\r\n this.isLoading = false;\r\n //console.log(userName+'----'+password);\r\n if(password==null || password ==undefined){\r\n \r\n this.toastr.error('You are unable to Log In without a Password.','Authentication failed');\r\n }else{\r\n this.toastr.error('Contact the administrator if the problem persists.\\n'+'Tel : 012 471 2121'+'\\nEmail: helpdesk@cbrta.co.za','Authentication failed');\r\n }\r\n\r\n\r\n // this.dialogService.addDialog(AlertComponent, { title: 'Authentication failed', message: 'Contact the administrator if the problem persists.'});\r\n\r\n\t\t\t//his.messageBox.danger('Authentication failed','Authentication failed. Contact the administrator if the problem persists ');\r\n\t\t});\r\n\t}\r\n\r\n isKiosk(){\r\n\r\n // this.signalrService.getPCDetails().subscribe((result) =>{\r\n // if(result){\r\n // this.isMachineKiosk = true;\r\n // this.runSignalRService();\r\n // }\r\n // }, err =>{\r\n\r\n // });\r\n }\r\n\r\n runSignalRService(){\r\n if (localStorage.getItem(\"userID\") !== null) {\r\n if (localStorage.getItem(\"sessionId\") != null) {\r\n this.sessionId = localStorage.getItem(\"sessionId\").toString();\r\n } else {\r\n this.sessionId = crypto.randomUUID();\r\n localStorage.setItem(\"sessionId\", this.sessionId);\r\n }\r\n\r\n \r\n let authSession: AuthSession = {\r\n id: 0,\r\n carrierId: 0,\r\n sessionId: this.sessionId,\r\n pcIpAddress: this.signalrService.ipAddress,\r\n pcName: \"\",\r\n statusId: 1,\r\n connectionId: this.signalrService.connectionId,\r\n sessionStartTime: new Date(),\r\n sessionEndTime: new Date(),\r\n dateCreated: new Date(),\r\n dateModified: new Date(),\r\n userCreated: localStorage.getItem(\"userID\"),\r\n userModifiedId: Number(localStorage.getItem(\"userID\")),\r\n \r\n };\r\n\r\n this.signalrService.SessionManager(authSession);\r\n }\r\n }\r\n\r\n\tpublic logout() {\r\n\r\n console.log(\"Tryting to Logout\");\r\n\r\n \r\n \r\n // this.scanner.relaunch();\r\n \r\n this.authService.authState.subscribe(\r\n (user) => {\r\n console.log(\"Google \", user)\r\n\r\n if(user != null || user != undefined) {\r\n // this.scanner.relaunch().subscribe(\r\n // () => {\r\n // console.log(\"DOne Relaunching\")\r\n // });\r\n\r\n }\r\n });\r\n\r\n if(this.userData.User.Authenticator ===\"Google\" && this.isMachineKiosk === true){\r\n // this.scanner.relaunch().subscribe(\r\n // () => {\r\n // console.log(\"DOne Relaunching\");\r\n // });\r\n }\r\n\r\n this.isloggedout = true;\r\n\r\n console.log(\"I just refreshed\");\r\n this.authService.signOut(true);\r\n console.log(\"I just signedout\");\r\n \r\n\t\tthis.storageService.removeID();\r\n environment.authWebApi.userData = null;\r\n let previuosUrl:any=window.location.pathname;\r\n localStorage.clear();\r\n localStorage.removeItem(\"sessionId\");\r\n localStorage.setItem('previousUrl',previuosUrl);\r\n this.checkReload(true);\r\n if( this.isMachineKiosk === true){\r\n this.signalrService.stopConnection(this.signalrService.authSession);\r\n }\r\n\r\n\r\n\r\n this.redirectTo('login');\r\n\t\r\n \r\n \r\n\t}\r\n\r\n public register(auser: any) {\r\n //console.log(auser);\r\n this.isLoading = true;\r\n \r\n this.request('UserService', 'AddUser', {\r\n user: auser,\r\n SysCode: \"ICBMS\",\r\n activeLink: environment.activateLink.url,\r\n }).then((ur) => {\r\n //console.log(ur);\r\n if(ur === null){\r\n this.isLoading = false;\r\n return this.toastr.warning('User already exists!','Registration failed');\r\n }\r\n // this.dialogService.addDialog(AlertComponent, { title: 'User Registration', message: 'User registered successfully' });\r\n this.toastr.success('To complete your Registration, please check your Email or SMS to Activate your Login Account. This might take a few minutes','User Registration');\r\n this.isLoading = false;\r\n this.redirectTo('login');\r\n }, (error) => {\r\n //console.log(error);\r\n this.isLoading = false;\r\n // this.dialogService.addDialog(AlertComporrnent, { title: 'Registration failed', message: 'Contact the administrator if the problem persists.' });\r\n this.toastr.error('Contact the administrator if the problem persists.\\n'+'\\nTel : 012 471 2121'+'\\nEmail: helpdesk@cbrta.co.za','Registration failed');\r\n });\r\n\r\n\t}\r\n public registerAzure(auser: any) {\r\n this.isLoading = true;\r\n//console.log(\"AzuerUser\");\r\n\r\n this.webrequest('POST','UserService', 'AddAzureUser', JSON.stringify({\r\n user: auser,\r\n SysCode: \"ICBMS\",\r\n activeLink: \"url\"\r\n })).then((data) => {\r\n \r\n this.isLoading = false;\r\n console.log(\"Returned data:\");\r\n console.log(data);\r\n if (data.IsAuthenticated) {\r\n\t\t\t\tenvironment.authWebApi.userData = data;\r\n this.storageService.setID(data.User.Id);\r\n this.storageService.setSessionId(data.User.Id);\r\n this.idleSrvc.setLoggedIn(data.IsAuthenticated);\r\n localStorage.setItem('isLogged','true');\r\n this.storageService.isLogged=true;\r\n let role:any=null;\r\n let userRoles:any=data.Roles.filter((map=>{return map.Code=='ADMIN'}));\r\n if(userRoles!=null && userRoles.length>0){\r\n role='ADMIN'; \r\n }else{\r\n role='GUEST'\r\n }\r\n let previousUrl:any=localStorage.getItem(\"previousUrl\")!=undefined ? localStorage.getItem(\"previousUrl\") : sessionStorage.getItem(\"previousUrl\")!=undefined ? sessionStorage.getItem(\"previousUrl\") : undefined;\r\n if(previousUrl!=undefined && (previousUrl.indexOf('process')>0 || previousUrl.indexOf('approval')>0) && role!=null && role=='ADMIN'){\r\n this.router.navigate([previousUrl]);\r\n localStorage.removeItem('previousUrl');\r\n }else{\r\n this.redirectTo('home');\r\n }\r\n\t\t\t\t\r\n } else if(data.IsAuthenticated == false && data.User != null){\r\n this.isLoading = false;\r\n this.toastr.error('Your Account is locked.\\n'+'Contact the administrator to arrange for your profile to be unlocked.\\n'+'Tel : 012 471 2121'+'\\nEmail: helpdesk@cbrta.co.za','Authentication failed');\r\n }\r\n else{\r\n//console.log(\"returned data:\")\r\n//console.log(data);\r\nthis.isLoading = false;\r\n return this.toastr.error('Your credentials are incorrect','Login failed');\r\n\r\n }\r\n\r\n\r\n\r\n\r\n // this.redirectTo('home');\r\n }, (error) => {\r\n console.log(error);\r\n this.isLoading = false;\r\n // this.dialogService.addDialog(AlertComporrnent, { title: 'Registration failed', message: 'Contact the administrator if the problem persists.' });\r\n this.toastr.error('Contact the administrator if the problem persists.\\n'+'\\nTel : 012 471 2121'+'\\nEmail: helpdesk@cbrta.co.za','Registration failed');\r\n });\r\n\r\n\t}\r\n public ammendUser(auser: any, oldFirstName, oldLastName, oldemail, oldmobile) {\r\n //console.log(\"Start Authentication\");\r\n this.isLoading = true;\r\n\r\n this.webrequest('GET','ConfigurationService', 'GetValue', JSON.stringify({\r\n\t\t\tsystemCode: environment.authWebApi.systemCode,\r\n\t\t\tconfigCode: \"ProfileMFA\",\r\n\t\t\tdefaultValue: null\r\n\t\t})).then(data => {\r\n if(data ==\"true\")\r\n {\r\n let userObj = Object.create(auser);\r\n userObj.Id = auser.Id;\r\n userObj.FirstName = oldFirstName;\r\n userObj.LastName = oldLastName;\r\n userObj.EmailAddress = oldemail ?? auser.EmailAddress;\r\n userObj.MobileNumber = oldmobile ?? auser.MobileNumber;\r\n userObj.DialCodeMobile = auser.DialCodeMobile;\r\n userObj.CommunicationType = auser.CommunicationType;\r\n userObj.SysCode = auser.SysCode;\r\n this.webrequest('POST','UserService', 'RequestOtp', userObj).then((ur) => {\r\n \r\n if(ur.success==true)\r\n {\r\n //show otp pop up\r\n document.getElementById('secretButton').click();\r\n }else{\r\n this.toastr.error('Contact the administrator if the problem persists.\\n'+'\\nTel : 012 471 2121'+'\\nEmail: helpdesk@cbrta.co.za','Failed to send OTP');\r\n }\r\n }, (error) => {\r\n \tthis.toastr.error('Contact the administrator if the problem persists.\\n'+'\\nTel : 012 471 2121'+'\\nEmail: helpdesk@cbrta.co.za','Failed to send OTP');\r\n \t\t});\r\n }\r\n else {\r\n this.request('UserService', 'AmmendUser', auser \r\n ).then((ur) => {\r\n // this.dialogService.addDialog(AlertComponent, { title: 'User Update', message: 'User updated successfully' });\r\n this.toastr.success('User updated successfully','User Update');\r\n this.isLoading = false;\r\n //this.redirectTo('login');\r\n }, (error) => {\r\n this.isLoading = false;\r\n // this.dialogService.addDialog(AlertComponent, { title: 'User Update failed', message: 'Contact the administrator if the problem persists.' });\r\n this.toastr.error('Contact the administrator if the problem persists.\\n'+'\\nTel : 012 471 2121'+'\\nEmail: helpdesk@cbrta.co.za','User Update failed');\r\n });\r\n }\r\n\r\n });\r\n \r\n \r\n\r\n }\r\n\r\n\tpublic accountManagement() {\r\n\r\n \r\n }\r\n public passwordResetRequest(emailAddress: any, systemcode:any, correspondencechoice:any) {\r\n ////console.log(\"Start Authentication\");\r\n this.isLoading = true;\r\n this.request('UserService', 'InitiatePasswordReset', {\r\n emailAddress: emailAddress,\r\n systemcode: systemcode,\r\n correspondencechoice:correspondencechoice\r\n }).then((ur) => {\r\n console.log(ur)\r\n // this.dialogService.addDialog(AlertComponent, { title: 'Password Reset', message: 'An email has been sent to ' + emailAddress });\r\n //Checkig the server message from password reset service \r\n if(ur.includes('failed')){\r\n this.toastr.warning(ur,'Password Reset');\r\n }else{\r\n this.toastr.success('A message has been sent','Password Reset');\r\n }\r\n this.isLoading = false;\r\n this.redirectTo('login');\r\n }, (error) => {\r\n this.isLoading = false;\r\n // this.dialogService.addDialog(AlertComponent, { title: 'Password Reset failed', message: 'Contact the administrator if the problem persists.' });\r\n this.toastr.error('Contact the administrator if the problem persists.\\n'+'\\nTel : 012 471 2121'+'\\nEmail: helpdesk@cbrta.co.za','Password Reset failed');\r\n\r\n });\r\n\r\n }\r\n\r\n public passwordResetConfirm(data){\r\n this.isLoading = true;\r\n this.request('UserService', 'CompletePasswordReset', {\r\n emailAddress: data.EmailAddress,\r\n passwordresettoken: data.ResetCode.toString(),\r\n newpassword:data.Password\r\n }).then((ur) => {\r\n\r\n // this.dialogService.addDialog(AlertComponent, { title: 'Password Reset', message: 'Password has been reset' });\r\n this.toastr.success('Password has been reset','Password Reset');\r\n this.isLoading = false;\r\n this.redirectTo('login');\r\n }, (error) => {\r\n //console.log(error);\r\n this.isLoading = false;\r\n // this.dialogService.addDialog(AlertComponent, { title: 'Password Reset failed', message: 'Contact the administrator if the problem persists. ' });\r\n this.toastr.error('Contact the administrator if the problem persists.\\n'+'\\nTel : 012 471 2121'+'\\nEmail: helpdesk@cbrta.co.za','Password Reset failed');\r\n });\r\n\r\n }\r\n public activateAccout(emailAddress:string){\r\n this.isLoading = true;\r\n this.webrequest('POST','UserService', 'ActivateAccount', {\r\n email: emailAddress\r\n }).then((ur) => {\r\n\r\n // this.dialogService.addDialog(AlertComponent, { title: 'Password Reset', message: 'Password has been reset' });\r\n this.toastr.success('Your Account was Activated Successfully.You may now proceed to login!','Account Activation');\r\n this.redirectTo('login');\r\n // this.router.navigate(['activate']);\r\n return true;\r\n }, (error) => {\r\n //console.log(error);\r\n this.isLoading = false;\r\n // this.dialogService.addDialog(AlertComponent, { title: 'Password Reset failed', message: 'Contact the administrator if the problem persists. ' });\r\n this.toastr.error('Contact the administrator if the problem persists.\\n'+'\\nTel : 012 471 2121'+'\\nEmail: helpdesk@cbrta.co.za','Account Activation');\r\n return false;\r\n });\r\n\r\n } \r\n\tpublic get userData(): any {\r\n\t\treturn environment.authWebApi.userData;\r\n\t}\r\n\tpublic get authenticated(): boolean {\r\n\t\treturn (environment.authWebApi.userData) ? (environment.authWebApi.userData.IsAuthenticated)?true:false:false;\r\n\t}\r\n\r\n\tprivate redirectTo(url:string) {\r\n\t\tthis.router.navigate([url]);\r\n }\r\n\r\n\r\n public request(service: string, method: string, parameters: any = {}, options: any = {}): Promise {\r\n return new Promise((resolve, reject) => {\r\n /*this.authentication.checkToken(() => {\r\n\r\n if (typeof (options.progressIndicator) === 'undefined') {\r\n options.progressIndicator = true;\r\n }*/\r\n\r\n let url = `${environment.authWebApi.url}/api/${service}/${method}`;\r\n let request = { url, options };\r\n\r\n /*if (this.authentication.authenticated && this.authentication.token) {\r\n WebApiService.HEADERS[WebApiService.AUTHORIZATION] = `Bearer ${this.authentication.token}`;\r\n } else {\r\n delete WebApiService.HEADERS[WebApiService.AUTHORIZATION];\r\n }\r\n\r\n WebApiService.addPendingRequest(request, this.messageBox);*/\r\n this.http.post(url, parameters, {\r\n headers: AuthWebService.HEADERS\r\n }).toPromise().then((result) => {\r\n //WebApiService.removePendingRequest(request, this.messageBox);\r\n resolve(result);\r\n }, (result) => {\r\n //WebApiService.removePendingRequest(request, this.messageBox);\r\n reject(new Error((result && result.error && result.error.Message) || result.message || result.statusText));\r\n });\r\n\r\n });\r\n //});\r\n }\r\n\r\n public registersociallogin(auser: any) {\r\n console.log(\"Start Authentication\");\r\n this.isLoading = true;\r\n\r\n this.request('UserService', 'AddsocialLoginUser', {\r\n user: auser,\r\n SysCode: \"ICBMS\"\r\n }).then((data) => {\r\n console.log(data);\r\n this.isLoading = false;\r\n       if (data.IsAuthenticated) {\r\n         environment.authWebApi.userData = data;\r\n         this.storageService.setID(data.User.Id);\r\n         this.storageService.setSessionId(data.User.Id);\r\n         this.idleSrvc.setLoggedIn(data.IsAuthenticated);\r\n         localStorage.setItem('isLogged','true');\r\n         this.storageService.isLogged=true;\r\n         let role:any=null;\r\n         let userRoles:any=data.Roles.filter((map=>{return map.Code=='ADMIN'}));\r\n         if(userRoles!=null && userRoles.length>0){\r\n            role='ADMIN'; \r\n         }else{\r\n           role='GUEST'\r\n         }\r\n \r\n this.isKiosk();\r\n\r\n         let previousUrl:any=localStorage.getItem(\"previousUrl\")!=undefined ? localStorage.getItem(\"previousUrl\") : sessionStorage.getItem(\"previousUrl\")!=undefined ? sessionStorage.getItem(\"previousUrl\") : undefined;\r\n         if(previousUrl!=undefined && (previousUrl.indexOf('process')>0 || previousUrl.indexOf('approval')>0) && role!=null && role=='ADMIN'){\r\n           this.router.navigate([previousUrl]);\r\n           localStorage.removeItem('previousUrl');\r\n         }else{\r\n           this.redirectTo('home');\r\n         }\r\n       }\r\n }, (error) => {\r\n //console.log(error);\r\n this.isLoading = false;\r\n // this.dialogService.addDialog(AlertComporrnent, { title: 'Registration failed', message: 'Contact the administrator if the problem persists.' });\r\n this.toastr.error('Contact the administrator if the problem persists.\\n'+'\\nTel : 012 471 2121'+'\\nEmail: helpdesk@cbrta.co.za','Registration failed');\r\n });\r\n\r\n\t}\r\n\r\n public userInfo = () => {\r\n let user = { username: \"\", emailAddress: \"\" };\r\n if (this.userData.User) {\r\n user.username = this.userData.User.FirstName + ' ' + this.userData.User.LastName;\r\n user.emailAddress = this.userData.User.EmailAddress;\r\n }\r\n return user;\r\n }\r\n\r\n checkByCode(arg0: any): any {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n\r\n public getUserTimeout() { \r\n // return this.request('ConfigurationService', 'GetInt', {\r\n // systemCode: environment.authWebApi.systemCode,\r\n // configCode: \"UserTimeout1\"\r\n // });\r\n return this.http.get(environment.authWebApi.url + '/api/ConfigurationService/GetInt/'+ environment.authWebApi.systemCode +'/'+\"UserTimeout1/120\");\r\n }\r\n SystemConfig(){\r\n return this.http.get(environment.authWebApi.url + '/api/ConfigurationService/SystemConfig/'+environment.authWebApi.systemCode)\r\n }\r\n public webrequest(action: string, service: string, method: string, parameters: any = {}, options: any = {}): Promise {\r\n\t\tlet pathparameters: string;\r\n\t\tlet myArray: any;\r\n\t\t//console.log(\"Call: \" + service +' : ' + ' : '+ method + ' : '+ 'parameters ' + parameters);\r\n\t\tif ( parameters != null && parameters != undefined && action != \"POST\" && action != \"PUT\" ) \r\n\t\t{\r\n\t\t\tmyArray = parameters.replace('{', '').replace('}', '').replace(/\"/g, '').split(',');\r\n\r\n\t\t\r\n\t\t\tmyArray.forEach(element => {\r\n\r\n\t\t\t\tif (pathparameters != null && pathparameters != undefined)\r\n\t\t\t\t{\r\n\r\n\r\n\t\t\t\t\tif (element.includes('password'))\r\n\t\t\t\t\t{\r\n\r\n\t\t\t\t\t\tpathparameters = pathparameters + '/' + element.split(':')[1].concat(':', element.split(':')[2]);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tpathparameters = pathparameters + '/' + element.split(':')[1];\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\r\n\t\t\t\t\tpathparameters = '/' + element.split(':')[1];\r\n\t\t\t\t}\r\n\r\n\r\n\t\t\t});\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tpathparameters = '';\r\n\t\t}\r\n\r\n\t\r\n\t\treturn new Promise((resolve, reject) => {\r\n\t\t\t/*this.authentication.checkToken(() => {\r\n\r\n\t\t\t\tif (typeof (options.progressIndicator) === 'undefined') {\r\n\t\t\t\t\toptions.progressIndicator = true;\r\n\t\t\t\t}*/\r\n\r\n\t\t\t\tconst url = `${environment.authWebApi.url}/api/${service}/${method}`;\r\n\r\n\t\t\t\tconst request = { url, options };\r\n\r\n\t\t\t\t/*if (this.authentication.authenticated && this.authentication.token) {\r\n\t\t\t\t\tWebApiService.HEADERS[WebApiService.AUTHORIZATION] = `Bearer ${this.authentication.token}`;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tdelete WebApiService.HEADERS[WebApiService.AUTHORIZATION];\r\n\t\t\t\t}\r\n\r\n\t\t\t\tWebApiService.addPendingRequest(request, this.messageBox);*/\r\n\t\t\t\t//parameters = {}\r\n\t\t\t\t//console.log('Api Calls for ' + service + ' ' + method + ' parameters : ' + pathparameters);\r\n\t\t\r\n\t\t\t\t//switch statement to determine which call to make\r\n\t\t\t\tswitch (action){\r\n\t\t\t\t\tcase'GET':\r\n\r\n\t\t\t\t\tlet finalurl = `${url}${pathparameters}`;\r\n\r\n\t\t\t\t\tthis.http.get(finalurl, {\r\n\t\t\t\t\t\theaders: AuthWebService.HEADERS\r\n\t\t\t\t\t}).toPromise().then((result) => {\r\n\t\t\t\t\t\tresolve(result);\r\n\t\t\t\t\t}, (result) => {\r\n\t\t\t\t\t\treject(new Error((result && result.error && result.error.Message) || result.message || result.statusText));\r\n\t\t\t\t\t});\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase 'PUT':\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tthis.http.put(url, parameters, {\r\n\t\t\t\t\t\t\theaders: AuthWebService.HEADERS\r\n\t\t\t\t\t\t}).toPromise().then((result) => {\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tresolve(result);\r\n\t\t\t\t\t\t}, (result) => {\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\treject(new Error((result && result.error && result.error.Message) || result.message || result.statusText));\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase 'POST':\r\n\t\t\t\t\r\n\t\t\t\t\t\tthis.http.post(url, parameters, {\r\n\t\t\t\t\t\t\theaders: AuthWebService.HEADERS\r\n\t\t\t\t\t\t}).toPromise().then((result) => {\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tresolve(result);\r\n\t\t\t\t\t\t}, (result) => {\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\treject(new Error((result && result.error && result.error.Message) || result.message || result.statusText));\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase 'DELETE':\r\n\t\t\t\t\tlet delurl = `${url}${pathparameters}`;\r\n\r\n\t\t\t\t\tthis.http.delete(delurl, {\r\n\t\t\t\t\t\theaders: AuthWebService.HEADERS\r\n\t\t\t\t\t}).toPromise().then((result) => {\r\n\t\t\t\t\t\tresolve(result);\r\n\t\t\t\t\t}, (result) => {\r\n\t\t\t\t\t\treject(new Error((result && result.error && result.error.Message) || result.message || result.statusText));\r\n\t\t\t\t\t});\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t\tdefault:\r\n\r\n\r\n\t\t\t\t}\r\n\t\t\t\t///\r\n\r\n\r\n\t\t\t});\r\n\t\t//});\r\n\t}\r\n\r\n}\r\n","\r\nimport {map} from 'rxjs/operators';\r\nimport { environment } from '../../environments/environment';\r\nimport 'rxjs/Rx';\r\nimport { AuthenticationService } from './authentication.service';\r\n\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent, HttpErrorResponse, HttpHeaders, HttpClient } from '@angular/common/http'\r\nimport { Observable } from 'rxjs';\r\n\r\n\r\n\r\nexport class Baseservice {\r\n\r\n protected url: string = environment.iCBMSWebApi.url;\r\n headers: Headers;\r\n http: HttpClient;\r\n auth;\r\n protected workflowApiUrl: string = environment.workflowApi.url;\r\n constructor(rsc: string, http: HttpClient, public authentication: AuthenticationService) {\r\n this.url = this.url.concat(rsc);\r\n this.http = http;\r\n this.headers = new Headers({ 'Authorization': `Bearer ${authentication.token}`, 'Content-Type': 'application/json;charset=utf-8' });\r\n this.workflowApiUrl = this.workflowApiUrl.concat(rsc);\r\n this.auth = authentication;\r\n }\r\n\r\n getAll() {\r\n return this.getRequest(this.url);\r\n }\r\n\r\n getById(id: any) {\r\n return this.getRequest(this.url + '/' + id);\r\n }\r\n getPermitById(id: any) {\r\n return this.getRequest(this.url + '/permit-doc-list/' + id);\r\n }\r\n\r\n\r\n protected getRequest(url: string) {\r\n return this.http.get(url);\r\n }\r\n\r\n add(body: any) {\r\n return this.http.post(this.url, body);\r\n }\r\n\r\n delete(id: number) {\r\n return this.http.delete(this.url + '/' + id);\r\n }\r\n\r\n update(body: any= []) {\r\n return this.http.put(this.url, body);\r\n }\r\n checkByCode(code: string) {\r\n return this.getRequest(this.url + '/check/' + code);\r\n } \r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { environment } from 'environments/environment';\r\n\r\n\r\n\r\n@Injectable()\r\nexport class CalendarService {\r\n protected url: string = environment.iCBMSWebApi.url + \"/calendar\";\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n getFirstMonths() {\r\n return this.http.get(`${this.url}/first/months/list`);\r\n }\r\n}","\r\nimport {map} from 'rxjs/operators';\r\nimport { Injectable } from '@angular/core';\r\nimport { Baseservice } from './baseservice';\r\n\r\nimport { AuthenticationService } from './authentication.service';\r\n\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n@Injectable()\r\nexport class CarrierAccountService extends Baseservice {\r\n\r\n constructor(http: HttpClient, authentication: AuthenticationService) {\r\n super('carrieraccount', http, authentication);\r\n }\r\n\r\n getCarrierAccountByID(id: number) {\r\n return this.getRequest(`${this.url}/${id}`);\r\n }\r\n\r\n getUserToLink(email, username, carrier_id) {\r\n return this.getRequest(`${this.url}/${email}/${username}/${carrier_id}`).pipe(map(response => response));;\r\n }\r\n\r\n linkCarrrierPerson(carrier_id, person_id, role_served_ind, user_created) {\r\n return this.getRequest(`${this.url}/${carrier_id}/${person_id}/${user_created}/${role_served_ind}`).pipe(map(response => response));\r\n }\r\n\r\n changeRoleForCarrierPerson(carrier_id, person_id, role_served_ind, user_created) {\r\n return this.getRequest(`${this.url}/change/${carrier_id}/${person_id}/${user_created}/${role_served_ind}`).pipe(map(response => response));\r\n }\r\n\r\n GetLinkedCarrierAccounts(userid) {\r\n return this.getRequest(`${this.url}/linked/${userid}`).pipe(map(response => response));\r\n }\r\n\r\n GetLinkedCarrierAccountsByCarrierCode(carrier_code) {\r\n return this.getRequest(`${this.url}/linkedbycarriercode/${carrier_code}`).pipe(map(response => response));\r\n }\r\n\r\n EnterCarrierAccountLinkOTP(carrier_person_id, otp) {\r\n return this.getRequest(`${this.url}/otp/${carrier_person_id}/${otp}`).pipe(map(response => response));\r\n }\r\n\r\n CarrierAccountDelinkConfirmation(legacy_carrier_code) {\r\n return this.getRequest(`${this.url}/carrieraccountdelink/${legacy_carrier_code}`).pipe(map(response => response));\r\n }\r\n\r\n ResendAccountLinkingOTP(user_modified, carrier_person_id) {\r\n return this.getRequest(`${this.url}/resend/otp/${user_modified}/${carrier_person_id}`).pipe(map(response => response));\r\n }\r\n GetCarrierIDByAccountNumber(carrierAccountNumber){\r\n return this.getRequest(`${this.url}/getcarrieridbyaccountnumber/${carrierAccountNumber}`).pipe(map(response => response));\r\n\r\n }\r\n}\r\n","\r\nimport {map} from 'rxjs/operators';\r\nimport { Injectable } from '@angular/core';\r\n\r\nimport { AuthenticationService } from './authentication.service';\r\nimport { Baseservice } from './baseservice';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n@Injectable()\r\nexport class CarrierTypeDocumentService extends Baseservice {\r\n\r\n constructor(http: HttpClient, authentication: AuthenticationService) {\r\n super('carriertypedocument', http, authentication);\r\n }\r\n get() {\r\n return this.getCarrierTypeDocument(this.url + \"/documenttype\");\r\n }\r\n\r\n getCarrierTypeDocument(url: string) {\r\n return this.getRequest(url).pipe(map(response => response));\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Baseservice } from './baseservice';\r\nimport { AuthenticationService } from './authentication.service';\r\n\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n@Injectable()\r\nexport class CarrierTypeService extends Baseservice {\r\n\r\n constructor(http: HttpClient, authentication: AuthenticationService) {\r\n super('carrier-type', http, authentication);\r\n }\r\n\r\n listCarrierTypes() {\r\n return this.getRequest(`${this.url}/ddl`);\r\n }\r\n\r\n \r\n}\r\n","\r\nimport {map} from 'rxjs/operators';\r\nimport { Injectable } from '@angular/core';\r\nimport { Baseservice } from './baseservice';\r\nimport { AuthenticationService } from './authentication.service';\r\n\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n@Injectable()\r\nexport class CarrierService extends Baseservice {\r\n\r\n constructor(http: HttpClient, authentication: AuthenticationService) {\r\n super('carrier', http, authentication);\r\n }\r\n\r\n processAccountCredit(paymentReq)\r\n {\r\n \r\n return this.http.post(`${this.url}/processAccountCredit`, paymentReq);\r\n }\r\n\r\n getCarrierById(id: number) {\r\n return this.getRequest(`${this.url}/${id}`);\r\n }\r\n\r\n listCarrierAccountsByUserId(id: number) {\r\n return this.getRequest(`${this.url}/accounts/${id}`);\r\n }\r\n\r\n delete(id: number) {\r\n return this.http.delete(this.url + '/' + id);\r\n }\r\n\r\n carrierAccountsById(id: number) {\r\n return this.getRequest(`${this.url}/legal/${id}`);\r\n }\r\n\r\n processCLegal = (carrier: any) => {\r\n return this.http.post(`${this.url}/clegal`, carrier);\r\n }\r\n processCompanyDetails = (details: any) => {\r\n //console.log(details);\r\n return this.http.post(`${this.url}/cdetails`, details);\r\n }\r\n processContactDetails = (contactdetails: any) => {\r\n //console.log(`${this.url}/contact`);\r\n return this.http.post(`${this.url}/contact`, contactdetails);\r\n }\r\n\r\n getContactDetails = (id: number) => {\r\n return this.getRequest(`${this.url}/contact/${id}`);\r\n }\r\n\r\n processUpdateCompanyDetails = (details: any) => {\r\n return this.http.post(`${this.url}/cdetails/edit`, details);\r\n }\r\n\r\n carrierPersonByuserId(id: number) {\r\n return this.getRequest(`${this.url}/person/${id}`);\r\n }\r\n\r\n getConsultantByAccount(id: number, username?: string, status?: string, role?:number )\r\n { //console.log(\"status:\" + status);\r\n //console.log(\"user_name:\" + username);\r\n //console.log(\"role:\" + role);\r\n return this.getRequest(`${this.url}/consultants/${id}/?username=${username}&status=${status}&role=${role}`);\r\n }\r\n\r\n getCompanyDetailsById(id: number) {\r\n return this.getRequest(`${this.url}/company/details/${id}`);\r\n }\r\n\r\n getAccountConfirmationDetailsById(id: number) {\r\n return this.getRequest(`${this.url}/account/confirmation/${id}`);\r\n }\r\n\r\n processSubmission = (subObj: any) => {\r\n return this.http.post(`${this.url}/account/submission`, subObj);\r\n }\r\n\r\n getCarrierApplications(id: number, PageNum: number, PageSize: number) {\r\n return this.getRequest(`${this.url}/applications/${id}/${PageNum}/${PageSize}`);\r\n }\r\n getCarrierPermits(id: number, PageNum: number, PageSize: number, appid: number) { \r\n return this.getRequest(`${this.url}/permits/${id}/${PageNum}/${PageSize}/${appid}`);\r\n }\r\n\r\n correspondenceToByCarrierId(id: number) {\r\n return this.getRequest(`${this.url}/users/approval/${id}`);\r\n }\r\n\r\n searchCarrierAccounts(keyword: any, PageNum: number, PageSize: number, sort: number = 0, direction: boolean = false) { \r\n return this.http.post(`${this.url}/account/search/${PageNum}/${PageSize}/${sort}/${direction}`, keyword);\r\n }\r\n\r\n searchCarrierPermits(keyword: any, PageNum: number, CarrierId: number, PageSize: number, sort: number = 0, direction: boolean = false) { \r\n return this.http.post(`${this.url}/permits/search/${PageNum}/${PageSize}/${CarrierId}/${sort}/${direction}`, keyword);\r\n }\r\n\r\n sendApprovalEmail(body: any) { \r\n return this.http.post(this.url + '/confirmation-approval/', body);\r\n }\r\n putApplication(object) {\r\n let body = object;\r\n return this.http.put(this.url, body);\r\n }\r\n putStatus(object) {\r\n let body = object;\r\n return this.http.put(this.url + '/update/status', body);\r\n }\r\n\r\n putConsultant(object) {\r\n let body = object;\r\n return this.http.put(this.url + '/updateconsultant', body);\r\n }\r\n\r\n approveAccountAndSendNotification(id: number, user: string) {\r\n return this.getRequest(`${this.url}/send/notification/${id}/${user}`);\r\n }\r\n\r\n getlisttranscation(custcode: string, DateFrom: Date, DateTo: Date) {\r\n // return this.getRequest(this.url+'/transaction/list/'+${id});\r\n return this.getRequest(`${this.url}/transactions/?CustomerCode=${custcode}&DateFrom=${DateFrom}&DateTo=${DateTo}`);\r\n\r\n }\r\n\r\n getDebtorAccount(custcode: string) {\r\n // return this.getRequest(this.url+'/transaction/list/'+${id});\r\n return this.getRequest(`${this.url}/getdebtoraccount/?id=${custcode}`);\r\n\r\n }\r\n\r\n getInvoice(invoicenumber: string) {\r\n // return this.getRequest(this.url+'/transaction/list/'+${id});\r\n return this.getRequest(`${this.url}/gettransaction/?id=${invoicenumber}`);\r\n\r\n }\r\n\r\n getUpdateBalance(customerCode){\r\n return this.getRequest(`${this.url}/getupdatebalance/${customerCode}`);\r\n }\r\n carrierInfo(id: number) {\r\n return this.getRequest(`${this.url}/information/${id}`);\r\n }\r\n\r\n}\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class CarriertransactionService {\r\n\r\n private transactionlist = new BehaviorSubject([]);\r\n currentlist = this.transactionlist.asObservable();\r\n\r\n constructor() { }\r\n\r\n statementlist: any=[];\r\n screen: string;\r\n debtoraccount: any\r\n accountnumber: string;\r\n referencenumber:string;\r\n personid: string;\r\n carrierid:string;\r\n invoicedetails\r\n\r\n changeList(list: any)\r\n {\r\n this.transactionlist.next(list);\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Baseservice } from './baseservice';\r\nimport { AuthenticationService } from './authentication.service';\r\n\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n@Injectable()\r\nexport class CarrierworkflowService extends Baseservice {\r\n\r\n constructor(http: HttpClient, authentication: AuthenticationService) {\r\n super('workflow', http, authentication);\r\n }\r\n\r\n startCreateCarrierWorkflow(id:number)\r\n {\r\n //console.log(`${this.url}/carrier/${id}`);\r\n\r\n return this.getRequest(`${this.url}/carrier/${id}`);\r\n }\r\n \r\n}\r\n","\r\nimport {map} from 'rxjs/operators';\r\nimport { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { environment } from 'environments/environment';\r\nimport { Baseservice } from './baseservice';\r\nimport { AuthenticationService } from './authentication.service';\r\n\r\n\r\n\r\n@Injectable()\r\nexport class CompliancereturnsService extends Baseservice {\r\n protected url: string = environment.iCBMSWebApi.url;\r\n\r\n constructor(http: HttpClient, authentication: AuthenticationService) {\r\n super('document', http, authentication);\r\n }\r\n\r\n CreateComplianceLongTerm() {\r\n return this.http.get(`${this.url}/compliance/create/long/tearm`);\r\n }\r\n\r\n CreateComplianceNewly() {\r\n return this.http.get(`${this.url}/compliance/create/newly/created`);\r\n }\r\n\r\n\r\n getcarrierlist(id: number) {\r\n return this.http.get(`${this.url}/compliance/getcarrierlist/${id}`);\r\n }\r\n\r\n getcarrierpermitlist(carrierid: number, calendarid: number) {\r\n return this.http.get(`${this.url}/compliance/getcarrierpermitlist/${carrierid}/${calendarid}`);\r\n }\r\n GetComplianceById(complianceid: any){\r\n //console.log(complianceid);\r\n return this.http.get(`${this.url}/compliance/GetComplianceById/${complianceid}`);\r\n }\r\n GetComplianceCertificatesById(permitId: any){\r\n // console.log(complianceid);\r\n return this.http.get(`${this.url}/compliance/GetComplianceCertificatesById/${permitId}`);\r\n }\r\n \r\n\r\n CreateNewCOmplianceRecord(permit_id: any) { \r\n return this.http.get(`${this.url}/compliance/CreateComplianceRecord/${permit_id}`);\r\n }\r\n createComplianceCertificateTransaction(compID, compDetailsID) {\r\n return this.http.get(`${this.url}/compliance/createComplianceCertificateTransaction/${compID}/${compDetailsID}`);\r\n }\r\n updateComplianceCertificateTransaction(compID, compDetailsID) {\r\n return this.http.get(`${this.url}/compliance/updateComplianceCertificateTransaction/${compID}/${compDetailsID}`);\r\n }\r\n GetAllComplianceRecords(person_id: any) {\r\n return this.http.get(`${this.url}/compliance/GetAllComplianceByID/${person_id}`);\r\n }\r\n \r\n}","\r\nimport {map} from 'rxjs/operators';\r\nimport { Injectable } from '@angular/core';\r\nimport { Baseservice } from './baseservice';\r\n\r\nimport { AuthenticationService } from './authentication.service';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n@Injectable()\r\nexport class CorspdcService extends Baseservice {\r\n\r\n constructor(http: HttpClient, authentication: AuthenticationService) {\r\n super('correspondence', http, authentication);\r\n }\r\n\r\n\r\n searchCorrespondenceLogs(keyword: any, PageNum: number, PageSize: number) {\r\n return this.http.post(`${this.url}/log/search/${PageNum}/${PageSize}`, keyword);\r\n }\r\n\r\n listCarrier = () => {\r\n return this.getRequest(`${this.url}/carrier/ddl`);\r\n }\r\n\r\n listBatches(PageNum: number, PageSize: number) {\r\n return this.getRequest(`${this.url}/batches/${PageNum}/${PageSize}`);\r\n }\r\n\r\n runSend = () => {\r\n return this.getRequest(`${this.url}/send`);\r\n }\r\n sendMail(payload){\r\n let url:any=this.url;\r\n return this.http.post(url,payload);\r\n }\r\n\r\n savePermitCorrespondence(payload, oldAppId, permitStatus, isApplication) { \r\n console.log(oldAppId);\r\n let url: any = `${this.url}/save/permit/${oldAppId}/${permitStatus}/${isApplication}`;\r\n \r\n return this.http.post(url, payload);\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { Baseservice } from './baseservice';\r\n\r\nimport { AuthenticationService } from './authentication.service';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n@Injectable()\r\nexport class CountryService extends Baseservice {\r\n\r\n constructor(http: HttpClient, authentication: AuthenticationService) {\r\n super('country', http, authentication);\r\n }\r\n\r\n listCountries() {\r\n return this.getRequest(`${this.url}/ddl`);\r\n }\r\n listAllCountries(){\r\n return this.getRequest(`${this.url}/list`);\r\n }\r\n listAllProvinces(){\r\n return this.getRequest(`${this.url}/province`);\r\n }\r\n\r\n}\r\n","\r\nimport {map, takeUntil} from 'rxjs/operators';\r\nimport { Injectable } from '@angular/core';\r\nimport { Baseservice } from './baseservice';\r\nimport { AuthenticationService } from './authentication.service';\r\n\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Subject } from 'rxjs';\r\nimport { environment } from 'environments/environment';\r\ndeclare var printJS: any;\r\n\r\n@Injectable()\r\nexport class DocumentsServiceService extends Baseservice{\r\n private destroy$: Subject = new Subject();\r\n\r\n constructor(http: HttpClient, authentication: AuthenticationService) {\r\n super('document', http, authentication);\r\n }\r\nget() {\r\n return this.getDocument(this.url + '/document');\r\n}\r\n\r\ngetById(id: any) {\r\n return this.getDocument(this.url + '/find/' + id);\r\n}\r\ngetByCarrierId(id: any) {\r\n return this.getDocument(this.url + '/list/' + id);\r\n}\r\ngetDocument(url: string) {\r\n return this.getRequest(url).pipe(map(response => response));\r\n}\r\n\r\ncheckIfKiosk(){\r\n return this.http.get(`${environment.consoleAPIUrl}/getpcdetails`);\r\n}\r\n\r\nscanDocument(){\r\n\r\n return this.http.get(`${environment.consoleAPIUrl}/scan`, {responseType : 'blob'}).pipe(map((res:any) => {\r\n return new Blob([res], { type: 'application/pdf' })\r\n }));\r\n}\r\ndownload(id: any) {\r\n return this.http.get(this.url + '/download/' + id, {responseType : 'blob'}).pipe(map((res:any) => {\r\n return new Blob([res], { type: 'image/png' })\r\n }));\r\n}\r\ndownloadpdf(id: any) {\r\n return this.http.get(this.url + '/download/' + id, {responseType : 'blob'}).pipe(map((res:any) => {\r\n return new Blob([res], { type: 'application/pdf' })\r\n }));\r\n \r\n}\r\n\r\n\r\n//Create new document\r\npostDocument(object: any, typeid: any, invoiceid: any) {\r\n//alert(this.url);\r\n const body = object;\r\n console.log('posting formdata',body )\r\n return this.http.post(this.url, body);\r\n}\r\npostPermitDocument(object: any, typeid: any, invoiceid: any) {\r\n const body = object; \r\n return this.http.post(this.url+'/save-permit', body);\r\n}\r\n\r\n//Update a document\r\nputDocument(object: any) {\r\n\r\n const body = object;\r\n return this.update(body);\r\n}\r\n\r\n//Delete a document\r\ndeleteDocument(id: number) {\r\n\r\n return this.delete(id).pipe(map(response => response));\r\n}\r\n\r\ngetAttachements(id: number) {\r\n\r\n const url = this.url + '/list/' + id\r\n return this.getDocument(url);\r\n}\r\n\r\ndownloadFiles(id: number) {\r\n\r\n return this.http.get(this.url + '/find/' + id);\r\n}\r\n\r\nDeleteFromTemp(object: any) {\r\n\r\n const body = object\r\n return this.http.post(this.url + '/destroy', body);\r\n}\r\nDeletePermitDoc(id: any) {\r\n\r\n return this.http.get(this.url + '/delete-permit/'+ id);\r\n}\r\nPostVehicleEntryDocument(object: any, typeid: any, invoiceid: any) {\r\n\r\n const body = object;\r\n return this.http.post(this.url+'/save-vehicle-entry', body);\r\n}\r\nDeleteVehicleEntryDoc(id: any) {\r\n\r\n return this.http.get(this.url + '/delete-vehicle/'+ id);\r\n}\r\ngetVehicleEntryDocById(id: any) {\r\n return this.getRequest(this.url + '/vehicle-doc-list/' + id);\r\n}\r\n\r\n uploadPaxList = (doc) => {\r\n ////console.log('Form Data : ', doc);\r\n return this.http.post(`${this.url}/pax`, doc);\r\n }\r\n}\r\n\r\n","\r\nimport {map} from 'rxjs/operators';\r\n import { Injectable } from '@angular/core';\r\n\r\nimport { AuthenticationService } from './authentication.service';\r\nimport { Baseservice } from './baseservice';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n@Injectable()\r\nexport class DocumenttypeService extends Baseservice{\r\n\r\n constructor(http: HttpClient, authentication: AuthenticationService) {\r\n super('documenttype', http, authentication);\r\n }\r\n getByType(type: string) {\r\n return this.getRequest(this.url + '/bytype/' + type);\r\n}\r\n\r\ngetLinkedAndUnlinkedDoctypes(invCatId: number) {\r\n return this.getRequest(this.url + '/links/' + invCatId);\r\n}\r\n\r\naddToLinks(body: any) {\r\n\r\nreturn this.http.post(this.url + '/links/', body);\r\n}\r\n\r\ndeleteLink(id: number) {\r\n return this.http.delete(this.url + '/links/' + id);\r\n}\r\n\r\nupdateLink(body: any) {\r\n\r\n return this.http.put(this.url + '/links/', body);\r\n}\r\n\r\ngetLinkById(id: number) {\r\n return this.getRequest(this.url + `/links/find/${id}`);\r\n}\r\ngetDocTypeLinkByCarrierTypeId(id: number) {\r\n return this.getRequest(this.url + `/links/type/${id}`);\r\n}\r\ngetDocTypeLinkByPermitTypeId(id: number) {\r\n return this.getRequest(this.url + `/links/permit-type/${id}`);\r\n}\r\ngetAllFixed(page, pageSize) {\r\n return this.getRequest(this.url + '/' + page + '/' + pageSize);\r\n}\r\n}\r\n","\r\nimport {map} from 'rxjs/operators';\r\nimport { Injectable } from '@angular/core';\r\n\r\nimport { AuthenticationService } from './authentication.service';\r\nimport { Baseservice } from './baseservice';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n@Injectable()\r\nexport class FreightTypeService extends Baseservice {\r\n\r\n constructor(http: HttpClient, authentication: AuthenticationService) {\r\n super('freight-type', http, authentication);\r\n }\r\n getAllFreightTypes(){\r\n \r\n return this.http.get(this.url);\r\n}\r\ngetFreightTypeById(id){\r\n return this.http.get(this.url+\"/\"+id);\r\n\r\n}\r\npostFreightType(object:any){\r\n let body = object;\r\n return this.http.post(this.url, body);\r\n\r\n}\r\nupdateFreightType(object:any){\r\n let body = object;\r\n return this.http.put(this.url, body);\r\n\r\n}\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { AuthenticationService } from './authentication.service';\r\n\r\n@Injectable()\r\nexport class GlobalsService {\r\n\r\n val = 0;\r\n\r\n}\r\n","\r\nimport {map} from 'rxjs/operators';\r\nimport { Injectable } from '@angular/core';\r\n\r\nimport \"rxjs/Rx\";\r\n\r\nimport { environment } from '../../environments/environment';\r\n\r\nimport { Baseservice } from './baseservice'\r\n\r\nimport { AuthenticationService } from './authentication.service';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\n\r\n@Injectable()\r\nexport class GooglePlacesSearchService extends Baseservice {\r\n\r\n constructor(http: HttpClient, authentication: AuthenticationService) {\r\n super(\"google\", http, authentication);\r\n }\r\n searchPlace(input) {\r\n return this.http.get(this.url + \"/search/place?input=\" + input);\r\n }\r\n searchPlaceDetails(placeid) {\r\n return this.http.get(this.url + \"/search/place/details?placeid=\" + placeid);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject, Observable } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class IdleManagerService {\r\n\r\n private loggedIn = new Subject();\r\n\r\n constructor() {\r\n this.loggedIn.next(false);\r\n }\r\n\r\n setLoggedIn(isLoggedIn: boolean) {\r\n this.loggedIn.next(isLoggedIn);\r\n }\r\n\r\n getLoggedIn(): Observable {\r\n return this.loggedIn.asObservable();\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { environment } from '../../environments/environment';\r\nimport { AuthenticationService } from '../services/authentication.service'\r\nimport { Menu, subMenu } from '../interfaces/menu.interface';\r\n\r\n\r\n\r\n@Injectable()\r\nexport class MenuService extends AuthenticationService {\r\n\r\n private _Menu : any;\r\n\r\n constructor() { \r\n super();\r\n console.log(this.userData);\r\n this.onMenuCreate(this.userData)\r\n\r\n }\r\n\r\n onMenuCreate(data){\r\n\r\n \r\n }\r\n \r\n \r\n}","\r\nimport {map} from 'rxjs/operators';\r\nimport { Injectable, Inject } from '@angular/core';\r\n\r\nimport {Observable} from \"rxjs\";\r\nimport \"rxjs/Rx\";\r\n\r\nimport { Baseservice } from './baseservice'\r\n\r\nimport { AuthenticationService } from './authentication.service';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n@Injectable()\r\nexport class NavigationService extends Baseservice {\r\n\r\n constructor(http: HttpClient, authentication: AuthenticationService) {\r\n super(\"navigation\",http, authentication);\r\n }\r\n\r\n get() {\r\n return this.getNavigation(this.url + \"/navigation\");\r\n }\r\n\r\n getById(id: any) {\r\n return this.getNavigation(this.url + \"/find/\" + id);\r\n }\r\n\r\n getNavigation(url: string) {\r\n return this.getRequest(url).pipe(map(response => response)); \r\n }\r\n\r\n //Create new navigation item\r\n postNavigation(object : any, typeid: any, invoiceid: any) {\r\n\r\n let body = object;\r\n return this.http.post(this.url, body);\r\n }\r\n\r\n //Update a navigation item\r\n putNavigation(object) {\r\n\r\n let body = object;\r\n return this.update(body);\r\n }\r\n\r\n //Delete a navigation item\r\n deleteNavigation(id: number) {\r\n\r\n return this.delete(id).pipe(map(response => response));\r\n }\r\n}\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { environment } from 'environments/environment';\r\nimport { Baseservice } from './baseservice';\r\nimport { AuthenticationService } from './authentication.service';\r\n//import { Headers, Http, RequestOptions, ResponseContentType } from '@angular/http';\r\n\r\n\r\n\r\n@Injectable()\r\nexport class PayGateService extends Baseservice {\r\n //protected url: string = environment.payGateApi.url;\r\n protected icbmsUrl: string = environment.payGateApi.icbmsUrl;\r\n\r\n constructor(http: HttpClient, authentication: AuthenticationService) {\r\n super('document', http, authentication);\r\n }\r\n\r\n InitiateTransaction(REFERENCE,AMOUNT, EMAIL, RETURN_URL) {\r\n var payGateInitiateObj : any = { \r\n REFERENCE:REFERENCE,\r\n AMOUNT:AMOUNT,\r\n EMAIL:EMAIL,\r\n RETURN_URL:RETURN_URL\r\n };\r\n return this.http.post(`${this.icbmsUrl}/initiate`,payGateInitiateObj);\r\n }\r\n\r\n AddTransaction(CarrierAccountId,Amount)\r\n {\r\n var payGateAddObj : any = { \r\n CarrierAccountId:CarrierAccountId,\r\n AMOUNT:Amount\r\n };\r\n \r\n return this.http.post(`${this.icbmsUrl}/transaction/add`, payGateAddObj);\r\n }\r\n \r\n}","import { Injectable } from '@angular/core';\r\nimport { environment } from 'environments/environment';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Baseservice } from './baseservice';\r\nimport { AuthenticationService } from './authentication.service';\r\n\r\n\r\n@Injectable()\r\nexport class PermitTypeDocumentService {\r\n protected url: string = environment.iCBMSWebApi.url;\r\n\r\n \r\n constructor(private http: HttpClient) {\r\n \r\n }\r\n//permit-type\r\ngetAll(){\r\n return this.http.get(this.url+'permit-type');\r\n}\r\n getLinkedAndUnlinkedDoctypes(id: number) {\r\n return this.http.get(this.url + '/permit-type-document-links/' + id);\r\n}\r\n\r\naddToLinks(body: any) {\r\n\r\nreturn this.http.post(this.url + '/permit-type-document-links/', body);\r\n}\r\n\r\ndeleteLink(id: number) {\r\n return this.http.delete(this.url + '/permit-type-document-links/' + id);\r\n}\r\n\r\nupdateLink(body: any) {\r\n\r\n return this.http.put(this.url + '/permit-type-document-links/', body);\r\n}\r\ngetLinkById(id: number) {\r\n return this.http.get(this.url + `/permit-type-document-links/find/${id}`);\r\n}\r\ngetDocTypeLinkByCarrierTypeId(id: number) {\r\n return this.http.get(this.url + `/permit-type-document-links/type/${id}`);\r\n}\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { environment } from 'environments/environment';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Baseservice } from './baseservice';\r\nimport { AuthenticationService } from './authentication.service';\r\n\r\n\r\n@Injectable()\r\nexport class PermitTypeVehicleService {\r\n protected url: string = environment.iCBMSWebApi.url;\r\n constructor(private http: HttpClient) { }\r\n//permit-type\r\ngetAll(){\r\n return this.http.get(this.url+'permit-type');\r\n}\r\n getLinkedAndUnlinkedDoctypes(id: number) {\r\n return this.http.get(this.url + 'permit-type-vehicle-links/' + id);\r\n}\r\n\r\naddToLinks(body: any) {\r\n\r\nreturn this.http.post(this.url + 'permit-type-vehicle-links/', body);\r\n}\r\n\r\ndeleteLink(id: number) {\r\n return this.http.delete(this.url + 'permit-type-vehicle-links/' + id);\r\n}\r\n\r\nupdateLink(body: any) {\r\n\r\n return this.http.put(this.url + 'permit-type-vehicle-links/', body);\r\n}\r\ngetLinkById(id: number) {\r\n return this.http.get(this.url + `permit-type-vehicle-links/find/${id}`);\r\n}\r\ngetDocTypeLinkByCarrierTypeId(id: number) {\r\n return this.http.get(this.url + `permit-type-vehicle-links/type/${id}`);\r\n}\r\n\r\n}\r\n","\r\nimport {map} from 'rxjs/operators';\r\nimport { Injectable } from '@angular/core';\r\nimport { Baseservice } from './baseservice';\r\nimport { AuthenticationService } from './authentication.service';\r\n\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n@Injectable()\r\nexport class PermitTypeService extends Baseservice {\r\n\r\n constructor(http: HttpClient, authentication: AuthenticationService) {\r\n super('permit-type', http, authentication);\r\n }\r\n \r\n get() {\r\n return this.getPermitType(this.url);\r\n } \r\nsetTerm(data){\r\nreturn data;\r\n}\r\n getPermitType(url: string) {\r\n return this.getRequest(url).pipe(map(response => response));\r\n }\r\n getByType(type: string) {\r\n return this.getRequest(this.url + '/bytype/' + type);\r\n}\r\n//permit/documentpermit/document/links/\r\n\r\ngetLinkedAndUnlinkedDoctypes(id: number) {\r\n return this.getRequest(this.url + '/document/links/' + id);\r\n}\r\n\r\naddToLinks(body: any) {\r\n\r\nreturn this.http.post(this.url + '/document/links/', body);\r\n}\r\n\r\ndeleteLink(id: number) {\r\n return this.http.delete(this.url + '/document/links/' + id);\r\n}\r\n\r\nupdateLink(body: any) {\r\n\r\n return this.http.put(this.url + '/document/links/', body);\r\n}\r\n\r\ngetLinkById(id: number) {\r\n return this.getRequest(this.url + `/document/links/find/${id}`);\r\n}\r\ngetDocTypeLinkByCarrierTypeId(id: number) {\r\n return this.getRequest(this.url + `/document/links/type/${id}`);\r\n}\r\ngetAllFixed(page, pageSize) {\r\n return this.getRequest(this.url + '/' + page + '/' + pageSize);\r\n}\r\n\r\n\r\n}\r\n","\r\nimport {map} from 'rxjs/operators';\r\nimport { Injectable, Inject } from '@angular/core';\r\nimport { Observable } from \"rxjs\";\r\nimport \"rxjs/Rx\";\r\ndeclare var printJS: any;\r\n\r\nimport { Baseservice } from './baseservice'\r\n\r\nimport { AuthenticationService } from './authentication.service';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n@Injectable()\r\nexport class PermitService extends Baseservice {\r\n\r\n constructor(http: HttpClient, authentication: AuthenticationService) {\r\n super(\"permit\", http, authentication);\r\n }\r\n\r\n get() {\r\n return this.getPermit(this.url + \"/permit\");\r\n }\r\n getAppPer() {\r\n return this.getPermit(this.url);\r\n }\r\n\r\n getById(id: any) {\r\n return this.getPermit(this.url + \"/find/\" + id);\r\n }\r\n getPermitReturn(id: any) {\r\n return this.getPermit(this.url + \"/return/\" + id);\r\n }\r\n getPermit(url: string) {\r\n return this.getRequest(url).pipe(map(response => response));\r\n }\r\n copyPermit(id) {\r\n return this.getPermit(this.url + \"/copy/\" + id);\r\n }\r\n postPermit(object: any) {\r\n let body = object;\r\n return this.http.post(this.url, body);\r\n }\r\n postAppPermit(object: any, days) {\r\n let body = object;\r\n return this.http.post(this.url + '/from-vehicle/' + days, body);\r\n }\r\n putAppPermit(object: any, days) {\r\n if(object.can_specify_duration==true){\r\n let body = object;\r\n return this.http.put(this.url + '/update-vehicle/' + days, body);\r\n }else{\r\n let body = object;\r\n return this.http.put(this.url, body);\r\n }\r\n }\r\n\r\n deletePermitByPermitNumAndIssueNum(permit_num, permit_issue)\r\n {\r\n return this.http.get(this.url + '/delete/latest/' + permit_num + '/' + permit_issue + '/');\r\n }\r\n\r\n putPermit(object) {\r\n let body = object;\r\n return this.update(body);\r\n }\r\n upadatePermit(object) {\r\n let body = object;\r\n return this.http.put(this.url, body);\r\n }\r\n saveToCorspdc(carrier_id: number, username: string) {\r\n return this.http.get(this.url + '/confirmation/' + carrier_id + '/' + username + '/');\r\n }\r\n sendEmail(email: string) {\r\n return this.http.get(this.url + '/confirmation/' + email + '/');\r\n\r\n }\r\n sendApproveEmail(body: any) {\r\n return this.http.post(this.url + '/confirmation-approval/', body);\r\n\r\n }\r\n //confirmation-approval\r\n deletePermit(id) {\r\n return this.http.delete(this.url + '/app/delete/' + id);\r\n\r\n }//delete/route/doc/\r\n deleteRouteDoc(id) {\r\n return this.http.delete(this.url + '/app/delete/route/doc/' + id);\r\n\r\n }\r\n DeletePermitDoc(id: any) {\r\n\r\n return this.http.get(this.url + '/delete-permit/' + id);\r\n }\r\n\r\n TryPrintOrFail = (Reportname, pId, pNum, username, validFrom, NumOfDays) => {\r\n const uri = `${this.url}/download/${Reportname}/${pId}/${pNum}/${username}/${validFrom}/${NumOfDays}`;\r\n printJS({ printable: uri, type: 'pdf', showModal: true, modalMessage: 'Processing your request, please wait...' });\r\n\r\n }\r\n getPermitForPrint(id){\r\n return this.http.get(this.url + '/printing-permit/' + id);\r\n\r\n }\r\n\r\n\r\n DownloadPDF = (Reportname, pId, pNum, username, validFrom) => {\r\n const uri = `${this.url}/download/${Reportname}/${pId}/${pNum}/${username}/${validFrom}`;\r\n //window.location.href= uri;\r\n window.open(uri, '_blank' // <- This is what makes it open in a new window.\r\n );\r\n\r\n }\r\n\r\n\r\n approvePermitAndSendNotification(carId: number, appId, username = '') {\r\n return this.getRequest(`${this.url}/send/notification/${carId}/${appId}/${username}`);\r\n // console.log(`${this.url}/send/notification/${carId}/${appId}/${username}`);\r\n }\r\n\r\n isPrinted(permId: number) {\r\n return this.getRequest(`${this.url}/print/locked/${permId}`);\r\n }\r\n RenewPermit(object: any) {\r\n let body = object;\r\n return this.http.post(`${this.url}/renew`, body);\r\n }\r\n\r\n getFaceValueNumber(number: string) {\r\n return this.getRequest(`${this.url}/facenumber?number=${number}`);\r\n }\r\n updatePrintCondtions(permit) {\r\n let body = permit;\r\n return this.http.put(this.url + \"/special-condition\", body);\r\n }\r\n updateCarrier(carrier) {\r\n let body = carrier;\r\n return this.http.put(this.url + \"/add/carrier\", body);\r\n }\r\n\r\n SaveValidDate(number, todate, fromdate, passenger_number) {\r\n return this.getRequest(`${this.url}/validto/${number}/${todate}/${fromdate}/${passenger_number}`);\r\n }\r\n\r\n getPermitDetails(Id) {\r\n return this.getRequest(`${this.url}/permitype/${Id}`);\r\n }\r\n\r\n changeRoute(permId: number, username, is_route) {\r\n return this.getRequest(`${this.url}/amend/route/${permId}/${username}/${is_route}`);\r\n }\r\n changeVehicle(permId: number, username, is_vehicle) {\r\n return this.getRequest(`${this.url}/replace/vehicle/${permId}/${username}/${is_vehicle}`);\r\n }\r\n managePermitCorrection(permId: number) {\r\n return this.getRequest(`${this.url}/manage/correction/${permId}`);\r\n }\r\n corrections(permId: number, username) {\r\n return this.getRequest(`${this.url}/permit-correction/${permId}/${username}`);\r\n }\r\n\r\n UpdatePermitNum(permit_id) {\r\n return this.getRequest(`${this.url}/update/permit/num//${permit_id}`);\r\n }\r\n UpdatePermitStatus(permit_id) {\r\n return this.getRequest(`${this.url}/cancel/status/${permit_id}`);\r\n }\r\n\r\n checkpermnum(carrierid: number, permittype: number)\r\n {\r\n return this.getRequest(this.url + '/checknum/' + carrierid + '/' + permittype);\r\n }\r\n\r\n getpermappbycarrier(carrierid: number, frieghtpassind: number)\r\n {\r\n return this.getRequest(this.url + '/carrierapplist/' + carrierid + '/' + frieghtpassind);\r\n }\r\n CheckLatestPermitIssued(permitNumber,issueNumber){\r\n return this.getRequest(`${this.url}/renewal/${permitNumber}/${issueNumber}`);\r\n\r\n }\r\n CheckPermitIssued(permitNumber,issueNumber){\r\n return this.getRequest(`${this.url}/check/latest/${permitNumber}/${issueNumber}`);\r\n\r\n }\r\n UpdatePreviousPermitsIssued(permitNumber){\r\n return this.getRequest(`${this.url}/list/${permitNumber}`);\r\n\r\n }\r\n getAllPermitsByApplicationId(appId){\r\n return this.getPermit(this.url +\"/\"+appId);\r\n\r\n }\r\n GetAllApplicationDetails(permitNumber,renewalNumber){\r\n return this.getRequest(`${this.url}/details/copy/${permitNumber}/${renewalNumber}`);\r\n\r\n }\r\n PrintingPermit(body: any) {\r\n return this.http.post(this.url + '/download/print' ,body, { responseType: 'blob' }).pipe(map((res:any) => {\r\n return res;\r\n }));\r\n }\r\n PrintingAnneuxre(body: any) {\r\n return this.http.post(this.url + '/download/print' ,body, { responseType: 'blob' } ).pipe(map((res:any) => {\r\n return new Blob([res.blob()], { type: 'application/pdf' })\r\n }));\r\n }\r\n PrintingPermitView(body: any) {\r\n return this.http.post(this.url + '/download-print' ,body, { responseType: 'blob' }).pipe(map((res:any) => {\r\n return res;\r\n }));\r\n }\r\n ManageDuplicate(permId: number, username){\r\n return this.getRequest(`${this.url}/permit-duplication/${permId}/${username}`);\r\n\r\n }\r\n}\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport {HttpClient, HttpParams} from '@angular/common/http';\r\nimport { of } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { environment } from 'environments/environment';\r\n\r\n\r\n@Injectable()\r\nexport class PlaceService {\r\n protected url: string = environment.iCBMSWebApi.url;\r\n\r\n constructor(private http: HttpClient) {}\r\n\r\n getPlaces() {\r\n return this.http.get(this.url + 'Places');\r\n }\r\n listAllPlaces(){\r\n return this.http.get(this.url + 'list/Places');\r\n }\r\n getAllCountryPlaces(id){\r\n return this.http.get(this.url + 'list/Places/'+id);\r\n }\r\n savePlace(body)\r\n {\r\n return this.http.post(this.url + 'list/Places',body);\r\n }\r\n updatePlace(body)\r\n {\r\n return this.http.put(this.url + 'list/Places',body);\r\n }\r\n getPlaceById(id){\r\n return this.http.get(this.url + 'list/Places/find/'+id);\r\n }\r\n deletePlace(id){\r\n return this.http.delete(this.url + 'list/Places/'+id);\r\n }\r\n\r\n getBorderCrossingsByCountryId(id) {\r\n return this.http.get(this.url + 'places/borders/' + id);\r\n }\r\n\r\n getStopsByCountryId(id) {\r\n return this.http.get(this.url + 'places/stops/' + id);\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { environment } from 'environments/environment';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n@Injectable()\r\nexport class RouteService {\r\n \r\n protected url: string = environment.iCBMSWebApi.url;\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\nsaveMyRoutes(data){\r\n return this.http.post(this.url + 'route',data);\r\n}\r\nsaveRoutes(data){\r\n return this.http.post(this.url + 'route/internal',data);\r\n\r\n}\r\neditRoutes(data){\r\n return this.http.post(this.url + 'route/internal/edit',data);\r\n}\r\ndeleteRoutes(id){\r\n return this.http.delete(this.url + 'route/internal/'+id);\r\n\r\n}//external\r\ndeleteExternalRoute(id){\r\n return this.http.delete(this.url + 'route/external/'+id);\r\n}\r\ngetMyRoute(id){\r\n return this.http.get(this.url + 'route/'+id);\r\n\r\n}\r\ngetAllRoute(){\r\n return this.http.get(this.url + 'route/all');\r\n}\r\ngetDoNotBelong(){\r\n return this.http.get(this.url + 'route/belong');\r\n}\r\ngetAllRouteLegs(){\r\n return this.http.get(this.url + 'route/all/leg');\r\n}\r\nsaveRouteLeg(data){\r\n return this.http.post(this.url + 'route/leg',data);\r\n}\r\n\r\n addRouteLeg(data) {\r\n return this.http.post(this.url + 'route/add', data);\r\n }\r\n editRouteLeg(data) {\r\n return this.http.put(this.url + 'route/edit', data);\r\n }\r\n\r\n checkByCode(code: any): any {\r\n return this.http.get(this.url + 'route/check/'+code);\r\n }\r\n\r\n getRouteLegById(id) {\r\n return this.http.get(this.url + 'route/byid/' + id);\r\n\r\n }\r\n getRouteTimetable(id){\r\n return this.http.get(this.url + 'route/timetable/'+id);\r\n }\r\n getTableDepartures(id){\r\n return this.http.get(this.url + 'route/timetableleg/'+id);\r\n }\r\n saveRouteAndRouteLeg(data){\r\n return this.http.post(this.url + 'route/new',data);\r\n }\r\n updateTimetable(data){\r\n return this.http.put(this.url + 'route/updatelegs',data);\r\n }\r\n\r\n\r\n listRouteTimetables(id) {\r\n return this.http.get(this.url + 'route/timetables/' + id);\r\n }\r\n\r\n getByUserCreated(username) {\r\n return this.http.get(`${this.url}/route/belong/${username}`);\r\n }\r\n\r\n \r\n\r\n}\r\n","\r\nimport {map} from 'rxjs/operators';\r\nimport { Injectable } from '@angular/core';\r\n\r\nimport \"rxjs/Rx\";\r\n\r\nimport { environment } from '../../environments/environment';\r\n\r\nimport { Baseservice } from './baseservice'\r\n\r\nimport { AuthenticationService } from './authentication.service';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\n\r\n@Injectable()\r\nexport class RunCorrespondenceTasksService extends Baseservice {\r\n\r\n constructor(http: HttpClient, authentication: AuthenticationService) {\r\n super(\"correnspondence-tasks\", http, authentication);\r\n }\r\n CreatePermitsExpiryReminder() {\r\n return this.http.get(this.url + \"/expiring-permits-reminder\");\r\n }\r\n CreatePermitsExpiredReminder() {\r\n return this.http.get(this.url + \"/expired-permits-reminder\");\r\n }\r\n CreatePermitsNotReturnedReminders() {\r\n return this.http.get(this.url + \"/permits-not-returned-reminder\");\r\n }\r\n CreateMessagesForFeesDue() {\r\n return this.http.get(this.url + \"/messages-for-fees-due\");\r\n }\r\n CreateApprovedPermitsNeedingConfirm() {\r\n return this.http.get(this.url + \"/approved-permits-needing-confirm\");\r\n }\r\n InvoicePermits(){\r\n return this.http.get(this.url + \"/invoice/permits\"); \r\n }\r\n\r\n FirstCompliance(){\r\n return this.http.get(this.url + \"/compliance/firstreminder\"); \r\n }\r\n\r\n SecondCompliance(){\r\n return this.http.get(this.url + \"/compliance/secondreminder\"); \r\n }\r\n\r\n ThirdCompliance(){\r\n return this.http.get(this.url + \"/compliance/thirdreminder\"); \r\n }\r\n\r\n}\r\n","\r\nimport {map} from 'rxjs/operators';\r\nimport { Injectable } from '@angular/core';\r\n\r\nimport \"rxjs/Rx\";\r\n\r\nimport { environment } from '../../environments/environment';\r\n\r\nimport { Baseservice } from './baseservice'\r\n\r\nimport { AuthenticationService } from './authentication.service';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\n\r\n@Injectable()\r\nexport class RunMaintenanceTasksService extends Baseservice {\r\n\r\n constructor(http: HttpClient, authentication: AuthenticationService) {\r\n super(\"run-maintenance\", http, authentication);\r\n }\r\n\r\n synchronizeAllAccounts() {\r\n return this.http.get(this.url + \"/\" + \"tasks\");\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { AuthenticationService } from \"./authentication.service\";\r\nimport { Baseservice } from \"./baseservice\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { environment } from \"environments/environment\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class ScannerService extends Baseservice {\r\n constructor(http: HttpClient, authentication: AuthenticationService) {\r\n super(\"\", http, authentication);\r\n }\r\n getScanners() {\r\n return this.http.get(this.url + \"scanner/all\");\r\n }\r\n getScannerByID(id) {\r\n return this.http.get(this.url + \"scanner/\" + id);\r\n }\r\n\r\n getScannerByDeviceID(id) {\r\n return this.http.get(this.url + \"scannerbydeviceid/\" + id);\r\n }\r\n\r\n add(data) {\r\n return this.http.post(this.url + \"scanner/add/\", data);\r\n }\r\n\r\n update(data) {\r\n console.log(this.url, JSON.stringify(data));\r\n return this.http.put(this.url + \"scanner/update/\", data);\r\n }\r\n delete(id) {\r\n return this.http.get(this.url + \"scanner/delete/\" + id);\r\n }\r\n\r\n getKioskScanner() {\r\n return this.http.get(`${environment.consoleAPIUrl}/getscanner`);\r\n }\r\n\r\n relaunch(){\r\n return this.http.get(`${environment.consoleAPIUrl}/relaunch`);\r\n }\r\n}\r\n","import { environment } from '../../environments/environment';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { AuthWebService } from './authweb.service';\r\n\r\n@Injectable()\r\nexport class SessionService {\r\n protected url: string = environment.authWebApi.url;\r\n protected icbmsUrl: string = environment.iCBMSWebApi.url;\r\n constructor(private http: HttpClient,public authWebService: AuthWebService) { }\r\n\r\n\r\n releaseScanner(pc_ip_address: string)\r\n {\r\n return this.http.get(this.icbmsUrl +'scanner/release/' + pc_ip_address);\r\n }\r\n\r\n}","import { Component, Input, OnInit } from '@angular/core';\r\nimport { ConfirmDialogService } from './confirm-dialog.service';\r\n\r\n@Component({\r\n selector: 'app-confirm-dialog',\r\n templateUrl: 'confirm-dialog.component.html',\r\n styleUrls: ['confirm-dialog.component.css']\r\n})\r\n\r\nexport class ConfirmDialogComponent implements OnInit {\r\n message: any;\r\n constructor(\r\n private confirmDialogService: ConfirmDialogService\r\n ) { }\r\n\r\n ngOnInit(): any {\r\n /**\r\n * This function waits for a message from alert service, it gets\r\n * triggered when we call this from any other component\r\n */\r\n this.confirmDialogService.getMessage().subscribe(message => {\r\n this.message = message;\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n

{{message.text}}

\r\n
\r\n
\r\n
\r\n
\r\n

\r\n \r\n \r\n \r\n \r\n \r\n \r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { NgModule } from '@angular/core';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport {ConfirmDialogComponent} from './confirm-dialog.component';\r\nimport {ConfirmDialogService} from './confirm-dialog.service';\r\n\r\n@NgModule({\r\n declarations: [\r\n ConfirmDialogComponent\r\n ],\r\n imports: [\r\n BrowserModule,\r\n CommonModule\r\n ],\r\n exports: [\r\n ConfirmDialogComponent\r\n ],\r\n providers: [\r\n ConfirmDialogService\r\n ]\r\n})\r\nexport class ConfirmDialogModule\r\n{\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, NavigationStart } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Injectable() export class ConfirmDialogService {\r\n private subject = new Subject();\r\n\r\n confirmThis(message: string, yesFn: () => void, noFn: () => void): any {\r\n console.log(\"in\")\r\n this.setConfirmation(message, yesFn, noFn);\r\n }\r\n\r\n setConfirmation(message: string, yesFn: () => void, noFn: () => void): any {\r\n const that = this;\r\n this.subject.next({\r\n type: 'confirm',\r\n text: message,\r\n yesFn(): any {\r\n that.subject.next(); // This will close the modal\r\n yesFn();\r\n },\r\n noFn(): any {\r\n that.subject.next();\r\n noFn();\r\n }\r\n });\r\n\r\n }\r\n\r\n getMessage(): Observable {\r\n return this.subject.asObservable();\r\n }\r\n}","import { Inject, Injectable, Optional } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\n\r\n\r\nimport { DialogService } from 'ng2-bootstrap-modal';\r\nimport { ErrorComponent } from '../../popup/error.component';\r\nimport { AlertComponent } from '../../popup/alert.component';\r\nimport { ConfirmComponent } from '../../popup/confirm.component';\r\nimport { YesNoComponent } from 'app/popup/yesno.component';\r\n\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class PopupService{\r\n\r\n constructor(@Optional() public dialogService: DialogService) {}\r\n\r\n showError(title: string, message: string, error: any) {\r\n\r\n this.dialogService.addDialog(ErrorComponent, {\r\n title: title,\r\n message: message,\r\n statuscode: error.Status,\r\n url: error.Uri,\r\n servermessage: error.Message\r\n })\r\n }\r\n\r\n\r\n showAlert(title: string, message: string, bold?: string) {\r\n\r\n this.dialogService.addDialog(AlertComponent, {\r\n title: title,\r\n message: message,\r\n bold: bold\r\n });\r\n\r\n }\r\n\r\nshowConfirm(title: string, message: string, extra:string, confirmText?: string, cancelText?: string, bold?: string): Observable {\r\n\r\n return this.dialogService.addDialog(ConfirmComponent, {\r\n title: title,\r\n message: message,\r\n extra: extra,\r\n confirmButtonText: confirmText,\r\n cancelButtonText: cancelText\r\n });\r\n\r\n}\r\n\r\n showYesNo(title: string, message: string, comment: string, confirmText?: string, cancelText?: string): Observable {\r\n\r\n return this.dialogService.addDialog(YesNoComponent, {\r\n title: title,\r\n message: message,\r\n comment: comment,\r\n confirmButtonText: confirmText,\r\n cancelButtonText: cancelText\r\n });\r\n\r\n }\r\n\r\n\r\n\r\n}\r\n","import { HttpClient } from \"@angular/common/http\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { AuthenticationService } from \"./authentication.service\";\r\nimport { Baseservice } from \"./baseservice\";\r\nimport * as signalR from \"@microsoft/signalr\";\r\nimport { environment } from \"environments/environment\";\r\nimport { BehaviorSubject, empty, interval, Observable, Subject, timer } from \"rxjs\";\r\nimport { AuthSession } from \"app/interfaces/authsession.interface\";\r\nimport { AuthWebService } from \"./authweb.service\";\r\nimport { StorageService } from \"./storage.service\";\r\nimport { Router } from \"@angular/router\";\r\nimport { mapTo, mergeMap, scan, startWith, switchMap, takeWhile, tap } from \"rxjs/operators\";\r\nimport { start } from \"repl\";\r\n\r\ndeclare var $: any;\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class SignalrService extends Baseservice {\r\n constructor(\r\n private storageService: StorageService,\r\n http: HttpClient,\r\n private router: Router,\r\n authentication: AuthenticationService\r\n ) {\r\n super(\"signalr\", http, authentication);\r\n }\r\n\r\n url: string = environment.authWebApi.url;\r\n users$ = new BehaviorSubject([]);\r\n hubConnection: signalR.HubConnection;\r\n interval;\r\n ipAddress;\r\n machinename;\r\n public connectionId: string;\r\n sessionId: string;\r\n public authSession: AuthSession;\r\n public Isterminated: boolean = false;\r\n\r\n private authSessionSubject = new BehaviorSubject([]);\r\n private dataStore: { authSessionList: AuthSession[] } = {\r\n authSessionList: [],\r\n };\r\n readonly authSessionList = this.authSessionSubject.asObservable();\r\n rxjsTimer = timer(1000, 1000);\r\n reset$ = new Subject();\r\n sub: Observable;\r\n public countDown: number = 12;\r\n interval$ = interval(1000).pipe(mapTo(-1));\r\n\r\n //Start the SignalR Service, Only for Kiosks\r\n startConnection = () => {\r\n this.hubConnection = new signalR.HubConnectionBuilder()\r\n .withUrl(`${this.url}/sessionmanager`, {\r\n skipNegotiation: true,\r\n transport: signalR.HttpTransportType.WebSockets,\r\n })\r\n .build();\r\n\r\n this.hubConnection\r\n .start()\r\n .then(() => {\r\n this.getConnectionId();\r\n this.terminateSession();\r\n console.log(\"Hub Connection Started!\");\r\n })\r\n .catch((err) => console.log(\"Error while starting connection: \" + err));\r\n };\r\n\r\n //Receives a list of all the kiosks that are online\r\n public notifyAdmin = () => {\r\n this.hubConnection.on(\"notifyAdmin\", (data) => {\r\n this.dataStore.authSessionList = data;\r\n this.authSessionSubject.next(\r\n Object.assign({}, this.dataStore).authSessionList\r\n );\r\n });\r\n };\r\n\r\n //This receives the signal to terminate the session from the Signalr Hub\r\n public terminateSession = () => {\r\n this.hubConnection.on(\"terminateSession\", (data) => {\r\n console.log(\"About to terminate the session\");\r\n\r\n this.reset$ = new Subject();\r\n\r\n // this.sub = this.reset$.pipe(\r\n // startWith(0),\r\n // switchMap(() => timer(0, 1000)),\r\n // takeWhile(() => this.countDown > 0),\r\n // );\r\n\r\n this.sub = this.reset$.pipe(\r\n startWith(true),\r\n switchMap(val => (val ? this.interval$ : empty())),\r\n scan((acc, curr) => (curr ? curr + acc : acc), this.countDown),\r\n takeWhile(v => v >= 0)\r\n )\r\n\r\n this.sub.subscribe((val) => {\r\n console.log(val);\r\n\r\n if (val === 0) {\r\n this.stopConnection(data);\r\n this.logout();\r\n\r\n //Reload the whole application\r\n }\r\n });\r\n });\r\n };\r\n\r\n //This sends the signal to terminate a session for a particular kiosk\r\n public stopClientSession(authSession) {\r\n this.hubConnection\r\n .invoke(\"callTerminateSession\", authSession)\r\n .then((data) => {\r\n console.log(\"Stop connection\", data);\r\n });\r\n }\r\n\r\n // public stopAllSignal() {\r\n // let sessionId = localStorage.getItem(\"sessionId\");\r\n // this.hubConnection.invoke(\"stopSession\", sessionId).then((data) => {\r\n // console.log(data);\r\n // });\r\n // }\r\n\r\n //This gets a connection Id from SignalR Hub\r\n private getConnectionId = () => {\r\n this.hubConnection.invoke(\"getconnectionid\").then((data) => {\r\n console.log(data);\r\n this.connectionId = data;\r\n });\r\n };\r\n\r\n //This send a signal to the Hub notifying the Hub, that my session is terminating.\r\n public stopConnection(authSession) {\r\n if (this.hubConnection) {\r\n this.hubConnection.invoke(\"stopSession\", authSession).then((data) => {\r\n this.hubConnection.stop();\r\n this.hubConnection = undefined;\r\n this.logout();\r\n console.log(data);\r\n });\r\n }\r\n }\r\n\r\n //This is duplicated of log out from Auth Service, to avoid circular dependencies:--> this method will be called upon session termination\r\n public logout() {\r\n this.storageService.removeID();\r\n environment.authWebApi.userData = null;\r\n let previuosUrl: any = window.location.pathname;\r\n localStorage.clear();\r\n localStorage.removeItem(\"sessionId\");\r\n localStorage.setItem(\"previousUrl\", previuosUrl);\r\n clearInterval(this.interval);\r\n this.Isterminated = true;\r\n this.redirectTo(\"login\");\r\n }\r\n\r\n //get PC details from the kiosk service\r\n public getPCDetails() {\r\n return this.http.get(`${environment.consoleAPIUrl}/getpcdetails`);\r\n }\r\n\r\n private redirectTo(url: string) {\r\n this.router.navigate([url]);\r\n }\r\n\r\n //This sends a heart beat to the server, informing the hub that i am still online\r\n public userPing(authSession: AuthSession): void {\r\n if (this.hubConnection) {\r\n if (this.hubConnection.state === signalR.HubConnectionState.Connected) {\r\n this.hubConnection\r\n .invoke(\"UserRegister\", authSession)\r\n .catch((err) => console.error(\"userPing error:\", err));\r\n }\r\n }\r\n }\r\n\r\n //Sends a heart beat to the server after a specified time has elapsed\r\n public async SessionManager(authSession: AuthSession) {\r\n this.startConnection();\r\n\r\n this.interval = setInterval(() => {\r\n authSession.pcIpAddress = this.ipAddress;\r\n authSession.dateModified = new Date();\r\n authSession.sessionEndTime = new Date();\r\n authSession.connectionId = this.connectionId;\r\n authSession.pcName = this.machinename;\r\n this.userPing(authSession);\r\n this.authSession = authSession;\r\n }, 10000);\r\n }\r\n\r\n public end(startTime: Date): number {\r\n var endTime = new Date();\r\n var timeDiff = endTime.getTime() - startTime.getTime(); //in ms\r\n // strip the ms\r\n timeDiff /= 1000;\r\n\r\n // get seconds\r\n var seconds = Math.round(timeDiff);\r\n return seconds;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SocialloginService {\r\n url: string | undefined;\r\n constructor(private http: HttpClient) {}\r\n\r\n Savesresponse(responce: any) {\r\n this.url = 'http://localhost:4200/Api/Login/Savesresponse';\r\n return this.http.post(this.url, responce);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { Baseservice } from './baseservice'\r\n\r\nimport { AuthenticationService } from './authentication.service';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n@Injectable()\r\nexport class StatusService extends Baseservice {\r\n\r\n constructor(http: HttpClient, authentication: AuthenticationService) {\r\n super('status', http, authentication);\r\n }\r\n\r\n\r\n checkById(id: number) {\r\n return this.getRequest(`${this.url}/check/id/${id}`);\r\n }\r\n\r\n statusesDDL(ctrlKey: number=1) {\r\n return this.getRequest(`${this.url}/list/${ctrlKey}`);\r\n }\r\n \r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n\r\n@Injectable()\r\nexport class StorageService {\r\n\r\n\r\n\tisLogged:boolean=false;\r\n\tconstructor() {\r\n\r\n\t}\r\n\r\n\r\n\tsetID(id:any) {\r\n localStorage.setItem(\"userID\", id);\r\n\t}\r\n\tsetSessionId(id:any){\r\n sessionStorage.setItem(\"loginID\",id);\r\n\t}\r\n\tgetSessionId(){\r\n\t\tsessionStorage.getItem(\"loginID\");\r\n\t }\r\n\r\n\tgetID() {\r\n return localStorage.getItem(\"userID\");\r\n\t}\r\n\tremoveID() {\r\n localStorage.removeItem(\"userID\");\r\n localStorage.removeItem(\"sessionId\");\r\n }\r\n\r\n cleanSession = () => {\r\n //localStorage.clear();\r\n }\r\n\r\n setCompliance(data: any) {\r\n localStorage.setItem(\"Compliance\", JSON.stringify(data));\r\n }\r\n getCompliance() {\r\n return JSON.parse(localStorage.getItem(\"Compliance\"));\r\n }\r\n\r\n clearCompliance() {\r\n //console.log(\"Compliance cleared\");\r\n localStorage.removeItem(\"Compliance\");\r\n }\r\n\r\n\r\n\r\n\r\n\r\n}\r\n","\r\nimport {map} from 'rxjs/operators';\r\nimport { Injectable } from '@angular/core';\r\nimport { Baseservice } from './baseservice';\r\n\r\nimport { AuthenticationService } from './authentication.service';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n@Injectable()\r\nexport class TimetableService extends Baseservice {\r\n\r\n constructor(http: HttpClient, authentication: AuthenticationService) {\r\n super('timetable', http, authentication);\r\n }\r\n\r\n createReturn(body: any) {\r\n return this.http.post(this.url + '/make_return', body);\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { Baseservice } from './baseservice';\r\nimport { AuthenticationService } from './authentication.service';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n@Injectable()\r\nexport class TransportAssocService extends Baseservice {\r\n\r\n constructor(http: HttpClient, authentication: AuthenticationService) {\r\n super('transport/assoc', http, authentication);\r\n } \r\n\r\n listTransportAssoc() {\r\n return this.getRequest(`${this.url}/ddl`);\r\n }\r\n getTransporAssocById(id){\r\n return this.getRequest(`${this.url}/`+id);\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { DatePipe } from '@angular/common';\r\nimport { Page } from 'app/classes/page';\r\nimport { Account } from 'app/constants/account.enum';\r\nimport { Router } from '@angular/router';\r\nimport { FormControl } from '@angular/forms';\r\nimport { CountryISO } from 'app/shared/projects/ngx-intl-tel-input/src/public_api';\r\nimport {BehaviorSubject, Observable} from 'rxjs';\r\ndeclare var $;\r\n@Injectable()\r\nexport class UtilityServiceService {\r\n\r\n approveStatusId:any=51;\r\n isCarrier:boolean=false;\r\n isProcessAccounts:boolean=false;\r\n permitFreightId:any=\"\";\r\n displayIndicators = [{ key: 0, value: 'None' }, { key: 1, value: 'Internal' }, { key: 2, value: 'External' }, { key: 3, value: 'Both' }];\r\n //statusUseIndicators = [{ key: 0, value: 'None' }, { key: 1, value: 'Permit' }, { key: 2, value: 'Application' }, { key: 3, value: 'Application & Permit' }];\r\n statusUseIndicators = [{ key: 0, value: 'none' }, { key: 1, value: 'carrier' }, { key: 2, value: 'permit' }, { key: 3, value: 'application' }, { key: 4, value: 'permit and permit application' }, { key: 5, value: 'permit, permit application & carrier' }];\r\n entityType = [{ key: 0, value: 'None' }, { key: 1, value: 'Company' }, { key: 2, value: 'Individual' }];\r\n defaults = { sort_order: 1, group_code: 'A', is_active: true };\r\n flags = { flagID: 1, flagCE: 1, flagDN: 1, flagAE: 1, flagGC: 1, flagSO: 1,flagPV:1, flagPM:1 };\r\n ranks = { flagID: 0, flagCE: 1, flagDN: 2, flagAE: 3, flagGC: 4, flagSO: 5,flagPV:6, flagPM:7 };\r\n sortLabels = { flagID: \"id\", flagCE: \"code\", flagDN: \"description\", flagAE: \"is_active\", flagGC: \"group_code\", flagSO: \"sort_order\", flagPV:\"province_id\", flagPM:\"permit_num\" };\r\n ctrlPages: any = [];\r\n rolesServed = [{ key: 1, value: 'Lead User' }, { key: 2, value: 'Editor User' }, { key: 6, value: 'Read User' }, { key: 11, value: 'Owner' }, { key: 12, value: 'Consultant' }, { key: 21, value: 'Main Contact' }];\r\n // idTypes = [{ key: 0, value: 'Unknown' }, { key: 1, value: 'Local ID Number' }, { key: 2, value: 'Foreign Passport/ID Number' }, { key: 3, value: 'Company Registration Number' }, { key: 4, value: 'NPO Number' }, { key: 5, value: 'Trust Number' }];\r\n idTypes = [{ key: 0, value: 'Unknown' },\r\n { key: 1, value: 'ID Number' },\r\n { key: 2, value: 'Foreign Passport / ID Number' },\r\n { key: 3, value: 'Company Registration Number' },\r\n { key: 4, value: 'NPO Number' },\r\n { key: 5, value: '(key 5)' },\r\n { key: 6, value: 'Closed Corporation Reg No'},\r\n { key: 7, value: 'Trust Registration No'},\r\n { key: 8, value: 'ID Number of Main Partner'},\r\n ];\r\n freight_passenger_inds = [{ key: 1, value: 'Freight' }, { key: 2, value: 'Passenger' }, { key: 3, value: 'Both' }]\r\n bbbees = [\r\n { text: 'Level 1' },\r\n { text: 'Level 2' },\r\n { text: 'Level 3' },\r\n { text: 'Level 4' },\r\n { text: 'Level 5' },\r\n { text: 'Level 6' },\r\n { text: 'Level 7' },\r\n { text: 'Level 8' },\r\n { text: 'Non-compliant' }\r\n ];\r\n numberisvalid: boolean;\r\n listStops = [\r\n { key: 1, value: \"Departure point\" },\r\n { key: 2, value: \"Loading point\" },\r\n { key: 3, value: \"Offloading point\" },\r\n { key: 4, value: \"Loading/Offloading point\" },\r\n { key: 5, value: \"Refreshment stop\" },\r\n { key: 6, value: \"Refuelling stop\" },\r\n { key: 9, value: \"Destination point\" }\r\n ];\r\n\r\n businessTypes = [\r\n { key: 1, value: 'Private Company' },\r\n // { key: 2, value: 'Close Corporation' },\r\n { key: 2, value: 'Closed Corporation' },\r\n { key: 3, value: 'Public Company' },\r\n { key: 11, value: 'One-Person Business' },\r\n { key: 12, value: 'Partnership' },\r\n { key: 21, value: 'Other' }\r\n ];\r\n preferredCountries: CountryISO[] = [\r\n CountryISO.Angola,\r\n CountryISO.Botswana,\r\n CountryISO.Comoros,\r\n CountryISO.CongoDRCJamhuriYaKidemokrasiaYaKongo,\r\n CountryISO.Lesotho,\r\n CountryISO.Madagascar,\r\n CountryISO.Malawi,\r\n CountryISO.Mauritius,\r\n CountryISO.Mozambique,\r\n CountryISO.Namibia,\r\n CountryISO.Seychelles,\r\n CountryISO.Swaziland,\r\n CountryISO.Zambia,\r\n CountryISO.Zimbabwe,\r\n ];\r\n\r\n pageItems = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100];\r\n acc = Account;\r\n direction = true;\r\n rankCtrl = 2;\r\n btnAction:any=0;\r\n docCtrl:boolean = false;\r\n confirmCtrl: boolean = false;\r\n saveconfirmCtrl: boolean = false\r\n dontAllowConfirm: boolean = false;\r\n criteria = this.sortLabels.flagSO;\r\n sortOrderList = [1, 2, 3, 4];\r\n activeTab = 1;\r\n page = 1;\r\n isView: boolean = true;\r\n isBtnVisible: boolean = true;\r\n currentActive = 1;\r\n isChanged:boolean = false;\r\n actionStatus:any=\"\";\r\n permitType:any=\"\";\r\n permitAppId: any = null;\r\n carrierId: number = 0;\r\n carrierName: string = '';\r\n timetableActive:boolean=false;\r\n private showStatementFooterSubject: BehaviorSubject = new BehaviorSubject(false);\r\n public showStatementFooter$: Observable = this.showStatementFooterSubject.asObservable();\r\n\r\n sequenceNumbers: any = {\r\n permitNum: 1,\r\n vehicleNum:2,\r\n routesNum: 3,\r\n timeTableNum: 0,\r\n motivationNum: 4,\r\n uploadsNum: 5,\r\n cnfNum: 6\r\n };\r\n changeKey = 0;\r\n permitStatusId:any=\"\";\r\n carrierStatusId:any=\"\";\r\n carrierObject: any = null;\r\n compliance: any = null;\r\n cplURL = 'calendar/viewer';\r\n constructor(private datePipe: DatePipe, private router: Router) {\r\n this.ctrlPages = this.initPages();\r\n }\r\n\r\n showDisplayIndicator( key: number = 0) {\r\n let label: string = null;\r\n switch (key) {\r\n case 1:\r\n label = 'Internal';\r\n break;\r\n case 2:\r\n label = 'External';\r\n break;\r\n case 3:\r\n label = 'Both';\r\n break;\r\n default:\r\n label = 'None';\r\n break;\r\n }\r\n return label;\r\n }\r\n\r\n showStatusIndicator(key: number = 0) {\r\n let label: string = null;\r\n switch (key) {\r\n case 1:\r\n case 2:\r\n case 3:\r\n case 4:\r\n case 5:\r\n label = this.statusUseIndicators[key].value;\r\n break;\r\n default:\r\n label = 'None';\r\n break;\r\n }\r\n return label;\r\n }\r\n\r\n setDirection(direction){\r\n this.direction = direction;\r\n }\r\n\r\n setShowStatementFooter(value: boolean): void {\r\n this.showStatementFooterSubject.next(value);\r\n }\r\n\r\n isActive(active: boolean = false) {\r\n return (active) ? 'Yes' : 'No'\r\n }\r\n\r\n onSort(rank: number) {\r\n this.direction = !this.direction;\r\n this.rankCtrl = rank;\r\n this.onExcuteSort(rank);\r\n }\r\n\r\n onResetFlags() {\r\n this.flags = { flagID: 1, flagCE: 1, flagDN: 1, flagAE: 1, flagGC: 1, flagSO: 1, flagPV:1, flagPM:1 };\r\n this.page = 1;\r\n }\r\n\r\n onExcuteSort(rank: number) {\r\n this.onResetFlags();\r\n const sort = (this.direction) ? 3 : 2;\r\n this.criteria = null;\r\n switch (rank) {\r\n case this.ranks.flagCE: {\r\n this.criteria = this.sortLabels.flagCE;\r\n this.flags.flagCE = sort;\r\n break;\r\n }\r\n case this.ranks.flagDN: {\r\n this.criteria = this.sortLabels.flagDN;\r\n this.flags.flagDN = sort;\r\n break;\r\n }\r\n case this.ranks.flagAE: {\r\n this.criteria = this.sortLabels.flagAE;\r\n this.flags.flagAE = sort;\r\n break;\r\n }\r\n case this.ranks.flagGC: {\r\n this.criteria = this.sortLabels.flagGC;\r\n this.flags.flagGC = sort;\r\n break;\r\n }\r\n case this.ranks.flagSO: {\r\n this.criteria = this.sortLabels.flagSO;\r\n this.flags.flagSO = sort;\r\n break;\r\n }\r\n case this.ranks.flagID: {\r\n this.criteria = this.sortLabels.flagID;\r\n this.flags.flagID = sort;\r\n break;\r\n }\r\n case this.ranks.flagPV: {\r\n this.criteria = this.sortLabels.flagPV;\r\n this.flags.flagPV = sort;\r\n break;\r\n }\r\n case this.ranks.flagPM: {\r\n this.criteria = this.sortLabels.flagPM;\r\n this.flags.flagPM = sort;\r\n break;\r\n }\r\n }\r\n\r\n }\r\n\r\n setAuditAttributes(dateC: Date, usernameC: string, dateU: Date, usernameU: string) {\r\n return {\r\n created: `On ${this.datePipe.transform(dateC, 'yyyy-MM-dd')} ${this.datePipe.transform(dateC, 'h:mm a')} by ${usernameC}`,\r\n updated: `On ${this.datePipe.transform(dateU, 'yyyy-MM-dd')} ${this.datePipe.transform(dateU, 'h:mm a')} by ${usernameU}`\r\n };\r\n\r\n }\r\n\r\n public nextPage = (id: number): void => {\r\n ////console.log(`Going to ${id} next page ${this.ctrlPages[id].next}`)\r\n if (this.ctrlPages[id].next > -1) {\r\n this.ctrlPages[this.ctrlPages[id].next - 1].visibility = true;\r\n this.ctrlPages[id].visibility = false;\r\n }\r\n }\r\n\r\n public prevPage = (id: number): void => {\r\n\r\n if (this.ctrlPages[id].previous > -1) {\r\n this.ctrlPages[this.ctrlPages[id].previous - 1].visibility = true;\r\n this.ctrlPages[id].visibility = false;\r\n }\r\n\r\n }\r\n\r\n public navigate = (url: string): void => {\r\n this.router.navigateByUrl(url);\r\n }\r\n\r\n landingPage = () => {\r\n this.ctrlPages = this.initPages(); \r\n if(this.isProcessAccounts)\r\n {\r\n this.navigate('/account/approval');\r\n }\r\n else\r\n if(this.isCarrier){\r\n this.currentActive=1;\r\n this.page=1;\r\n this.isCarrier=false;\r\n }else{\r\n this.navigate('/carrier/accounts');\r\n }\r\n\r\n }\r\n\r\n initPages = () => {\r\n\r\n return [\r\n new Page(1, {}, 2, -1, false, false),\r\n new Page(2, {}, 3, 1, false, false),\r\n new Page(3, {}, 4, 2, false, false),\r\n new Page(4, {}, 5, 3, false, false),\r\n new Page(5, {}, -1, 4, false, false)\r\n ];\r\n }\r\n\r\n switchOnVisibility = (page_num: number) => {\r\n this.ctrlPages.filter(page => page.id != page_num).forEach(others => others.visibility = false);\r\n this.ctrlPages[page_num].visibility = true;\r\n }\r\n\r\n checkIntegerType(control: FormControl) {\r\n let statusValue = control.value;\r\n if (statusValue) {\r\n let intValue = /^\\d*$/.test(statusValue);\r\n if (!intValue) {\r\n return {\r\n checkInt: {\r\n negative: statusValue\r\n }\r\n }\r\n }\r\n return null;\r\n }\r\n }\r\n\r\n onBackward = () => {\r\n this.currentActive = 1;\r\n }\r\n\r\n\r\n initTooltip = () => {\r\n $(document).ready(function () {\r\n $('[rel=\"tooltip\"]').tooltip(\r\n {\r\n trigger: 'hover',\r\n delay: { show: 100, hide: 100 }\r\n }\r\n );\r\n\r\n\r\n $('[rel=\"tooltip\"]').on('click', function (e) {\r\n e.preventDefault();\r\n $(this).tooltip('hide');\r\n $(this).tooltip('dispose');\r\n })\r\n });\r\n }\r\n\r\n tabPosition = (tabNum) => {\r\n return tabNum - 1;\r\n }\r\n\r\n nextTabPosition = (tabNum) => {\r\n return tabNum + 1;\r\n }\r\n}\r\n","\r\nimport {map} from 'rxjs/operators';\r\nimport { Injectable } from '@angular/core';;\r\n\r\nimport { Baseservice } from './baseservice';\r\nimport { AuthenticationService } from './authentication.service';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n\r\n@Injectable()\r\nexport class VehicleEntryCarrierService extends Baseservice {\r\n\r\n constructor(http:HttpClient,authentication:AuthenticationService) {\r\n super(\"vehicle-entry-carrier\",http,authentication)\r\n }\r\n postVehicleEntryCarrier(object : any) {\r\n let body = object;\r\n return this.http.post(this.url,body);\r\n\r\n }\r\n getVehicleEntryCarrier(id) {\r\n return this.http.get(this.url+'/'+id);\r\n\r\n }\r\n\r\n}\r\n","\r\nimport {map} from 'rxjs/operators';\r\nimport { Injectable } from '@angular/core';\r\nimport { Baseservice } from './baseservice';\r\n\r\nimport { AuthenticationService } from './authentication.service';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n@Injectable()\r\nexport class VehicleEntryService extends Baseservice {\r\n\r\n constructor(http:HttpClient,authentication:AuthenticationService) {\r\n super(\"vehicle-entry\",http,authentication)\r\n }\r\n\r\ngetVehicles(){ \r\n //alert(this.url);\r\n return this.http.get(this.url);\r\n}\r\ngetVehicleEntryById(id){\r\n return this.http.get(this.url+\"/\"+id);\r\n}\r\npostVehicleEntry(object : any,id,appid) {\r\n let body = object;\r\n return this.http.post(this.url+'/'+id+'/'+appid,body);\r\n}///carrier/\r\npostCarrierVehicleEntry(object : any,id) {\r\n let body = object;\r\n return this.http.post(this.url+'/carrier/'+id,body);\r\n}\r\nsearchVehicle(object : any) {\r\n let body = object;\r\n //console.log(\"Calling the search function\");\r\n return this.http.post(this.url+\"/search\", body);\r\n}\r\nsearchExternalVehicle(object : any) {\r\n let body = object;\r\n //console.log(\"Calling the search function\");\r\n return this.http.post(this.url+\"/external/search\", body);\r\n}\r\nsearchCarrierVehicle(object : any) {\r\n let body = object;\r\n return this.http.post(this.url+\"/carrier-search\", body);\r\n}\r\n\r\ncheckVehicles(data,id){ \r\n return this.http.post(this.url + '/check/'+id,data);\r\n}\r\nreplaceVehicles(data,id){\r\n return this.http.post(this.url + '/replace/'+id,data);\r\n}\r\n//replace\r\ndeletevehicle(object){\r\n return this.http.post(this.url + '/delete',object);\r\n}\r\ngetAllVehicleEntry(){\r\n return this.http.get(this.url+'/all');\r\n}\r\nUpdateVehicleEntry(object : any,id,appid) {\r\n let body = object;\r\n return this.http.put(this.url+'/'+id+'/'+appid,body);\r\n}\r\ngetVehicleDeatilsById(id){\r\n return this.http.get(this.url+'/veh/'+id);\r\n}\r\ncheckVehicleApplication(data,carrierId){\r\n return this.http.post(this.url+'/vehicle-application/'+carrierId,data);\r\n\r\n}\r\nvehicleApplicationForeign(data,carrier){\r\n return this.http.post(this.url+'/vehicle-application-foreign/'+carrier,data);\r\n\r\n}\r\ngetCarrierVehiclesList(id){\r\n return this.http.get(this.url+\"/carrier/list/\"+id);\r\n}\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Baseservice } from './baseservice';\r\n\r\nimport { AuthenticationService } from './authentication.service';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n@Injectable()\r\nexport class VehicleMakeService extends Baseservice {\r\n\r\n constructor(http: HttpClient, authentication: AuthenticationService) {\r\n super('vehicle-make', http, authentication);\r\n }\r\n\r\n\r\n}","\r\nimport {map} from 'rxjs/operators';\r\nimport { Injectable } from '@angular/core';\r\n\r\nimport { AuthenticationService } from './authentication.service';\r\nimport { Baseservice } from './baseservice';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n@Injectable()\r\nexport class VehicleTypeService extends Baseservice {\r\n\r\n constructor(http: HttpClient, authentication: AuthenticationService) {\r\n super('vehicle-type', http, authentication);\r\n }\r\n getPermitTypeVehicles(){\r\n \r\n return this.http.get(this.url+\"/permit-type-vehicle/all\");\r\n}\r\ngetPermitTypeVehicle(id){\r\n \r\n return this.http.get(this.url+\"/ptype/\"+id);\r\n}\r\n\r\nloadvehicletypes(){ \r\nreturn this.getRequest(this.url);\r\n}\r\n\r\n}\r\n","\r\nimport {map} from 'rxjs/operators';\r\nimport { Injectable } from '@angular/core';\r\n\r\nimport \"rxjs/Rx\";\r\n\r\nimport { Baseservice } from './baseservice'\r\n\r\nimport { AuthenticationService } from './authentication.service';\r\nimport { HttpHeaders, HttpClient } from '@angular/common/http';\r\nimport { Observable, Subject } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class VehicleService extends Baseservice {\r\n private allVehicles = new Subject();\r\n\r\n constructor(http: HttpClient, authentication: AuthenticationService,private hhtpClicent:HttpClient) {\r\n super(\"vehicle\",http, authentication);\r\n }\r\n setVehicleReplament(data: any[]) {\r\n this.allVehicles.next(data);\r\n }\r\n getVehicleReplament(): Observable {\r\n return this.allVehicles.asObservable();\r\n }\r\n get() {\r\n return this.getVehicle(this.url + \"/vehicle\");\r\n }\r\n getAllVe(id:any) {\r\n return this.getVehicle(this.url+'/'+id);\r\n }\r\n getPermitsAppVecle(id:any) {\r\n return this.getVehicle(this.url+'/byapp/'+id);\r\n }\r\n getByPermitId(id:any)\r\n {\r\n return this.getVehicle(this.url+'/getByPermitId/'+id);\r\n }\r\n getPermitsAppVecleEntry(id:any) {\r\n return this.getVehicle(this.url+'/byvehicle-permit-entry/'+id);\r\n }\r\n getCarrierPermitsAppVecleEntry(id:any,appid) {\r\n return this.getVehicle(this.url+'/byvehicle-carrier-permit-entry/'+id+'/'+appid);\r\n }\r\n getVehicleBy(id:any) {\r\n return this.getVehicle(this.url+'/byid/'+id);\r\n }\r\n getAllVehicles() {\r\n return this.getVehicle(this.url);\r\n }\r\n getById(id: any) {\r\n return this.getVehicle(this.url + \"/find/\" + id);\r\n }\r\n\r\n isVehicleAttachedToPermit(id:any, carrierId:any)\r\n {\r\n return this.http.get(this.url+\"/app/IsVehicleAttachedToPermit/\" + id +'/'+ carrierId);\r\n }\r\n\r\n \r\n\r\n getVehicle(url: string) {\r\n return this.getRequest(url).pipe(map(response => response)); \r\n }\r\n\r\n postVehicle(object : any) {\r\n let body = object;\r\n return this.http.post(this.url+\"/app/list\", body);\r\n }///start/date\r\n postVehicleStartDate(object : any) {\r\n let body = object;\r\n return this.http.post(this.url+\"/start/date\", body);\r\n }//delete/vehicle/list\r\n deleteVehiclesList(object : any) {\r\n let body = object;\r\n return this.http.post(this.url+\"/delete/vehicle/list\", body);\r\n }//delete/vehicle/list\r\n\r\n putVehicle(object) {\r\n let body = object;\r\n return this.http.put(this.url,body);\r\n }\r\n updateVehicle(object) {\r\n let body = object;\r\n return this.http.put(this.url+'/update',body);\r\n }\r\n deleteVehicle(idsObject : any){\r\n \r\n return this.http.post(this.url+\"/app/delete\", idsObject);\r\n }\r\n removeVehicle(id){\r\n \r\n return this.http.get(this.url+\"/app/delete/\"+id);\r\n }\r\n getVehicleByVin(vin){\r\n return this.http.get(this.url+\"/vehicleEntry/\"+vin);\r\n\r\n }\r\n getVehicleValidatorByVin(vin){\r\n return this.http.get(this.url+\"/vehicle-validator/byVIN/\"+vin);\r\n\r\n }\r\n getVehicleValidatorByReg(reg){\r\n return this.http.get(this.url+\"/vehicle-validator/byReg/\"+reg);\r\n\r\n }\r\n getVehiclesList(id){\r\n return this.http.get(this.url+\"/person/\"+id);\r\n }\r\n \r\n\r\n}\r\n\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\n\r\nimport { AuthenticationService } from './authentication.service';\r\nimport { Baseservice } from './baseservice';\r\n\r\n@Injectable()\r\nexport class WorkflowdashboardService extends Baseservice{\r\n\r\n constructor(http: HttpClient, authentication: AuthenticationService) {\r\n super('dashboard', http, authentication);\r\n }\r\n getDashBoard()\r\n {\r\n return this.getRequest(`${this.workflowApiUrl}`);\r\n }\r\n}\r\n","import { Component, OnInit, OnDestroy} from '@angular/core';\r\nimport { UtilityServiceService } from 'app/services/utility-service.service';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { StorageService } from 'app/services/storage.service';\r\nimport { Router } from '@angular/router';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\n\r\n\r\n@Component({\r\n selector: 'app-calendar-viewer',\r\n templateUrl: './calendar-viewer.component.html',\r\n styleUrls: ['./calendar-viewer.component.css']\r\n})\r\nexport class CalendarViewerComponent implements OnInit, OnDestroy {\r\n form: FormGroup;\r\n FDay: number = 0;\r\n LDate: number = 0;\r\n CDate: Date;\r\n CMonthName: string;\r\n CYear: number = 0;\r\n CWeekDays = [\"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\", \"Sunday\"];\r\n CRows:any = [];\r\n CCols: any = [];\r\n CCell: number = 1;\r\n CDayNum: number = 1;\r\n innerHTML: any = null;\r\n CInnerHTML: any = null;\r\n CDays: any = null;\r\n compliance: any = null;\r\n isLoading: boolean = false;\r\n model: any = [];\r\n\r\n\r\n \r\n constructor(private utility: UtilityServiceService, private session: StorageService, private notice: ToastrService, private router: Router,private formBuilder: FormBuilder,) {\r\n \r\n }\r\n \r\n\r\n ngOnInit() { \r\n this.compliance = this.session.getCompliance();\r\n //console.log('Compliance = ', this.compliance);\r\n this.model.justification = \"This is a sample justification Text\";\r\n this.model.declaration = \"This is a sample declaration Text\";\r\n this.initForm();\r\n this.initCalendar();\r\n\r\n \r\n \r\n }\r\n\r\n initForm() {\r\n this.form = this.formBuilder.group({\r\n nilreturnjustification: ['', []],\r\n nilreturndeclaration:['', []]\r\n });\r\n }\r\n ngOnDestroy() { \r\n this.session.clearCompliance();\r\n }\r\n \r\n\r\n //Calendar features\r\n initTime = ()=> {\r\n // initialize time-related variables with current time settings\r\n let now = new Date();\r\n let hour = now.getHours();\r\n let minute = now.getMinutes();\r\n now = null;\r\n let ampm = \"\";\r\n\r\n // validate hour values and set value of ampm\r\n if (hour >= 12) {\r\n hour -= 12;\r\n ampm = \"PM\";\r\n } else\r\n ampm = \"AM\";\r\n hour = (hour == 0) ? 12 : hour;\r\n\r\n // add zero digit to a one digit minute\r\n if (minute < 10)\r\n minute = 0 + minute; // do not parse this number!\r\n\r\n // return time string\r\n return hour + \":\" + minute + \" \" + ampm;\r\n }\r\n\r\n isLeapYear =(year)=> {\r\n if (year % 4 == 0) // basic rule\r\n return true // is leap year\r\n /* else */ // else not needed when statement is \"return\"\r\n return false // is not leap year\r\n }\r\n\r\nmonthDays=(month, year)=> {\r\n // create array to hold number of days in each month\r\n const monthDays = [31, (this.isLeapYear(year)) ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\r\n // return number of days in the specified month (parameter)\r\n return monthDays[month]\r\n}\r\n\r\nmonthName =(month)=> {\r\n // create array to hold name of each month\r\n const monthNames =\r\n [\r\n \"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\",\r\n \"August\", \"September\", \"October\", \"November\", \"December\"\r\n ];\r\n\r\n // return name of specified month (parameter)\r\n return monthNames[month];\r\n }\r\n\r\n\r\ninitCalendar() {\r\n // standard time attributes\r\n let now = new Date();\r\n let year = now.getFullYear();//now.getYear()\r\n if (year < 1000)\r\n year += 1900\r\n let month = now.getMonth()\r\n let monthName = this.monthName(month)\r\n let date = now.getDate()\r\n now = null\r\n this.CYear = year;\r\n this.CMonthName = monthName;\r\n // create instance of first day of month, and extract the day on which it occurs\r\n let firstDayInstance = new Date(year, month, 1)\r\n let firstDay = firstDayInstance.getDay()\r\n firstDayInstance = null\r\n //console.log('First Day = ', firstDay);\r\n // number of days in current month\r\n let days = this.monthDays(month, year)\r\n const rows = Math.ceil((days + firstDay-1) / 7);\r\n this.CRows = Array(rows).fill(0);\r\n this.CCols = Array(7).fill(7);\r\n this.LDate = days;\r\n this.FDay = firstDay;\r\n\r\n // call function to draw calendar\r\n // this.processCal(firstDay, days, date, rows, 7);\r\n //this.processCal1(firstDay + 1, days, date, monthName, year);\r\n this.initCalendrier(firstDay, days, date, rows, 7,month+1,year);\r\n}\r\n\r\nprocessCal1=(firstDay, lastDate, date, monthName, year)=>{\r\n // constant table settings\r\n var headerHeight = 50 // height of the table's header cell\r\n var border = 2 // 3D height of table's border\r\n var cellspacing = 4 // width of table's border\r\n var headerColor = \"midnightblue\" // color of table's header\r\n var headerSize = \"+3\" // size of tables header font\r\n var colWidth = 60 // width of columns in table\r\n var dayCellHeight = 50 // height of cells containing days of the week\r\n var dayColor = \"darkblue\" // color of font representing week days\r\n var cellHeight = 40 // height of cells representing dates in the calendar\r\n var todayColor = \"red\" // color specifying today's date in the calendar\r\n var timeColor = \"purple\" // color of font representing current time\r\n\r\n // create basic table structure\r\n var text = \"\" // initialize accumulative variable to empty string\r\n text += '
'\r\n text += '' // table settings\r\n text += '' // close header cell\r\n\r\n // variables to hold constant settings\r\n var openCol = ''\r\n\r\n // create array of abbreviated day names\r\n var weekDay = new Array(7)\r\n weekDay[0] = \"Sun\"\r\n weekDay[1] = \"Mon\"\r\n weekDay[2] = \"Tues\"\r\n weekDay[3] = \"Wed\"\r\n weekDay[4] = \"Thu\"\r\n weekDay[5] = \"Fri\"\r\n weekDay[6] = \"Sat\"\r\n\r\n // create first row of table to set column width and specify week day\r\n text += ''\r\n for (var dayNum = 0; dayNum < 7; ++dayNum) {\r\n text += openCol + weekDay[dayNum] + closeCol\r\n }\r\n text += ''\r\n\r\n // declaration and initialization of two variables to help with tables\r\n var digit = 1\r\n var curCell = 1\r\n\r\n let calendar = \"\";\r\n\r\n for (var row = 1; row <= Math.ceil((lastDate + firstDay - 1) / 7); ++row) {\r\n calendar += ''\r\n for (var col = 1; col <= 7; ++col) {\r\n if (digit > lastDate)\r\n break\r\n if (curCell < firstDay) {\r\n calendar += '';\r\n curCell++\r\n } else {\r\n if (digit == date) { // current cell represent today's date\r\n calendar += ''\r\n } else\r\n calendar += ''\r\n digit++\r\n }\r\n }\r\n calendar += ''\r\n }\r\n\r\n // close all basic table tags\r\n text += calendar+ '
' // create table header cell\r\n text += '' // set font for table header\r\n text += monthName + ' ' + year\r\n text += '' // close table header's font settings\r\n text += ''\r\n openCol += ''\r\n var closeCol = '
'\r\n calendar += ''\r\n calendar += digit\r\n calendar += '
'\r\n calendar += ''\r\n calendar += '
' + this.initTime() + '
'\r\n calendar += '
'\r\n calendar += '
' + digit + '
'\r\n text += '
'\r\n\r\n // print accumulative HTML string\r\n //document.write(text)\r\n this.CInnerHTML = calendar;\r\n this.innerHTML = text;\r\n}\r\n\r\n increment = (counter, isMain = false) => { \r\n if (isMain)\r\n this.CCell++;\r\n else\r\n this.CDayNum++;\r\n //console.log('Counter = ', counter);\r\n //return counter;\r\n }\r\n\r\n increm = (i,j) => {\r\n return this.CDays[i][j].day;\r\n }\r\n\r\n //processCal = (firstDay, lastDate, date, rows, cols=7) => {\r\n \r\n // // declaration and initialization of two variables to help with tables\r\n // let digit = 1\r\n // let curCell = 1\r\n // let calendar = \"\";\r\n\r\n // for (let row = 1; row <= Math.ceil((lastDate + firstDay - 1) / 7); ++row) {\r\n // calendar += ''\r\n // for (let col = 1; col <= 7; ++col) {\r\n // if (digit > lastDate) {\r\n // calendar += ``;\r\n // this.CDays.push({ i: row - 1, j: col - 1, day: '' });\r\n // break;\r\n // } \r\n // if (curCell < firstDay) {\r\n // calendar += ``;\r\n // curCell++;\r\n // this.CDays.push({ i: row - 1, j: col - 1, day: '' });\r\n // } else { \r\n // let signal = (digit == date) ? \"col-12 text-danger\" : \"col-12\";\r\n // this.CDays.push({ i: row - 1, j: col - 1, day: digit });\r\n // calendar += `\r\n //
\r\n //
${digit }
\r\n //
\r\n \r\n //
\r\n //
\r\n // `\r\n // digit++\r\n // }\r\n // }\r\n // calendar += ''\r\n // }\r\n // this.CInnerHTML = calendar;\r\n\r\n \r\n // //console.log('Content : ', this.CDays);\r\n // let days = null;\r\n // let arr = Array.from(Array(rows), () => new Array(cols));\r\n // this.CDays.map(row => { \r\n // arr[row.i][row.j] = row.day;\r\n // });\r\n \r\n // this.CDays = arr;\r\n // //console.log('Row : ', this.CDays);\r\n \r\n \r\n //}\r\n\r\n\r\n initCalendrier = (firstDay, lastDate, date, rows, cols = 7,month,year) => { \r\n let digit = 1\r\n let curCell = 1\r\n const monthC = (month < 10) ? `0${month}`:month;\r\n\r\n this.CDays = Array.from(Array(rows), () => new Array(cols));\r\n for (let row = 1; row <= Math.ceil((lastDate + firstDay - 1) / 7); ++row) {\r\n \r\n for (let col = 1; col <= 7; ++col) {\r\n if (digit > lastDate) { \r\n this.CDays[row-1][col-1]={day: '' ,today:false};\r\n break;\r\n }\r\n if (curCell < firstDay) { \r\n curCell++;\r\n this.CDays[row - 1][col - 1] = { day: '', today: false };\r\n } else {\r\n let signal = (digit == date) ? true : false;\r\n const dayC = (digit < 10) ? `0${digit}` : digit;\r\n this.CDays[row - 1][col - 1] = { day: digit, today: signal, cal_date: `${year}-${monthC}-${dayC}`,compliance:this.compliance };\r\n digit++\r\n }\r\n }\r\n \r\n } \r\n //console.log('Content : ', this.CDays); \r\n\r\n \r\n }\r\n\r\n isToday = (i, j) => {\r\n return this.CDays[i][j].today;\r\n }\r\n\r\n back = () => {\r\n\r\n }\r\n\r\n onBack() { \r\n this.router.navigate([this.compliance.url]);\r\n }\r\n\r\n changeState = (event) => {\r\n\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Account NumberAccount NameTrading NameRegistration NumberPermit NumberPermit TypeVehicle Registration Number
{{compliance.carrierName}}{{compliance.carrierNum}}{{compliance.carrierRegNum}}{{compliance.carrierTradingName}}{{compliance.permitNum}}{{compliance.permitType}}{{compliance.vehicle_reg_num}}
\r\n
\r\n

\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n\r\n
\r\n {{day}}\r\n
\r\n\r\n\r\n\r\n
\r\n \r\n \r\n
\r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
Nil Trips Submission
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n [Carrier Details]\r\n
\r\n
\r\n\r\n [Permit Number, Type, Vehicle]\r\n
\r\n
\r\n\r\n [Month]\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n","import { Component, OnInit, ChangeDetectorRef, Input } from '@angular/core';\r\nimport { UploadEvent, UploadFile, FileSystemFileEntry, FileSystemDirectoryEntry } from 'ngx-file-drop';\r\nimport { DocumentsServiceService } from 'app/services/documents-service.service';\r\nimport { DocumenttypeService } from 'app/services/documenttype.service';\r\nimport { AuthWebService } from 'app/services/authweb.service';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { CarrierService } from 'app/services/carrier.service';\r\nimport { PopupService } from 'app/services/shared/popup.service';\r\nimport { DialogService } from 'ng2-bootstrap-modal';\r\nimport { UtilityServiceService } from 'app/services/utility-service.service';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { environment } from 'environments/environment';\r\nimport { FormGroup, FormBuilder, FormArray } from '@angular/forms';\r\n\r\n\r\ndeclare var $: any;\r\n\r\n@Component({\r\n selector: 'trip',\r\n templateUrl: './trip.component.html',\r\n styleUrls: ['./trip.component.css']\r\n})\r\nexport class TripComponent implements OnInit {\r\n\r\n tripForm: FormGroup;\r\n public paxList: UploadFile[] = [];\r\n uploads: any = [];\r\n uploadFwds: any = [];\r\n uploadRtns: any = [];\r\n compList: any = [];\r\n message: string = \"Processing, please wait...\";\r\n isLoading: boolean = false;\r\n maxMB: any;\r\n allowedFileTypes: any;\r\n lastName: string;\r\n allowedFileSize: any;\r\n hasTrip: boolean = true;\r\n isFreight: boolean = true;\r\n docTypeId: number = 0;\r\n @Input('dataCtrl') dataCtrl: any;\r\n\r\n constructor(private documentService: DocumentsServiceService, private documenttypeService: DocumenttypeService, \r\n private formBuilder: FormBuilder,\r\n private authWebService: AuthWebService, private sanitizer: DomSanitizer,\r\n private confirm: PopupService,\r\n private utility: UtilityServiceService, private ref: ChangeDetectorRef, private notice: ToastrService) {\r\n \r\n }\r\n\r\n ngOnInit() {\r\n this.maxMB = (this.authWebService.userData) ? this.authWebService.userData.Configurations.find(p => p.Code == 'MaxUploadMB1').Value:0;\r\n this.lastName = (this.authWebService.userData) ? this.authWebService.userData.User.LastName : '';\r\n this.allowedFileSize = this.authWebService.userData.Configurations.find(p => p.Code == 'MaxUploadMB1');\r\n this.allowedFileTypes = this.authWebService.userData.Configurations.find(p => p.Code == 'UploadDocTypes1');\r\n this.initFreight();\r\n ////console.log('dataCtrl', this.dataCtrl);\r\n const code = (this.isFreight) ? 'DocTypeFreightUpload' : 'DocTypePaxUpload';\r\n this.docTypeId = (this.authWebService.userData) ? this.authWebService.userData.Configurations.find(p => p.Code == code).Value : 0;\r\n //console.log('DocTypeId', this.docTypeId);\r\n ////console.log('DocTypeId', this.authWebService.userData.Configurations.find(p => p.Code == code).Value)\r\n this.initForm();\r\n }\r\n\r\n onSwitchOnOrOff = (state = false) => {\r\n this.isLoading = state;\r\n }\r\n\r\n //Form part\r\n initForm() {\r\n this.tripForm = this.formBuilder.group({\r\n \r\n trips: this.formBuilder.array([this.newTrip()]),\r\n \r\n });\r\n \r\n }\r\n\r\n get trips(): FormArray {\r\n return this.tripForm.get(\"trips\") as FormArray\r\n }\r\n\r\n newTrip(): FormGroup {\r\n return this.formBuilder.group(\r\n (this.isFreight) ? {\r\n FType: 1,\r\n FMass: 0,\r\n FCat: '',\r\n FUploads: [],\r\n RType: 2,\r\n RMass: 0,\r\n RCat: '',\r\n RUploads: [],\r\n tripNum: 0\r\n } :\r\n {\r\n FType: 1,\r\n FNPax: 0,\r\n FUploads: [],\r\n RType: 2,\r\n RNPax: 0,\r\n RUploads: [],\r\n tripNum: 0\r\n }\r\n );\r\n }\r\n\r\n addTrip() {\r\n this.trips.push(this.newTrip());\r\n }\r\n\r\n removeTrip(i: number) {\r\n this.trips.removeAt(i);\r\n }\r\n\r\n onSubmit() {\r\n ////console.log(this.tripForm.value);\r\n \r\n this.transform();\r\n }\r\n\r\n //End Form part\r\n\r\n process = () => {\r\n alert('Uploaded pax list');\r\n }\r\n\r\n onShow = () => {\r\n this.paxList = [];\r\n $(\"#Manager\").modal();\r\n }\r\n onClose = () => { \r\n $(\"#Manager\").modal('hide');\r\n }\r\n\r\n //Drap and drop files\r\n\r\n processdroppedFile(entry: UploadFile) {\r\n \r\n\r\n return new Promise((resolve, reject) => {\r\n\r\n if (entry.fileEntry.isFile) {\r\n const fileEntry = entry.fileEntry as FileSystemFileEntry;\r\n fileEntry.file((file: File) => {\r\n const reader = new FileReader();\r\n\r\n reader.onload = () => { \r\n resolve(\r\n [{\r\n filestream: reader.result.toString().split(',')[1],\r\n filename : file.name,\r\n filetype : file.type,\r\n filedescription : 'Pax list upload',\r\n filesize: file.size,\r\n }]\r\n );\r\n };\r\n reader.onerror = err => reject(err);\r\n\r\n reader.readAsDataURL(file);\r\n });\r\n }\r\n });\r\n}\r\n\r\n public dropped(event: UploadEvent,index,key=1) {\r\n this.paxList = event.files;\r\n //this.uploads.push(this.paxList);\r\n if (key == 1) {\r\n //this.uploadFwds[index] = this.paxList;\r\n this.processdroppedFile(this.paxList[0]).then(res => {\r\n this.uploadFwds[index] = res; \r\n });\r\n\r\n }\r\n else {\r\n //this.uploadRtns[index] = this.paxList;\r\n this.processdroppedFile(this.paxList[0]).then(res => {\r\n this.uploadRtns[index] = res;\r\n });\r\n }\r\n \r\n\r\n \r\n\r\n //this.paxList = [];\r\n //for (const droppedFile of event.files) {\r\n // ////console.log('DroppedFile :', droppedFile);\r\n // // Is it a file?\r\n // if (droppedFile.fileEntry.isFile) {\r\n // const fileEntry = droppedFile.fileEntry as FileSystemFileEntry;\r\n // fileEntry.file((file: File) => {\r\n\r\n // // Here you can access the real file\r\n // //console.log(droppedFile.relativePath, file);\r\n // //this.uploads.push(file.name);\r\n // //this.doUpload(file);\r\n \r\n // /**\r\n // // You could upload it like this:\r\n // const formData = new FormData()\r\n // formData.append('logo', file, relativePath)\r\n \r\n // // Headers\r\n // const headers = new HttpHeaders({\r\n // 'security-token': 'mytoken'\r\n // })\r\n \r\n // this.http.post('https://mybackend.com/api/upload/sanitize-and-save-logo', formData, { headers: headers, responseType: 'blob' })\r\n // .subscribe(data => {\r\n // // Sanitized logo returned from backend\r\n // })\r\n // **/\r\n\r\n // });\r\n // } else {\r\n // // It was a directory (empty directories are added, otherwise only files)\r\n // const fileEntry = droppedFile.fileEntry as FileSystemDirectoryEntry;\r\n // //console.log('Uploaded folder: ', droppedFile.relativePath, fileEntry);\r\n // }\r\n \r\n //}\r\n }\r\n\r\n public fileOver(event) {\r\n // //console.log('From FileOver:',event);\r\n }\r\n\r\n public fileLeave(event) {\r\n ////console.log('From FileLeave:',event);\r\n }\r\n\r\n //Upload file\r\n\r\n doUpload(fileObj: any, attrs:any = {}) {\r\n \r\n ////console.log('FileObj:', fileObj);\r\n if (fileObj) {\r\n \r\n let result = this.checkFileType(fileObj.name);\r\n \r\n const reader = new FileReader();\r\n\r\n \r\n if (result != -1) {\r\n\r\n let sizeresult = this.checkFileSize(fileObj.size);\r\n\r\n if (sizeresult != -1) {\r\n //this.ref.detectChanges();\r\n \r\n let uploads = [];\r\n reader.removeEventListener\r\n const file_data = new FormData();\r\n reader.onload = () => {\r\n \r\n file_data.append('filestream', reader.result.toString().split(',')[1]);\r\n file_data.append('filename', fileObj.name);\r\n file_data.append('filetype', fileObj.type );\r\n file_data.append('filedescription', 'Pax list upload');\r\n file_data.append('filesize', fileObj.size);\r\n file_data.append('lastname', this.lastName);\r\n file_data.append('filedate', new Date().toLocaleString());\r\n file_data.append('carrierid', this.dataCtrl.compliance.carrierId);\r\n file_data.append('carrierName', this.dataCtrl.compliance.carrierName);\r\n file_data.append('permitid', this.dataCtrl.compliance.permitKey);\r\n file_data.append('doctypid', `${this.docTypeId}`);\r\n file_data.append('calday', this.dataCtrl.cal_date);\r\n file_data.append('tripCat', attrs.tripCat);\r\n file_data.append('tripMass', attrs.tripMass);\r\n file_data.append('tripNPax', attrs.tripNPax);\r\n file_data.append('tripType', attrs.tripType);\r\n file_data.append('tripNum', attrs.tripNum);//To be changed\r\n\r\n this.uploads.push(file_data);\r\n //uploads.push(\r\n // {\r\n // filestream: reader.result.toString().split(',')[1],\r\n\t // filename : fileObj.name,\r\n // filetype : fileObj.type,\r\n // filedescription : 'Pax list upload',\r\n // filesize: fileObj.size,\r\n // tripCat: attrs.tripCat,\r\n // tripMass: attrs.tripMass,\r\n // tripNPax: attrs.tripNPax,\r\n // tripType: attrs.tripType,\r\n // }\r\n //);\r\n //this.onSwitchOnOrOff(true);\r\n //this.documentService.uploadPaxList(file_data).subscribe(resp => {\r\n // //console.log('Response:', resp);\r\n // this.onSwitchOnOrOff();\r\n //}, error => {\r\n // //console.log('Error :', JSON.stringify(error));\r\n // this.onSwitchOnOrOff();\r\n //});\r\n\r\n //var object = {};\r\n //file_data.forEach((value, key) => { object[key] = value });\r\n //var json = JSON.parse(object);\r\n ////console.log('File Data:', object );\r\n ////console.log('File Data:', uploads);\r\n };\r\n reader.readAsDataURL(fileObj);\r\n \r\n }\r\n else {\r\n // this.uploader.nativeElement.value = ''\r\n let allowedFileSize = environment.authWebApi.systemData.Configurations.find(p => p.Code == 'MaxUploadMB1');\r\n // this.dialogService.addDialog(ErrorComponent, { title: 'File Upload Failed, Please try again.', message: `Maximum file size allowed ${allowedFileSize.Value.toString()}MB`, statuscode: '404',url: null, servermessage: \"File size exceeded maximum size\"});\r\n this.notice.error(`Maximum file size allowed ${allowedFileSize.Value.toString()}MB`, 'File Upload Failed, Please try again.');\r\n\r\n\r\n }\r\n\r\n }\r\n else {\r\n let allowedFileTypes = environment.authWebApi.systemData.Configurations.find(p => p.Code == 'UploadDocTypes1');\r\n this.notice.error(`Only these file types are allowed: PDF`, 'File Upload Failed, Please try again.')\r\n }\r\n\r\n //}\r\n\r\n }\r\n\r\n }\r\n\r\n checkFileType(fileName: string) {\r\n // from the file name derive the extension\r\n //let allowedFileTypes = environment.authWebApi.systemData.Configurations.find(p => p.Code == 'UploadDocTypes1');\r\n let fileTypesArray = this.allowedFileTypes.Value.toString().split(',');\r\n //check if file type is \r\n let ext = fileName.split('.')[1].toUpperCase();\r\n let count = fileTypesArray.length;\r\n for (let iter = 0; iter < count; iter++) {\r\n if (fileTypesArray[iter] == ext) return iter;\r\n }\r\n return -1;\r\n }\r\n\r\n checkFileSize(fileSize: number) {\r\n // get the maximum file size \r\n //let allowedFileSize = environment.authWebApi.systemData.Configurations.find(p => p.Code == 'MaxUploadMB1');\r\n let maxAllowedSize = this.allowedFileSize.Value; //it is in MB\r\n let document_sizeMB = (fileSize / 1000000);\r\n if (document_sizeMB <= maxAllowedSize)\r\n return 1;\r\n else return -1;\r\n \r\n }\r\n\r\n changeState = (event) => {\r\n //console.log('Checkbox : ', event.target.checked);\r\n this.hasTrip = event.target.checked;\r\n }\r\n\r\n public processFiles() {\r\n this.uploads = this.transform();\r\n let rCount = 0;\r\n let fCount = 0;\r\n let rSCount = 0;\r\n let fSCount = 0;\r\n let records = [];\r\n //const countAll = 0;\r\n let countCtrl = 0;\r\n this.compList = [];\r\n this.uploads.forEach(item => {\r\n const attrs = {\r\n tripCat: item.tripCat,\r\n tripMass: item.tripMass,\r\n tripNPax: item.tripNPax,\r\n tripType: item.tripType,\r\n tripNum: item.tripNum\r\n };\r\n this.setData(item,attrs)\r\n\r\n });\r\n\r\n ////console.log('Item : ', this.compList);\r\n this.readFile(this.compList);\r\n //const file_data = new FormData();\r\n //file_data.append('uploads', this.compList);\r\n this.onSwitchOnOrOff(true);\r\n const countAll = this.compList.length;\r\n this.compList.forEach(upload => {\r\n countCtrl++;\r\n this.documentService.uploadPaxList(upload).subscribe(resp => {\r\n //console.log('Response:', resp);\r\n this.onSwitchOnOrOff();\r\n \r\n }, error => {\r\n //console.log('Error :', JSON.stringify(error));\r\n this.onSwitchOnOrOff();\r\n });\r\n });\r\n if (countAll == countAll) {\r\n //this.tripForm.patchValue({trips:[]});\r\n this.initForm();\r\n this.uploadFwds = [];\r\n this.uploadRtns = [];\r\n\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n setData(fileObj: any, attrs: any = {}) {\r\n\r\n ////console.log('FileObj:', fileObj);\r\n if (fileObj.tripUploads) {\r\n\r\n let result = this.checkFileType(fileObj.tripUploads.filename);\r\n\r\n \r\n\r\n\r\n if (result != -1) {\r\n\r\n let sizeresult = this.checkFileSize(fileObj.tripUploads.filesize);\r\n\r\n if (sizeresult != -1) {\r\n //this.ref.detectChanges();\r\n\r\n \r\n //const file_data = {\r\n // 'filestream': fileObj.tripUploads.filestream,\r\n // 'filename': fileObj.tripUploads.filename,\r\n // 'filetype': fileObj.tripUploads.filesize.filetype,\r\n // 'filedescription': 'Pax list upload',\r\n // 'filesize': fileObj.tripUploads.filesize,\r\n // 'lastname': this.lastName,\r\n // 'filedate': new Date().toLocaleString(),\r\n // 'carrierid': this.dataCtrl.compliance.carrierId,\r\n // 'carrierName': this.dataCtrl.compliance.carrierName,\r\n // 'permitid': this.dataCtrl.compliance.permitKey,\r\n // 'doctypid': `${this.docTypeId}`,\r\n // 'calday': this.dataCtrl.cal_date,\r\n // 'tripCat': attrs.tripCat,\r\n // 'tripMass': attrs.tripMass,\r\n // 'tripNPax': attrs.tripNPax,\r\n // 'tripType': attrs.tripType,\r\n // 'tripNum': attrs.tripNum\r\n //}\r\n const file_data = new FormData();\r\n \r\n file_data.append('filestream', fileObj.tripUploads.filestream);\r\n file_data.append('filename', fileObj.tripUploads.filename);\r\n file_data.append('filetype', fileObj.tripUploads.filesize.filetype);\r\n file_data.append('filedescription', 'Pax list upload');\r\n file_data.append('filesize', fileObj.tripUploads.filesize);\r\n file_data.append('lastname', this.lastName);\r\n file_data.append('filedate', new Date().toLocaleString());\r\n file_data.append('carrierid', this.dataCtrl.compliance.carrierId);\r\n file_data.append('carrierName', this.dataCtrl.compliance.carrierName);\r\n file_data.append('permitid', this.dataCtrl.compliance.permitKey);\r\n file_data.append('doctypid', `${this.docTypeId}`);\r\n file_data.append('calday', this.dataCtrl.cal_date);\r\n file_data.append('tripCat', attrs.tripCat);\r\n file_data.append('tripMass', attrs.tripMass);\r\n file_data.append('tripNPax', attrs.tripNPax);\r\n file_data.append('tripType', attrs.tripType);\r\n file_data.append('tripNum', attrs.tripNum);//To be changed\r\n\r\n this.compList.push(file_data);\r\n \r\n \r\n\r\n }\r\n else {\r\n // this.uploader.nativeElement.value = ''\r\n let allowedFileSize = environment.authWebApi.systemData.Configurations.find(p => p.Code == 'MaxUploadMB1');\r\n // this.dialogService.addDialog(ErrorComponent, { title: 'File Upload Failed, Please try again.', message: `Maximum file size allowed ${allowedFileSize.Value.toString()}MB`, statuscode: '404',url: null, servermessage: \"File size exceeded maximum size\"});\r\n this.notice.error(`Maximum file size allowed ${allowedFileSize.Value.toString()}MB`, 'File Upload Failed, Please try again.');\r\n\r\n\r\n }\r\n\r\n }\r\n else {\r\n let allowedFileTypes = environment.authWebApi.systemData.Configurations.find(p => p.Code == 'UploadDocTypes1');\r\n this.notice.error(`Only these file types are allowed: PDF`, 'File Upload Failed, Please try again.')\r\n }\r\n\r\n //}\r\n\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n public processFiles1() {\r\n this.uploads.forEach(item => {\r\n for (const droppedFile of item) {\r\n if (droppedFile.fileEntry.isFile) {\r\n const fileEntry = droppedFile.fileEntry as FileSystemFileEntry;\r\n fileEntry.file((file: File) => {\r\n\r\n // Here you can access the real file\r\n ////console.log(droppedFile.relativePath, file);\r\n //this.uploads.push(file.name);\r\n this.doUpload(file);\r\n\r\n\r\n });\r\n } \r\n }\r\n ////console.log('Uploaded files: ', item);\r\n });\r\n //for (const droppedFile of event.files) {\r\n // ////console.log('DroppedFile :', droppedFile);\r\n // // Is it a file?\r\n // if (droppedFile.fileEntry.isFile) {\r\n // const fileEntry = droppedFile.fileEntry as FileSystemFileEntry;\r\n // fileEntry.file((file: File) => {\r\n\r\n // // Here you can access the real file\r\n // //console.log(droppedFile.relativePath, file.name);\r\n // //this.uploads.push(file.name);\r\n // this.doUpload(file);\r\n\r\n\r\n // });\r\n // } else {\r\n // // It was a directory (empty directories are added, otherwise only files)\r\n // const fileEntry = droppedFile.fileEntry as FileSystemDirectoryEntry;\r\n // //console.log('Uploaded folder: ', droppedFile.relativePath, fileEntry);\r\n // }\r\n // return;\r\n //}\r\n }\r\n\r\n\r\n\r\n public processFiles2() {\r\n this.uploads = this.transform();\r\n let rCount = 0;\r\n let fCount = 0;\r\n let rSCount = 0;\r\n let fSCount = 0;\r\n let records = [];\r\n const countAll = this.uploads.length;\r\n let countCtrl = 0;\r\n this.uploads.forEach(item => {\r\n countCtrl++;\r\n (item.tripType == 1) ? fSCount++ : rSCount++;\r\n //if (item.tripUploads) { \r\n //for (const droppedFile of item.tripUploads) {\r\n if (item.tripUploads) {\r\n const droppedFile = item.tripUploads\r\n if (droppedFile.fileEntry.isFile) {\r\n const fileEntry = droppedFile.fileEntry as FileSystemFileEntry;\r\n fileEntry.file((file: File) => {\r\n\r\n // Here you can access the real file\r\n ////console.log(droppedFile.relativePath, file);\r\n //this.uploads.push(file.name);\r\n const attributes = {\r\n tripCat: item.tripCat,\r\n tripMass: item.tripMass,\r\n tripNPax: item.tripNPax,\r\n tripType: item.tripType,\r\n tripNum: item.tripNum\r\n\r\n };\r\n //this.doUpload(file, attributes);\r\n this.preprocess(file, attributes).then(resp => {\r\n records.push(resp);\r\n\r\n if (countAll === countCtrl) {\r\n // //console.log(`Number of records = ${records.length}`);\r\n // let count = 0;\r\n // records.forEach(item => {\r\n // var object = {}; count++;\r\n // item.forEach((value, key) => { object[key] = value });\r\n // //var json = JSON.parse(object);\r\n // //console.log(`Item ${count}:`, object);\r\n\r\n // });\r\n //console.log(`countAll = ${countAll} |countCtrl = ${countCtrl}`);\r\n this.readFile(records);\r\n }\r\n //this.readFile(records);\r\n });\r\n //if (record) {\r\n // records.push(record);\r\n \r\n\r\n \r\n //}\r\n\r\n\r\n });\r\n }\r\n //}\r\n }\r\n else {\r\n if (item.tripType == 1)\r\n rCount++;\r\n else\r\n fCount++;\r\n }\r\n //this.notice.info(\"Please provide at least one file to upload.\",'Compliance trip');\r\n ////console.log('Uploaded files: ', item);\r\n \r\n });\r\n \r\n\r\n //console.log('rCount : ', rCount);\r\n //console.log('fCount : ', fCount);\r\n\r\n //console.log('rSCount : ', rSCount);\r\n //console.log('fSCount : ', fSCount);\r\n }\r\n\r\n\r\n transform = () => {\r\n //console.log('dataCtrl', this.dataCtrl);\r\n const trips = [];\r\n this.tripForm.value.trips.forEach(item => {\r\n if (this.isFreight) {\r\n trips.push({\r\n tripType: item.FType,\r\n tripMass: item.FMass,\r\n tripCat: item.FCat,\r\n tripUploads: item.FUploads,\r\n tripNPax: 0,\r\n tripNum: item.tripNum\r\n\r\n });\r\n\r\n trips.push({\r\n tripType: item.RType,\r\n tripMass: item.RMass,\r\n tripCat: item.RCat,\r\n tripUploads: item.RUploads,\r\n tripNPax: 0,\r\n tripNum: item.tripNum\r\n });\r\n } else {\r\n trips.push({\r\n tripType: item.FType,\r\n tripMass: 0,\r\n tripCat: '',\r\n tripUploads: item.FUploads,\r\n tripNPax: item.RNPax,\r\n tripNum: item.tripNum\r\n\r\n });\r\n\r\n trips.push({\r\n tripType: item.RType,\r\n tripMass: 0,\r\n tripCat: '',\r\n tripUploads: item.RUploads,\r\n tripNPax: item.RNPax,\r\n tripNum: item.tripNum\r\n });\r\n }\r\n\r\n });\r\n\r\n ////console.log('Trip', trips);\r\n return trips;\r\n }\r\n\r\n initFreight = () => {\r\n this.isFreight = !(this.dataCtrl.compliance.freight_passenger_ind == 1);\r\n }\r\n\r\n\r\n //Bulk submission\r\n\r\n preprocess(fileObj: any, attrs: any = {}) {\r\n\r\n ////console.log('FileObj:', fileObj);\r\n\r\n return new Promise((resolve, reject) => {\r\n if (fileObj) {\r\n\r\n let result = this.checkFileType(fileObj.name);\r\n\r\n const reader = new FileReader();\r\n\r\n\r\n if (result != -1) {\r\n\r\n let sizeresult = this.checkFileSize(fileObj.size);\r\n const file_data = new FormData();\r\n if (sizeresult != -1) {\r\n //this.ref.detectChanges();\r\n\r\n let uploads = [];\r\n reader.removeEventListener\r\n \r\n reader.onload = () => {\r\n\r\n file_data.append('filestream', reader.result.toString().split(',')[1]);\r\n file_data.append('filename', fileObj.name);\r\n file_data.append('filetype', fileObj.type);\r\n file_data.append('filedescription', 'Pax list upload');\r\n file_data.append('filesize', fileObj.size);\r\n file_data.append('lastname', this.lastName);\r\n file_data.append('filedate', new Date().toLocaleString());\r\n file_data.append('carrierid', this.dataCtrl.compliance.carrierId);\r\n file_data.append('carrierName', this.dataCtrl.compliance.carrierName);\r\n file_data.append('permitid', this.dataCtrl.compliance.permitKey);\r\n file_data.append('doctypid', `${this.docTypeId}`);\r\n file_data.append('calday', this.dataCtrl.cal_date);\r\n file_data.append('tripCat', attrs.tripCat);\r\n file_data.append('tripMass', attrs.tripMass);\r\n file_data.append('tripNPax', attrs.tripNPax);\r\n file_data.append('tripType', attrs.tripType);\r\n file_data.append('tripNum', attrs.tripNum);//To be changed\r\n\r\n //this.uploads.push(file_data);\r\n resolve(file_data);\r\n \r\n };\r\n reader.onerror = err => reject(err);\r\n reader.readAsDataURL(fileObj);\r\n\r\n //return file_data;\r\n }\r\n \r\n\r\n }\r\n\r\n }\r\n\r\n });\r\n\r\n }\r\n\r\n\r\n readFile(file:any) {\r\n //console.log(`Number of records = ${file.length}`);\r\n let count = 0;\r\n file.forEach(item => {\r\n var object = {}; count++;\r\n //item.forEach((value, key) => { object[key] = value }); \r\n //console.log(`Item ${count}:`, item);\r\n\r\n });\r\n \r\n }\r\n\r\n\r\n\r\n\r\n}\r\n","
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n

\r\n
\r\n \r\n\r\n
\r\n
Depart:
\r\n
Border Post:
\r\n
Border Post:
\r\n
Destination:
\r\n
Num Pax:
\r\n \r\n
\r\n

\r\n
\r\n
\r\n \r\n
\r\n
Depart:
\r\n
Border Post:
\r\n
Border Post:
\r\n
Destination:
\r\n
Num Pax:
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{ item.filename }}\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{ item.filename}}\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-errors',\r\n templateUrl: './errors.component.html',\r\n styleUrls: ['./errors.component.css']\r\n})\r\nexport class ErrorsComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n \"404\"\r\n
\r\n
\r\n

\r\n You have been directed to a page that does not exists. Please use the menu to take you to another page.\r\n

\r\n
\r\n
\r\n \r\n
\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { UtilityServiceService } from 'app/services/utility-service.service';\r\nimport { Router } from '@angular/router';\r\nimport { CarrierService } from 'app/services/carrier.service';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { PopupService } from 'app/services/shared/popup.service';\r\nimport { PermitService } from 'app/services/permit.service';\r\nimport { AuthWebService } from 'app/services/authweb.service';\r\nimport { ApplicationService } from 'app/services/application.service';\r\nimport { environment } from '../../../../src/environments/environment';\r\nimport { accounting } from 'accounting';\r\nimport { ReturnStatement } from '@angular/compiler';\r\nimport { Location } from '@angular/common';\r\nimport { ConfirmDialogService } from 'app/services/shared/confirm-dialog/confirm-dialog.service';\r\n\r\n//import { PrintingComponent } from 'app/approval-manager/printing/printing.component';\r\n\r\n@Component({\r\n selector: 'footer-btn',\r\n templateUrl: './footer-btn.component.html',\r\n styleUrls: ['./footer-btn.component.css']\r\n})\r\nexport class FooterBtnComponent implements OnInit {\r\n\r\n @Input('ctrlData') ctrlData: any;\r\n message: string = 'Processing approval. Please wait...';\r\n isLoading: boolean = false;\r\n showMenuBtn: boolean = false;\r\n username = 'iCBMS System';\r\n permitStatus1: any = 0;\r\n permitStatus2: any = 0;\r\n carrierStatus1:any = 0;\r\n carrierStatus2:any = 0;\r\n\r\n \r\n permitStatus6: number;\r\n permitStatus4: number;\r\n permitStatus7: number;\r\n permitStatus10: number;\r\n permitStatus13: number;\r\n permitStatus14: number;\r\ntype:any;\r\n toastr: any;\r\n permitMFA: any;\r\n aUser: any;\r\n\r\n constructor(private applicationService: ApplicationService, private location: Location,public utility: UtilityServiceService, private router: Router, private carrierService: CarrierService, private notice: ToastrService, private msgService: PopupService, private permitService: PermitService, private authWebService: AuthWebService,\r\n private toaster: ToastrService,private confirmDialogService: ConfirmDialogService) { \r\n this.type = this.utility.permitType\r\n }\r\n\r\n ngOnInit() {\r\n this.utility.initTooltip();\r\n this.username = this.authWebService.userInfo().username;\r\n this.aUser = environment.authWebApi.userData.User;\r\n //console.log(environment.authWebApi.systemData.Configurations);\r\n if (environment.authWebApi.systemData != null && environment.authWebApi.systemData.Configurations != null) {\r\n this.permitStatus1 = environment.authWebApi.systemData.Configurations.find(p => p.Code == 'PermitStatus1').Value;\r\n this.permitStatus2 = environment.authWebApi.systemData.Configurations.find(p => p.Code == 'PermitStatus2').Value;\r\n this.permitStatus4 = environment.authWebApi.systemData.Configurations.find(p => p.Code == 'PermitStatus4').Value;\r\n this.permitStatus6 = environment.authWebApi.systemData.Configurations.find(p => p.Code == 'PermitStatus6').Value;\r\n this.permitStatus7 = environment.authWebApi.systemData.Configurations.find(p => p.Code == 'PermitStatus7').Value;\r\n this.permitStatus10 = environment.authWebApi.systemData.Configurations.find(p => p.Code == 'PermitStatus10').Value;\r\n this.permitStatus13 = environment.authWebApi.systemData.Configurations.find(p => p.Code == 'PermitStatus13').Value;\r\n this.permitStatus14 = environment.authWebApi.systemData.Configurations.find(p => p.Code == 'PermitStatus14').Value;\r\n\r\n\r\n this.carrierStatus1 = environment.authWebApi.systemData.Configurations.find(p => p.Code == 'AccountStatus1').Value;\r\n this.carrierStatus2 = environment.authWebApi.systemData.Configurations.find(p => p.Code == 'AccountStatus2').Value;\r\n\r\n this.permitMFA= environment.authWebApi.systemData.Configurations.find(p => p.Code == 'PermitMFA').Value;\r\n }\r\n\r\n this.getUpdateBalance();\r\n }\r\n\r\n changeView = (activeC: number, action = 0, actionStatus: number) => {\r\n if (this.canActivate(action)) {\r\n // action = 0 (Cancel)\r\n // action = 1 (Additional Info)\r\n // action = 2 (Approve)\r\n // action = 5 (Change Status)\r\n if (action == 2) {\r\n // 2\r\n this.onApproveCarrier();\r\n } else {\r\n // 0 + 1 + 5\r\n this.utility.currentActive = this.ctrlData.currentActive = activeC;\r\n this.ctrlData.action = action;\r\n this.utility.isBtnVisible = true;\r\n this.utility.isView = true;\r\n this.utility.actionStatus = actionStatus; // email template\r\n this.utility.btnAction = action;\r\n if(activeC==3){\r\n // 1 + 5\r\n this.router.navigate(['carrier/approval/correspondence']);\r\n }else{\r\n // 0\r\n this.router.navigate(['account/approval']);\r\n }\r\n }\r\n } else {\r\n // action = 3 (Escalate)\r\n // action = 4 (Update)\r\n }\r\n }\r\n\r\n showMenu(dropdown) {\r\n this.showMenuBtn = !this.showMenuBtn\r\n }\r\n\r\n navigateUrl(path) {\r\n this.location.back();\r\n }\r\n\r\n navigateUrlId(path, actionStatus: number, action: number) {\r\n\r\n // this.applicationService.getById(this.utility.permitAppId).subscribe(data => {\r\n // this.permitService.UpdatePermitNum(this.utility.permitAppId).subscribe(data => {\r\n // });\r\n // });\r\n //console.log(JSON.stringify(this.utility.permitAppId) + \"=======================================================\");\r\n //console.log(path + \"=======================================================\");\r\n\r\n \r\n if (this.canActivate(action)) {\r\n if (action == 2) {\r\n this.ctrlData.action = action;\r\n this.utility.btnAction = action;\r\n let statusId: any = this.utility.permitStatusId;\r\n let carrierStatusId=this.utility.carrierStatusId;\r\n\r\n if(statusId === 51){\r\n this.toaster.warning('Permit already approved!');\r\n return false;\r\n }\r\n if(carrierStatusId < 51){\r\n this.toaster.warning('You may not approve the application as the carrier is not approved.');\r\n return false;\r\n }\r\n if(carrierStatusId >= 91){\r\n this.toaster.warning('You may not approve the application as the carrier is rejected or non-compliant.');\r\n return false;\r\n }\r\n // if (statusId >= parseInt(this.permitStatus1) && statusId <= parseInt(this.permitStatus2)) {\r\n // if (statusId >= 41 && statusId <= 51) {\r\n \r\n if ((statusId == this.permitStatus2 || statusId == 74)) {\r\n this.isLoading = true;\r\n this.applicationService.getById(this.utility.permitAppId).subscribe((app:any) => {\r\n if (app.vehicle.length != 0) { \r\n this.onApprovePermit();\r\n }\r\n else {\r\n this.toaster.warning('A permit may not be approved without a vehicle.', `Approval Denied`);\r\n }\r\n this.isLoading = false;\r\n } , error => {\r\n this.isLoading = false;\r\n });\r\n \r\n } else {\r\n this.toaster.warning(`Only applications in \"Submitted\" status can be approved.`, `Approval Denied`);\r\n }\r\n\r\n\r\n } else {\r\n this.utility.actionStatus = actionStatus;\r\n this.ctrlData.action = action;\r\n this.utility.btnAction = action;\r\n this.router.navigate([path, this.utility.permitAppId]);\r\n }\r\n\r\n }\r\n //console.log('CarrierId = ', this.utility.carrierId);\r\n //console.log('Active = ', this.utility.currentActive);\r\n }\r\n\r\n canActivate = (action: number) => {\r\n return ((action == 0) || (action == 1) || (action == 2) || (action == 5));\r\n }\r\n\r\n\r\n onApproveCarrier = () => {\r\n //console.log(this.utility);\r\n if(this.utility.carrierObject.data.status_id === 93){\r\n return this.toaster.info('Account already rejected!');\r\n }\r\n\r\n if(this.utility.carrierObject.data.status_id === 999){\r\n return this.toaster.info('Cannot approve inactive account!');\r\n }\r\n\r\n if(this.utility.carrierObject.data.status_id === 51){\r\n return this.toaster.info('Account already approved!');\r\n }\r\n if (this.utility.carrierId > 0) {\r\n // this.msgService.showYesNo('Approve Carrier Account', `Are you sure you want to approve carrier account ${this.utility.carrierName}?`, 'An email will be sent to the applicant.').subscribe(isConfirmed => {\r\n // if (isConfirmed) {\r\n // this.message = 'Processing carrier account approval, please wait...';\r\n // this.isLoading = true;\r\n // this.carrierService.approveAccountAndSendNotification(this.utility.carrierId, this.username).subscribe((resp:any) => {\r\n // if (resp.IsSent) {\r\n // this.notice.success(`Carrier account ${this.utility.carrierName} approved and notification will be sent shortly.`, \"Approve Carrier Account\", { timeOut: 5000 });\r\n // this.utility.isView = true;\r\n // this.utility.currentActive = 1;\r\n // this.router.navigate(['account/approval']);\r\n // }\r\n // else\r\n // this.notice.info(\"A problem occured while processing your request. Please try again later.\", \"Approve Carrier Account\", { timeOut: 5000 });\r\n // this.isLoading = false;\r\n // }, error => {\r\n // this.isLoading = false;\r\n // });\r\n // }\r\n // })\r\n this.confirmDialogService.confirmThis(`Are you sure you want to approve carrier account ${this.utility.carrierName}? An email will be sent to the applicant.`, () => { \r\n this.message = 'Processing carrier account approval, please wait...';\r\n this.isLoading = true;\r\n this.carrierService.approveAccountAndSendNotification(this.utility.carrierId, this.username).subscribe((resp:any) => {\r\n if (resp.IsSent) {\r\n this.notice.success(`Carrier account ${this.utility.carrierName} approved and notification will be sent shortly.`, \"Approve Carrier Account\", { timeOut: 5000 });\r\n this.utility.isView = true;\r\n this.utility.currentActive = 1;\r\n this.router.navigate(['account/approval']);\r\n }\r\n else\r\n this.notice.info(\"A problem occured while processing your request. Please try again later.\", \"Approve Carrier Account\", { timeOut: 5000 });\r\n this.isLoading = false;\r\n }, error => {\r\n this.isLoading = false;\r\n });\r\n\r\n \r\n }, () => { \r\n //No here\r\n }) \r\n\r\n } else {\r\n this.notice.info(\"A problem occured while processing your request. Please try again later.\", \"Approve Carrier Account\", { timeOut: 5000 });\r\n }\r\n\r\n }\r\n\r\n \r\n\r\n formatCurrency(value) {\r\n return accounting.formatMoney(value, 'R', 2, ' ', '.');\r\n }\r\n\r\n getUpdateBalance() {\r\n \r\n this.carrierService.getById(this.utility.carrierId).subscribe((carr:any) => {\r\n if(carr != null && carr != undefined)\r\n {\r\n this.carrierService.getUpdateBalance(carr.carrier_account_id).subscribe(res => {\r\n \r\n });\r\n }\r\n });\r\n}\r\n\r\nsetApplicationLock(application,lockStatus)\r\n {\r\n application.isLocked = lockStatus; \r\n application.isLockedBy = lockStatus? this.authWebService.userData.User.UserName : \"\";\r\n \r\n this.applicationService.putApplication(application).subscribe((r)=>\r\n {\r\n if(lockStatus)\r\n {\r\n this.notice.info(\"Application Locked By '\" + application.isLockedBy + \"'\", \"Lock Application\", { timeOut: 1000 });\r\n }\r\n else\r\n {\r\n this.notice.info(\"Application Unlocked\", \"UnLock Application\", { timeOut: 1000 });\r\n }\r\n }, error=>{\r\n \r\n });\r\n }\r\n\r\n onApprovePermit = () => {\r\n\r\n if ((this.utility.carrierId > 0) && (this.utility.permitAppId > 0)) {\r\n let msg:any=\"\";\r\n if(this.utility.permitFreightId==1){\r\n msg=\"Permit Approval\";\r\n }else{\r\n msg=\"Permit Approval\";\r\n }\r\n \r\n // this.msgService.showYesNo(msg, `Are you sure you want to approve this permit?`, 'An email will be sent to the applicant.').subscribe(isConfirmed => {\r\n // if (isConfirmed) {\r\n\r\n // this.getUpdateBalance();\r\n\r\n // this.message = 'Processing approval. Please wait...';\r\n // this.isLoading = true; \r\n\r\n // this.permitService.approvePermitAndSendNotification(this.utility.carrierId, this.utility.permitAppId, this.username).subscribe((resp:any) => {\r\n // if (resp.IsSent && resp.InvoiceCreated) {\r\n // //this.notice.success(`Permit approved and notification will be sent shortly.`, msg , { timeOut: 5000 });\r\n \r\n // //Lock the application on approve\r\n // this.applicationService.getApplicationByAppId(this.utility.permitAppId).subscribe(app=>{\r\n // this.setApplicationLock(app, true);\r\n // });\r\n // this.msgService.showYesNo(msg, `Permit approved and notification will be sent shortly`, 'Would you like to Print this permit?').subscribe(isConfirmed => {\r\n // this.utility.isView = true;\r\n // this.getUpdateBalance();\r\n // if (isConfirmed) {\r\n // this.utility.isView = true;\r\n // this.router.navigateByUrl('/permit/approval/printing/'+this.utility.permitAppId +'/true') ;\r\n // }\r\n // else\r\n // {\r\n // this.navigateUrl('/permit/approval');\r\n // }\r\n // });\r\n \r\n // // this.utility.isView = true;\r\n // // this.getUpdateBalance();\r\n \r\n // }\r\n // else if (!resp.IsSent)\r\n // {\r\n // if(resp.Message == 'InsufficientBalance')\r\n // {\r\n // this.notice.error(\"The Carrier has an insufficient balance in their account, you cannot proceed to approve this permit application.\", msg, { timeOut: 5000 });\r\n // //return;\r\n // }\r\n // else\r\n // if(resp.Message == 'ZeroBalance')\r\n // {\r\n // this.notice.error(\"The Carrier has no Sufficient Funds in their Account, you cannot proceed to approve this permit application.\", msg, { timeOut: 5000 });\r\n // //return;\r\n // } \r\n // else\r\n // {\r\n // this.notice.error(resp.Message, msg, { timeOut: 5000 });\r\n // } \r\n // }\r\n // else if(!resp.InvoiceCreated)\r\n // {\r\n // this.notice.error(resp.Message + '; \\n Please notify administrator!', msg, { timeOut: 5000 });\r\n // }\r\n // else\r\n // this.notice.info(\"A problem occured while processing your request. Please try again later.\" + resp.Message, msg, { timeOut: 5000 });\r\n // this.isLoading = false;\r\n // }, error => {\r\n // this.isLoading = false;\r\n // });\r\n // }\r\n // })\r\n this.confirmDialogService.confirmThis(`Are you sure you want to approve this permit? An email will be sent to the applicant.`, () => { \r\n\r\n //check if otp is configured\r\n this.EnvokeOTP(msg);\r\n\r\n\r\n \r\n }, () => { \r\n //No here\r\n })\r\n\r\n } else {\r\n this.notice.info(\"A problem occured while processing your request. Please try again later.\", \"Temporary Permit Approval\", { timeOut: 5000 });\r\n }\r\n\r\n }\r\n\r\n EnvokeOTP(msg){\r\n \r\n // if(this.permitMFA ==\"true\")\r\n // {\r\n // let OtpMessage = document.getElementById('OtpMessage');\r\n // this.isLoading = true;\r\n // let userObj = Object.create(this.aUser);\r\n // userObj.Id = this.aUser.Id;\r\n // userObj.EmailAddress = this.aUser.EmailAddress;\r\n // userObj.MobileNumber = this.aUser.MobileNumber;\r\n // userObj.DialCodeMobile = this.aUser.DialCodeMobile;\r\n // userObj.CommunicationType = this.aUser.CommunicationType;\r\n // userObj.SysCode = \"ICBMS\";\r\n\r\n // if(userObj.CommunicationType== \"SMS\")\r\n // {\r\n // OtpMessage.innerHTML = \"We have sent the verification code to your mobile number.\";\r\n // }else\r\n // {\r\n // OtpMessage.innerHTML = \"We have sent the verification code to your email address.\";\r\n // }\r\n\r\n // this.authWebService.webrequest('POST','UserService', 'RequestOtp', userObj).then((data)=>{\r\n // if(data.success==true)\r\n // {\r\n // //show otp pop up\r\n // document.getElementById('secretButton').click();\r\n // this.isLoading = false;\r\n // }\r\n // }\r\n // , error=>{\r\n \r\n // });\r\n\r\n // }\r\n // else {\r\n this.getUpdateBalance();\r\n\r\n this.message = 'Processing approval. Please wait...';\r\n this.isLoading = true; \r\n\r\n this.permitService.approvePermitAndSendNotification(this.utility.carrierId, this.utility.permitAppId, this.username).subscribe((resp:any) => {\r\n if (resp.IsSent && resp.InvoiceCreated) {\r\n //this.notice.success(`Permit approved and notification will be sent shortly.`, msg , { timeOut: 5000 });\r\n \r\n //Lock the application on approve\r\n this.applicationService.getApplicationByAppId(this.utility.permitAppId).subscribe(app=>{\r\n this.setApplicationLock(app, true);\r\n });\r\n \r\n this.confirmDialogService.confirmThis(msg + `Permit approved and notification will be sent shortly. Would you like to Print this permit?`, () => { \r\n this.utility.isView = true;\r\n this.getUpdateBalance();\r\n this.utility.isView = true;\r\n this.router.navigateByUrl('/permit/approval/printing/'+this.utility.permitAppId +'/true') ;\r\n \r\n }, () => { \r\n this.navigateUrl('/permit/approval');\r\n })\r\n \r\n // this.utility.isView = true;\r\n // this.getUpdateBalance();\r\n \r\n }\r\n else if (!resp.IsSent)\r\n {\r\n if(resp.Message == 'InsufficientBalance')\r\n {\r\n this.notice.error(\"The Carrier has an insufficient balance in their account, you cannot proceed to approve this permit application.\", msg, { timeOut: 5000 });\r\n //return;\r\n }\r\n else\r\n if(resp.Message == 'ZeroBalance')\r\n {\r\n this.notice.error(\"The Carrier has no Sufficient Funds in their Account, you cannot proceed to approve this permit application.\", msg, { timeOut: 5000 });\r\n //return;\r\n } \r\n else\r\n {\r\n this.notice.error(resp.Message, msg, { timeOut: 5000 });\r\n } \r\n }\r\n else if(!resp.InvoiceCreated)\r\n {\r\n this.notice.error(resp.Message + '; \\n Please notify administrator!', msg, { timeOut: 5000 });\r\n }\r\n else\r\n this.notice.info(\"A problem occured while processing your request. Please try again later.\" + resp.Message, msg, { timeOut: 5000 });\r\n this.isLoading = false;\r\n }, error => {\r\n this.isLoading = false;\r\n });\r\n //}\r\n\r\n }\r\n\r\n\r\n verifyOtp(){\r\n const OtpCode = document.getElementById('OTPCode') as HTMLInputElement | null;\r\n\t\tlet Otp = OtpCode.value;\r\n\t\t\r\n this.aUser.Otp = Otp;\r\n\r\n if ((this.utility.carrierId > 0) && (this.utility.permitAppId > 0)) {\r\n let msg:any=\"\";\r\n if(this.utility.permitFreightId==1){\r\n msg=\"Permit Approval\";\r\n }else{\r\n msg=\"Permit Approval\";\r\n }\r\n\r\n\r\n\t\tthis.authWebService.webrequest('POST','UserService', 'ValidateOtp', JSON.stringify(this.aUser)).then((ur) => {\r\n\t\t\t//if otp is valid, update the user details\r\n\t\t\tthis.getUpdateBalance();\r\n\r\n this.message = 'Processing approval. Please wait...';\r\n this.isLoading = true; \r\n\r\n this.permitService.approvePermitAndSendNotification(this.utility.carrierId, this.utility.permitAppId, this.username).subscribe((resp:any) => {\r\n if (resp.IsSent && resp.InvoiceCreated) {\r\n //this.notice.success(`Permit approved and notification will be sent shortly.`, msg , { timeOut: 5000 });\r\n \r\n //Lock the application on approve\r\n this.applicationService.getApplicationByAppId(this.utility.permitAppId).subscribe(app=>{\r\n this.setApplicationLock(app, true);\r\n });\r\n this.confirmDialogService.confirmThis(msg + `Permit approved and notification will be sent shortly. Would you like to Print this permit?`, () => { \r\n this.utility.isView = true;\r\n this.getUpdateBalance();\r\n this.utility.isView = true;\r\n this.router.navigateByUrl('/permit/approval/printing/'+this.utility.permitAppId +'/true') ;\r\n \r\n }, () => { \r\n this.navigateUrl('/permit/approval');\r\n })\r\n \r\n }\r\n else if (!resp.IsSent)\r\n {\r\n if(resp.Message == 'InsufficientBalance')\r\n {\r\n this.notice.error(\"The Carrier has an insufficient balance in their account, you cannot proceed to approve this permit application.\", msg, { timeOut: 5000 });\r\n //return;\r\n }\r\n else\r\n if(resp.Message == 'ZeroBalance')\r\n {\r\n this.notice.error(\"The Carrier has no Sufficient Funds in their Account, you cannot proceed to approve this permit application.\", msg, { timeOut: 5000 });\r\n //return;\r\n } \r\n else\r\n {\r\n this.notice.error(resp.Message, msg, { timeOut: 5000 });\r\n } \r\n }\r\n else if(!resp.InvoiceCreated)\r\n {\r\n this.notice.error(resp.Message + '; \\n Please notify administrator!', msg, { timeOut: 5000 });\r\n }\r\n else\r\n this.notice.info(\"A problem occured while processing your request. Please try again later.\" + resp.Message, msg, { timeOut: 5000 });\r\n this.isLoading = false;\r\n }, error => {\r\n this.isLoading = false;\r\n });\r\n\t\t}, (error) => {\r\n this.notice.error('Invalid OTP', error.message, { timeOut: 5000 });\r\n\t\t});\r\n\r\n\t\t\r\n }\r\n}\r\n}\r\n","\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Cancel\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Additional info\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Approve\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Change status\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n

\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n","import { CountryISO } from '../enums/country-iso.enum';\r\nimport { Injectable } from \"@angular/core\";\r\n\r\n@Injectable()\r\nexport class CountryCode {\r\n\tpublic allCountries = [\r\n\t\t[\r\n\t\t\t'Afghanistan (‫افغانستان‬‎)',\r\n\t\t\tCountryISO.Afghanistan,\r\n\t\t\t'93'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Albania (Shqipëri)',\r\n\t\t\tCountryISO.Albania,\r\n\t\t\t'355'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Algeria (‫الجزائر‬‎)',\r\n\t\t\tCountryISO.Algeria,\r\n\t\t\t'213'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'American Samoa',\r\n\t\t\t'as',\r\n\t\t\t'1',\r\n\t\t\t1,\r\n\t\t\t[\r\n\t\t\t\t'684',\r\n\t\t\t]\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Andorra',\r\n\t\t\tCountryISO.Andorra,\r\n\t\t\t'376'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Angola',\r\n\t\t\tCountryISO.Angola,\r\n\t\t\t'244'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Anguilla',\r\n\t\t\t'ai',\r\n\t\t\t'1',\r\n\t\t\t1,\r\n\t\t\t[\r\n\t\t\t\t'264',\r\n\t\t\t]\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Antigua and Barbuda',\r\n\t\t\t'ag',\r\n\t\t\t'1',\r\n\t\t\t1,\r\n\t\t\t[\r\n\t\t\t\t'268',\r\n\t\t\t]\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Argentina',\r\n\t\t\tCountryISO.Argentina,\r\n\t\t\t'54'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Armenia (Հայաստան)',\r\n\t\t\tCountryISO.Armenia,\r\n\t\t\t'374'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Aruba',\r\n\t\t\tCountryISO.Aruba,\r\n\t\t\t'297'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Australia',\r\n\t\t\tCountryISO.Australia,\r\n\t\t\t'61',\r\n\t\t\t0\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Austria (Österreich)',\r\n\t\t\tCountryISO.Austria,\r\n\t\t\t'43'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Azerbaijan (Azərbaycan)',\r\n\t\t\tCountryISO.Azerbaijan,\r\n\t\t\t'994'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Bahamas',\r\n\t\t\t'bs',\r\n\t\t\t'1',\r\n\t\t\t1,\r\n\t\t\t[\r\n\t\t\t\t'242',\r\n\t\t\t]\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Bahrain (‫البحرين‬‎)',\r\n\t\t\tCountryISO.Bahrain,\r\n\t\t\t'973'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Bangladesh (বাংলাদেশ)',\r\n\t\t\tCountryISO.Bangladesh,\r\n\t\t\t'880'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Barbados',\r\n\t\t\t'bb',\r\n\t\t\t'1',\r\n\t\t\t1,\r\n\t\t\t[\r\n\t\t\t\t'246',\r\n\t\t\t]\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Belarus (Беларусь)',\r\n\t\t\tCountryISO.Belarus,\r\n\t\t\t'375'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Belgium (België)',\r\n\t\t\tCountryISO.Belgium,\r\n\t\t\t'32'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Belize',\r\n\t\t\tCountryISO.Belize,\r\n\t\t\t'501'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Benin (Bénin)',\r\n\t\t\tCountryISO.Benin,\r\n\t\t\t'229'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Bermuda',\r\n\t\t\t'bm',\r\n\t\t\t'1',\r\n\t\t\t1,\r\n\t\t\t[\r\n\t\t\t\t'441',\r\n\t\t\t]\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Bhutan (འབྲུག)',\r\n\t\t\tCountryISO.Bhutan,\r\n\t\t\t'975'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Bolivia',\r\n\t\t\tCountryISO.Bolivia,\r\n\t\t\t'591'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Bosnia and Herzegovina (Босна и Херцеговина)',\r\n\t\t\tCountryISO.BosniaAndHerzegovina,\r\n\t\t\t'387'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Botswana',\r\n\t\t\tCountryISO.Botswana,\r\n\t\t\t'267'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Brazil (Brasil)',\r\n\t\t\tCountryISO.Brazil,\r\n\t\t\t'55'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'British Indian Ocean Territory',\r\n\t\t\tCountryISO.BritishIndianOceanTerritory,\r\n\t\t\t'246'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'British Virgin Islands',\r\n\t\t\t'vg',\r\n\t\t\t'1',\r\n\t\t\t1,\r\n\t\t\t[\r\n\t\t\t\t'284',\r\n\t\t\t]\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Brunei',\r\n\t\t\tCountryISO.Brunei,\r\n\t\t\t'673'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Bulgaria (България)',\r\n\t\t\tCountryISO.Bulgaria,\r\n\t\t\t'359'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Burkina Faso',\r\n\t\t\tCountryISO.BurkinaFaso,\r\n\t\t\t'226'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Burundi (Uburundi)',\r\n\t\t\tCountryISO.Burundi,\r\n\t\t\t'257'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Cambodia (កម្ពុជា)',\r\n\t\t\tCountryISO.Cambodia,\r\n\t\t\t'855'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Cameroon (Cameroun)',\r\n\t\t\tCountryISO.Cameroon,\r\n\t\t\t'237'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Canada',\r\n\t\t\tCountryISO.Canada,\r\n\t\t\t'1',\r\n\t\t\t1,\r\n\t\t\t[\r\n\t\t\t\t'204', '226', '236', '249', '250', '289', '306', '343', '365', '387', '403', '416',\r\n\t\t\t\t'418', '431', '437', '438', '450', '506', '514', '519', '548', '579', '581', '587',\r\n\t\t\t\t'604', '613', '639', '647', '672', '705', '709', '742', '778', '780', '782', '807',\r\n\t\t\t\t'819', '825', '867', '873', '902', '905'\r\n\t\t\t]\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Cape Verde (Kabu Verdi)',\r\n\t\t\tCountryISO.CapeVerde,\r\n\t\t\t'238'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Caribbean Netherlands',\r\n\t\t\tCountryISO.CaribbeanNetherlands,\r\n\t\t\t'599',\r\n\t\t\t1\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Cayman Islands',\r\n\t\t\t'ky',\r\n\t\t\t'1',\r\n\t\t\t1,\r\n\t\t\t[\r\n\t\t\t\t'345',\r\n\t\t\t]\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Central African Republic (République centrafricaine)',\r\n\t\t\tCountryISO.CentralAfricanRepublic,\r\n\t\t\t'236'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Chad (Tchad)',\r\n\t\t\tCountryISO.Chad,\r\n\t\t\t'235'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Chile',\r\n\t\t\tCountryISO.Chile,\r\n\t\t\t'56'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'China (中国)',\r\n\t\t\tCountryISO.China,\r\n\t\t\t'86'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Christmas Island',\r\n\t\t\tCountryISO.ChristmasIsland,\r\n\t\t\t'61',\r\n\t\t\t2\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Cocos (Keeling) Islands',\r\n\t\t\tCountryISO.Cocos,\r\n\t\t\t'61',\r\n\t\t\t1\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Colombia',\r\n\t\t\tCountryISO.Colombia,\r\n\t\t\t'57'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Comoros (‫جزر القمر‬‎)',\r\n\t\t\tCountryISO.Comoros,\r\n\t\t\t'269'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Congo (DRC) (Jamhuri ya Kidemokrasia ya Kongo)',\r\n\t\t\tCountryISO.CongoDRCJamhuriYaKidemokrasiaYaKongo,\r\n\t\t\t'243'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Congo (Republic) (Congo-Brazzaville)',\r\n\t\t\tCountryISO.CongoRepublicCongoBrazzaville,\r\n\t\t\t'242'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Cook Islands',\r\n\t\t\tCountryISO.CookIslands,\r\n\t\t\t'682'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Costa Rica',\r\n\t\t\tCountryISO.CostaRica,\r\n\t\t\t'506'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Côte d’Ivoire',\r\n\t\t\tCountryISO.CôteDIvoire,\r\n\t\t\t'225'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Croatia (Hrvatska)',\r\n\t\t\tCountryISO.Croatia,\r\n\t\t\t'385'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Cuba',\r\n\t\t\tCountryISO.Cuba,\r\n\t\t\t'53'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Curaçao',\r\n\t\t\tCountryISO.Curaçao,\r\n\t\t\t'599',\r\n\t\t\t0\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Cyprus (Κύπρος)',\r\n\t\t\tCountryISO.Cyprus,\r\n\t\t\t'357'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Czech Republic (Česká republika)',\r\n\t\t\tCountryISO.CzechRepublic,\r\n\t\t\t'420'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Denmark (Danmark)',\r\n\t\t\tCountryISO.Denmark,\r\n\t\t\t'45'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Djibouti',\r\n\t\t\tCountryISO.Djibouti,\r\n\t\t\t'253'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Dominica',\r\n\t\t\tCountryISO.Dominica,\r\n\t\t\t'1767'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Dominican Republic (República Dominicana)',\r\n\t\t\tCountryISO.DominicanRepublic,\r\n\t\t\t'1',\r\n\t\t\t2,\r\n\t\t\t['809', '829', '849']\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Ecuador',\r\n\t\t\tCountryISO.Ecuador,\r\n\t\t\t'593'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Egypt (‫مصر‬‎)',\r\n\t\t\tCountryISO.Egypt,\r\n\t\t\t'20'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'El Salvador',\r\n\t\t\tCountryISO.ElSalvador,\r\n\t\t\t'503'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Equatorial Guinea (Guinea Ecuatorial)',\r\n\t\t\tCountryISO.EquatorialGuinea,\r\n\t\t\t'240'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Eritrea',\r\n\t\t\tCountryISO.Eritrea,\r\n\t\t\t'291'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Estonia (Eesti)',\r\n\t\t\tCountryISO.Estonia,\r\n\t\t\t'372'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Ethiopia',\r\n\t\t\tCountryISO.Ethiopia,\r\n\t\t\t'251'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Falkland Islands (Islas Malvinas)',\r\n\t\t\tCountryISO.FalklandIslands,\r\n\t\t\t'500'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Faroe Islands (Føroyar)',\r\n\t\t\tCountryISO.FaroeIslands,\r\n\t\t\t'298'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Fiji',\r\n\t\t\tCountryISO.Fiji,\r\n\t\t\t'679'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Finland (Suomi)',\r\n\t\t\tCountryISO.Finland,\r\n\t\t\t'358',\r\n\t\t\t0\r\n\t\t],\r\n\t\t[\r\n\t\t\t'France',\r\n\t\t\tCountryISO.France,\r\n\t\t\t'33'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'French Guiana (Guyane française)',\r\n\t\t\tCountryISO.FrenchGuiana,\r\n\t\t\t'594'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'French Polynesia (Polynésie française)',\r\n\t\t\tCountryISO.FrenchPolynesia,\r\n\t\t\t'689'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Gabon',\r\n\t\t\tCountryISO.Gabon,\r\n\t\t\t'241'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Gambia',\r\n\t\t\tCountryISO.Gambia,\r\n\t\t\t'220'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Georgia (საქართველო)',\r\n\t\t\tCountryISO.Georgia,\r\n\t\t\t'995'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Germany (Deutschland)',\r\n\t\t\tCountryISO.Germany,\r\n\t\t\t'49'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Ghana (Gaana)',\r\n\t\t\tCountryISO.Ghana,\r\n\t\t\t'233'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Gibraltar',\r\n\t\t\tCountryISO.Gibraltar,\r\n\t\t\t'350'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Greece (Ελλάδα)',\r\n\t\t\tCountryISO.Greece,\r\n\t\t\t'30'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Greenland (Kalaallit Nunaat)',\r\n\t\t\tCountryISO.Greenland,\r\n\t\t\t'299'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Grenada',\r\n\t\t\tCountryISO.Grenada,\r\n\t\t\t'1473'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Guadeloupe',\r\n\t\t\tCountryISO.Guadeloupe,\r\n\t\t\t'590',\r\n\t\t\t0\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Guam',\r\n\t\t\t'gu',\r\n\t\t\t'1',\r\n\t\t\t1,\r\n\t\t\t[\r\n\t\t\t\t'671',\r\n\t\t\t]\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Guatemala',\r\n\t\t\tCountryISO.Guatemala,\r\n\t\t\t'502'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Guernsey',\r\n\t\t\tCountryISO.Guernsey,\r\n\t\t\t'44',\r\n\t\t\t1,\r\n\t\t\t[1481]\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Guinea (Guinée)',\r\n\t\t\tCountryISO.Guinea,\r\n\t\t\t'224'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Guinea-Bissau (Guiné Bissau)',\r\n\t\t\tCountryISO.GuineaBissau,\r\n\t\t\t'245'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Guyana',\r\n\t\t\tCountryISO.Guyana,\r\n\t\t\t'592'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Haiti',\r\n\t\t\tCountryISO.Haiti,\r\n\t\t\t'509'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Honduras',\r\n\t\t\tCountryISO.Honduras,\r\n\t\t\t'504'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Hong Kong (香港)',\r\n\t\t\tCountryISO.HongKong,\r\n\t\t\t'852'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Hungary (Magyarország)',\r\n\t\t\tCountryISO.Hungary,\r\n\t\t\t'36'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Iceland (Ísland)',\r\n\t\t\tCountryISO.Iceland,\r\n\t\t\t'354'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'India (भारत)',\r\n\t\t\tCountryISO.India,\r\n\t\t\t'91'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Indonesia',\r\n\t\t\tCountryISO.Indonesia,\r\n\t\t\t'62'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Iran (‫ایران‬‎)',\r\n\t\t\tCountryISO.Iran,\r\n\t\t\t'98'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Iraq (‫العراق‬‎)',\r\n\t\t\tCountryISO.Iraq,\r\n\t\t\t'964'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Ireland',\r\n\t\t\tCountryISO.Ireland,\r\n\t\t\t'353'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Isle of Man',\r\n\t\t\tCountryISO.IsleOfMan,\r\n\t\t\t'44',\r\n\t\t\t2,\r\n\t\t\t[1624]\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Israel (‫ישראל‬‎)',\r\n\t\t\tCountryISO.Israel,\r\n\t\t\t'972'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Italy (Italia)',\r\n\t\t\tCountryISO.Italy,\r\n\t\t\t'39',\r\n\t\t\t0\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Jamaica',\r\n\t\t\t'jm',\r\n\t\t\t'1',\r\n\t\t\t1,\r\n\t\t\t[\r\n\t\t\t\t'876',\r\n\t\t\t]\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Japan (日本)',\r\n\t\t\tCountryISO.Japan,\r\n\t\t\t'81'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Jersey',\r\n\t\t\tCountryISO.Jersey,\r\n\t\t\t'44',\r\n\t\t\t3,\r\n\t\t\t[1534]\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Jordan (‫الأردن‬‎)',\r\n\t\t\tCountryISO.Jordan,\r\n\t\t\t'962'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Kazakhstan (Казахстан)',\r\n\t\t\tCountryISO.Kazakhstan,\r\n\t\t\t'7',\r\n\t\t\t1\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Kenya',\r\n\t\t\tCountryISO.Kenya,\r\n\t\t\t'254'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Kiribati',\r\n\t\t\tCountryISO.Kiribati,\r\n\t\t\t'686'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Kosovo',\r\n\t\t\tCountryISO.Kosovo,\r\n\t\t\t'383'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Kuwait (‫الكويت‬‎)',\r\n\t\t\tCountryISO.Kuwait,\r\n\t\t\t'965'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Kyrgyzstan (Кыргызстан)',\r\n\t\t\tCountryISO.Kyrgyzstan,\r\n\t\t\t'996'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Laos (ລາວ)',\r\n\t\t\tCountryISO.Laos,\r\n\t\t\t'856'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Latvia (Latvija)',\r\n\t\t\tCountryISO.Latvia,\r\n\t\t\t'371'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Lebanon (‫لبنان‬‎)',\r\n\t\t\tCountryISO.Lebanon,\r\n\t\t\t'961'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Lesotho',\r\n\t\t\tCountryISO.Lesotho,\r\n\t\t\t'266'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Liberia',\r\n\t\t\tCountryISO.Liberia,\r\n\t\t\t'231'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Libya (‫ليبيا‬‎)',\r\n\t\t\tCountryISO.Libya,\r\n\t\t\t'218'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Liechtenstein',\r\n\t\t\tCountryISO.Liechtenstein,\r\n\t\t\t'423'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Lithuania (Lietuva)',\r\n\t\t\tCountryISO.Lithuania,\r\n\t\t\t'370'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Luxembourg',\r\n\t\t\tCountryISO.Luxembourg,\r\n\t\t\t'352'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Macau (澳門)',\r\n\t\t\tCountryISO.Macau,\r\n\t\t\t'853'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Macedonia (FYROM) (Македонија)',\r\n\t\t\tCountryISO.Macedonia,\r\n\t\t\t'389'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Madagascar (Madagasikara)',\r\n\t\t\tCountryISO.Madagascar,\r\n\t\t\t'261'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Malawi',\r\n\t\t\tCountryISO.Malawi,\r\n\t\t\t'265'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Malaysia',\r\n\t\t\tCountryISO.Malaysia,\r\n\t\t\t'60'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Maldives',\r\n\t\t\tCountryISO.Maldives,\r\n\t\t\t'960'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Mali',\r\n\t\t\tCountryISO.Mali,\r\n\t\t\t'223'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Malta',\r\n\t\t\tCountryISO.Malta,\r\n\t\t\t'356'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Marshall Islands',\r\n\t\t\tCountryISO.MarshallIslands,\r\n\t\t\t'692'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Martinique',\r\n\t\t\tCountryISO.Martinique,\r\n\t\t\t'596'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Mauritania (‫موريتانيا‬‎)',\r\n\t\t\tCountryISO.Mauritania,\r\n\t\t\t'222'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Mauritius (Moris)',\r\n\t\t\tCountryISO.Mauritius,\r\n\t\t\t'230'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Mayotte',\r\n\t\t\tCountryISO.Mayotte,\r\n\t\t\t'262',\r\n\t\t\t1\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Mexico (México)',\r\n\t\t\tCountryISO.Mexico,\r\n\t\t\t'52'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Micronesia',\r\n\t\t\tCountryISO.Micronesia,\r\n\t\t\t'691'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Moldova (Republica Moldova)',\r\n\t\t\tCountryISO.Moldova,\r\n\t\t\t'373'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Monaco',\r\n\t\t\tCountryISO.Monaco,\r\n\t\t\t'377'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Mongolia (Монгол)',\r\n\t\t\tCountryISO.Mongolia,\r\n\t\t\t'976'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Montenegro (Crna Gora)',\r\n\t\t\tCountryISO.Montenegro,\r\n\t\t\t'382'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Montserrat',\r\n\t\t\t'ms',\r\n\t\t\t'1',\r\n\t\t\t1,\r\n\t\t\t[\r\n\t\t\t\t'664',\r\n\t\t\t]\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Morocco (‫المغرب‬‎)',\r\n\t\t\tCountryISO.Morocco,\r\n\t\t\t'212',\r\n\t\t\t0\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Mozambique (Moçambique)',\r\n\t\t\tCountryISO.Mozambique,\r\n\t\t\t'258'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Myanmar (Burma) (မြန်မာ)',\r\n\t\t\tCountryISO.Myanmar,\r\n\t\t\t'95'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Namibia (Namibië)',\r\n\t\t\tCountryISO.Namibia,\r\n\t\t\t'264'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Nauru',\r\n\t\t\tCountryISO.Nauru,\r\n\t\t\t'674'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Nepal (नेपाल)',\r\n\t\t\tCountryISO.Nepal,\r\n\t\t\t'977'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Netherlands (Nederland)',\r\n\t\t\tCountryISO.Netherlands,\r\n\t\t\t'31'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'New Caledonia (Nouvelle-Calédonie)',\r\n\t\t\tCountryISO.NewCaledonia,\r\n\t\t\t'687'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'New Zealand',\r\n\t\t\tCountryISO.NewZealand,\r\n\t\t\t'64'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Nicaragua',\r\n\t\t\tCountryISO.Nicaragua,\r\n\t\t\t'505'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Niger (Nijar)',\r\n\t\t\tCountryISO.Niger,\r\n\t\t\t'227'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Nigeria',\r\n\t\t\tCountryISO.Nigeria,\r\n\t\t\t'234'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Niue',\r\n\t\t\tCountryISO.Niue,\r\n\t\t\t'683'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Norfolk Island',\r\n\t\t\tCountryISO.NorfolkIsland,\r\n\t\t\t'672'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'North Korea (조선 민주주의 인민 공화국)',\r\n\t\t\tCountryISO.NorthKorea,\r\n\t\t\t'850'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Northern Mariana Islands',\r\n\t\t\tCountryISO.NorthernMarianaIslands,\r\n\t\t\t'1670'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Norway (Norge)',\r\n\t\t\tCountryISO.Norway,\r\n\t\t\t'47',\r\n\t\t\t0\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Oman (‫عُمان‬‎)',\r\n\t\t\tCountryISO.Oman,\r\n\t\t\t'968'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Pakistan (‫پاکستان‬‎)',\r\n\t\t\tCountryISO.Pakistan,\r\n\t\t\t'92'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Palau',\r\n\t\t\tCountryISO.Palau,\r\n\t\t\t'680'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Palestine (‫فلسطين‬‎)',\r\n\t\t\tCountryISO.Palestine,\r\n\t\t\t'970'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Panama (Panamá)',\r\n\t\t\tCountryISO.Panama,\r\n\t\t\t'507'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Papua New Guinea',\r\n\t\t\tCountryISO.PapuaNewGuinea,\r\n\t\t\t'675'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Paraguay',\r\n\t\t\tCountryISO.Paraguay,\r\n\t\t\t'595'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Peru (Perú)',\r\n\t\t\tCountryISO.Peru,\r\n\t\t\t'51'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Philippines',\r\n\t\t\tCountryISO.Philippines,\r\n\t\t\t'63'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Poland (Polska)',\r\n\t\t\tCountryISO.Poland,\r\n\t\t\t'48'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Portugal',\r\n\t\t\tCountryISO.Portugal,\r\n\t\t\t'351'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Puerto Rico',\r\n\t\t\tCountryISO.PuertoRico,\r\n\t\t\t'1',\r\n\t\t\t3,\r\n\t\t\t['787', '939']\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Qatar (‫قطر‬‎)',\r\n\t\t\tCountryISO.Qatar,\r\n\t\t\t'974'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Réunion (La Réunion)',\r\n\t\t\tCountryISO.Réunion,\r\n\t\t\t'262',\r\n\t\t\t0\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Romania (România)',\r\n\t\t\tCountryISO.Romania,\r\n\t\t\t'40'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Russia (Россия)',\r\n\t\t\tCountryISO.Russia,\r\n\t\t\t'7',\r\n\t\t\t0\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Rwanda',\r\n\t\t\tCountryISO.Rwanda,\r\n\t\t\t'250'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Saint Barthélemy (Saint-Barthélemy)',\r\n\t\t\tCountryISO.SaintBarthélemy,\r\n\t\t\t'590',\r\n\t\t\t1\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Saint Helena',\r\n\t\t\tCountryISO.SaintHelena,\r\n\t\t\t'290'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Saint Kitts and Nevis',\r\n\t\t\tCountryISO.SaintKittsAndNevis,\r\n\t\t\t'1869'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Saint Lucia',\r\n\t\t\t'lc',\r\n\t\t\t'1',\r\n\t\t\t1,\r\n\t\t\t[\r\n\t\t\t\t'758',\r\n\t\t\t]\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Saint Martin (Saint-Martin (partie française))',\r\n\t\t\tCountryISO.SaintMartin,\r\n\t\t\t'590',\r\n\t\t\t2\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Saint Pierre and Miquelon (Saint-Pierre-et-Miquelon)',\r\n\t\t\tCountryISO.SaintPierreAndMiquelon,\r\n\t\t\t'508'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Saint Vincent and the Grenadines',\r\n\t\t\t'vc',\r\n\t\t\t'1',\r\n\t\t\t1,\r\n\t\t\t[\r\n\t\t\t\t'784',\r\n\t\t\t]\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Samoa',\r\n\t\t\tCountryISO.Samoa,\r\n\t\t\t'685'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'San Marino',\r\n\t\t\tCountryISO.SanMarino,\r\n\t\t\t'378'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'São Tomé and Príncipe (São Tomé e Príncipe)',\r\n\t\t\tCountryISO.SãoToméAndPríncipe,\r\n\t\t\t'239'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Saudi Arabia (‫المملكة العربية السعودية‬‎)',\r\n\t\t\tCountryISO.SaudiArabia,\r\n\t\t\t'966'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Senegal (Sénégal)',\r\n\t\t\tCountryISO.Senegal,\r\n\t\t\t'221'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Serbia (Србија)',\r\n\t\t\tCountryISO.Serbia,\r\n\t\t\t'381'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Seychelles',\r\n\t\t\tCountryISO.Seychelles,\r\n\t\t\t'248'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Sierra Leone',\r\n\t\t\tCountryISO.SierraLeone,\r\n\t\t\t'232'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Singapore',\r\n\t\t\tCountryISO.Singapore,\r\n\t\t\t'65'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Sint Maarten',\r\n\t\t\t'sx',\r\n\t\t\t'1',\r\n\t\t\t1,\r\n\t\t\t[\r\n\t\t\t\t'721',\r\n\t\t\t]\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Slovakia (Slovensko)',\r\n\t\t\tCountryISO.Slovakia,\r\n\t\t\t'421'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Slovenia (Slovenija)',\r\n\t\t\tCountryISO.Slovenia,\r\n\t\t\t'386'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Solomon Islands',\r\n\t\t\tCountryISO.SolomonIslands,\r\n\t\t\t'677'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Somalia (Soomaaliya)',\r\n\t\t\tCountryISO.Somalia,\r\n\t\t\t'252'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'South Africa',\r\n\t\t\tCountryISO.SouthAfrica,\r\n\t\t\t'27'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'South Korea (대한민국)',\r\n\t\t\tCountryISO.SouthKorea,\r\n\t\t\t'82'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'South Sudan (‫جنوب السودان‬‎)',\r\n\t\t\tCountryISO.SouthSudan,\r\n\t\t\t'211'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Spain (España)',\r\n\t\t\tCountryISO.Spain,\r\n\t\t\t'34'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Sri Lanka (ශ්‍රී ලංකාව)',\r\n\t\t\tCountryISO.SriLanka,\r\n\t\t\t'94'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Sudan (‫السودان‬‎)',\r\n\t\t\tCountryISO.Sudan,\r\n\t\t\t'249'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Suriname',\r\n\t\t\tCountryISO.Suriname,\r\n\t\t\t'597'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Svalbard and Jan Mayen',\r\n\t\t\tCountryISO.SvalbardAndJanMayen,\r\n\t\t\t'47',\r\n\t\t\t1\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Swaziland',\r\n\t\t\tCountryISO.Swaziland,\r\n\t\t\t'268'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Sweden (Sverige)',\r\n\t\t\tCountryISO.Sweden,\r\n\t\t\t'46'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Switzerland (Schweiz)',\r\n\t\t\tCountryISO.Switzerland,\r\n\t\t\t'41'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Syria (‫سوريا‬‎)',\r\n\t\t\tCountryISO.Syria,\r\n\t\t\t'963'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Taiwan (台灣)',\r\n\t\t\tCountryISO.Taiwan,\r\n\t\t\t'886'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Tajikistan',\r\n\t\t\tCountryISO.Tajikistan,\r\n\t\t\t'992'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Tanzania',\r\n\t\t\tCountryISO.Tanzania,\r\n\t\t\t'255'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Thailand (ไทย)',\r\n\t\t\tCountryISO.Thailand,\r\n\t\t\t'66'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Timor-Leste',\r\n\t\t\tCountryISO.TimorLeste,\r\n\t\t\t'670'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Togo',\r\n\t\t\tCountryISO.Togo,\r\n\t\t\t'228'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Tokelau',\r\n\t\t\tCountryISO.Tokelau,\r\n\t\t\t'690'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Tonga',\r\n\t\t\tCountryISO.Tonga,\r\n\t\t\t'676'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Trinidad and Tobago',\r\n\t\t\t'tt',\r\n\t\t\t'1',\r\n\t\t\t1,\r\n\t\t\t[\r\n\t\t\t\t'868',\r\n\t\t\t]\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Tunisia (‫تونس‬‎)',\r\n\t\t\tCountryISO.Tunisia,\r\n\t\t\t'216'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Turkey (Türkiye)',\r\n\t\t\tCountryISO.Turkey,\r\n\t\t\t'90'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Turkmenistan',\r\n\t\t\tCountryISO.Turkmenistan,\r\n\t\t\t'993'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Turks and Caicos Islands',\r\n\t\t\tCountryISO.TurksAndCaicosIslands,\r\n\t\t\t'1649'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Tuvalu',\r\n\t\t\tCountryISO.Tuvalu,\r\n\t\t\t'688'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'U.S. Virgin Islands',\r\n\t\t\t'vi',\r\n\t\t\t'1',\r\n\t\t\t1,\r\n\t\t\t[\r\n\t\t\t\t'340',\r\n\t\t\t]\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Uganda',\r\n\t\t\tCountryISO.Uganda,\r\n\t\t\t'256'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Ukraine (Україна)',\r\n\t\t\tCountryISO.Ukraine,\r\n\t\t\t'380'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'United Arab Emirates (‫الإمارات العربية المتحدة‬‎)',\r\n\t\t\tCountryISO.UnitedArabEmirates,\r\n\t\t\t'971'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'United Kingdom',\r\n\t\t\tCountryISO.UnitedKingdom,\r\n\t\t\t'44',\r\n\t\t\t0\r\n\t\t],\r\n\t\t[\r\n\t\t\t'United States',\r\n\t\t\tCountryISO.UnitedStates,\r\n\t\t\t'1',\r\n\t\t\t0\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Uruguay',\r\n\t\t\tCountryISO.Uruguay,\r\n\t\t\t'598'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Uzbekistan (Oʻzbekiston)',\r\n\t\t\tCountryISO.Uzbekistan,\r\n\t\t\t'998'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Vanuatu',\r\n\t\t\tCountryISO.Vanuatu,\r\n\t\t\t'678'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Vatican City (Città del Vaticano)',\r\n\t\t\tCountryISO.VaticanCity,\r\n\t\t\t'39',\r\n\t\t\t1\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Venezuela',\r\n\t\t\tCountryISO.Venezuela,\r\n\t\t\t'58'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Vietnam (Việt Nam)',\r\n\t\t\tCountryISO.Vietnam,\r\n\t\t\t'84'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Wallis and Futuna',\r\n\t\t\tCountryISO.WallisAndFutuna,\r\n\t\t\t'681'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Western Sahara (‫الصحراء الغربية‬‎)',\r\n\t\t\tCountryISO.WesternSahara,\r\n\t\t\t'212',\r\n\t\t\t1\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Yemen (‫اليمن‬‎)',\r\n\t\t\tCountryISO.Yemen,\r\n\t\t\t'967'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Zambia',\r\n\t\t\tCountryISO.Zambia,\r\n\t\t\t'260'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Zimbabwe',\r\n\t\t\tCountryISO.Zimbabwe,\r\n\t\t\t'263'\r\n\t\t],\r\n\t\t[\r\n\t\t\t'Åland Islands',\r\n\t\t\tCountryISO.ÅlandIslands,\r\n\t\t\t'358',\r\n\t\t\t1\r\n\t\t]\r\n\t];\r\n}","export enum CountryISO {\r\n\tAfghanistan = 'af',\r\n\tAlbania = 'al',\r\n\tAlgeria = 'dz',\r\n\tAmericanSamoa = 'as',\r\n\tAndorra = 'ad',\r\n\tAngola = 'ao',\r\n\tAnguilla = 'ai',\r\n\tAntiguaAndBarbuda = 'ag',\r\n\tArgentina = 'ar',\r\n\tArmenia = 'am',\r\n\tAruba = 'aw',\r\n\tAustralia = 'au',\r\n\tAustria = 'at',\r\n\tAzerbaijan = 'az',\r\n\tBahamas = 'bs',\r\n\tBahrain = 'bh',\r\n\tBangladesh = 'bd',\r\n\tBarbados = 'bb',\r\n\tBelarus = 'by',\r\n\tBelgium = 'be',\r\n\tBelize = 'bz',\r\n\tBenin = 'bj',\r\n\tBermuda = 'bm',\r\n\tBhutan = 'bt',\r\n\tBolivia = 'bo',\r\n\tBosniaAndHerzegovina = 'ba',\r\n\tBotswana = 'bw',\r\n\tBrazil = 'br',\r\n\tBritishIndianOceanTerritory = 'io',\r\n\tBritishVirginIslands = 'vg',\r\n\tBrunei = 'bn',\r\n\tBulgaria = 'bg',\r\n\tBurkinaFaso = 'bf',\r\n\tBurundi = 'bi',\r\n\tCambodia = 'kh',\r\n\tCameroon = 'cm',\r\n\tCanada = 'ca',\r\n\tCapeVerde = 'cv',\r\n\tCaribbeanNetherlands = 'bq',\r\n\tCaymanIslands = 'ky',\r\n\tCentralAfricanRepublic = 'cf',\r\n\tChad = 'td',\r\n\tChile = 'cl',\r\n\tChina = 'cn',\r\n\tChristmasIsland = 'cx',\r\n\tCocos = 'cc',\r\n\tColombia = 'co',\r\n\tComoros = 'km',\r\n\tCongoDRCJamhuriYaKidemokrasiaYaKongo = 'cd',\r\n\tCongoRepublicCongoBrazzaville = 'cg',\r\n\tCookIslands = 'ck',\r\n\tCostaRica = 'cr',\r\n\tCôteDIvoire = 'ci',\r\n\tCroatia = 'hr',\r\n\tCuba = 'cu',\r\n\tCuraçao = 'cw',\r\n\tCyprus = 'cy',\r\n\tCzechRepublic = 'cz',\r\n\tDenmark = 'dk',\r\n\tDjibouti = 'dj',\r\n\tDominica = 'dm',\r\n\tDominicanRepublic = 'do',\r\n\tEcuador = 'ec',\r\n\tEgypt = 'eg',\r\n\tElSalvador = 'sv',\r\n\tEquatorialGuinea = 'gq',\r\n\tEritrea = 'er',\r\n\tEstonia = 'ee',\r\n\tEthiopia = 'et',\r\n\tFalklandIslands = 'fk',\r\n\tFaroeIslands = 'fo',\r\n\tFiji = 'fj',\r\n\tFinland = 'fi',\r\n\tFrance = 'fr',\r\n\tFrenchGuiana = 'gf',\r\n\tFrenchPolynesia = 'pf',\r\n\tGabon = 'ga',\r\n\tGambia = 'gm',\r\n\tGeorgia = 'ge',\r\n\tGermany = 'de',\r\n\tGhana = 'gh',\r\n\tGibraltar = 'gi',\r\n\tGreece = 'gr',\r\n\tGreenland = 'gl',\r\n\tGrenada = 'gd',\r\n\tGuadeloupe = 'gp',\r\n\tGuam = 'gu',\r\n\tGuatemala = 'gt',\r\n\tGuernsey = 'gg',\r\n\tGuinea = 'gn',\r\n\tGuineaBissau = 'gw',\r\n\tGuyana = 'gy',\r\n\tHaiti = 'ht',\r\n\tHonduras = 'hn',\r\n\tHongKong = 'hk',\r\n\tHungary = 'hu',\r\n\tIceland = 'is',\r\n\tIndia = 'in',\r\n\tIndonesia = 'id',\r\n\tIran = 'ir',\r\n\tIraq = 'iq',\r\n\tIreland = 'ie',\r\n\tIsleOfMan = 'im',\r\n\tIsrael = 'il',\r\n\tItaly = 'it',\r\n\tJamaica = 'jm',\r\n\tJapan = 'jp',\r\n\tJersey = 'je',\r\n\tJordan = 'jo',\r\n\tKazakhstan = 'kz',\r\n\tKenya = 'ke',\r\n\tKiribati = 'ki',\r\n\tKosovo = 'xk',\r\n\tKuwait = 'kw',\r\n\tKyrgyzstan = 'kg',\r\n\tLaos = 'la',\r\n\tLatvia = 'lv',\r\n\tLebanon = 'lb',\r\n\tLesotho = 'ls',\r\n\tLiberia = 'lr',\r\n\tLibya = 'ly',\r\n\tLiechtenstein = 'li',\r\n\tLithuania = 'lt',\r\n\tLuxembourg = 'lu',\r\n\tMacau = 'mo',\r\n\tMacedonia = 'mk',\r\n\tMadagascar = 'mg',\r\n\tMalawi = 'mw',\r\n\tMalaysia = 'my',\r\n\tMaldives = 'mv',\r\n\tMali = 'ml',\r\n\tMalta = 'mt',\r\n\tMarshallIslands = 'mh',\r\n\tMartinique = 'mq',\r\n\tMauritania = 'mr',\r\n\tMauritius = 'mu',\r\n\tMayotte = 'yt',\r\n\tMexico = 'mx',\r\n\tMicronesia = 'fm',\r\n\tMoldova = 'md',\r\n\tMonaco = 'mc',\r\n\tMongolia = 'mn',\r\n\tMontenegro = 'me',\r\n\tMontserrat = 'ms',\r\n\tMorocco = 'ma',\r\n\tMozambique = 'mz',\r\n\tMyanmar = 'mm',\r\n\tNamibia = 'na',\r\n\tNauru = 'nr',\r\n\tNepal = 'np',\r\n\tNetherlands = 'nl',\r\n\tNewCaledonia = 'nc',\r\n\tNewZealand = 'nz',\r\n\tNicaragua = 'ni',\r\n\tNiger = 'ne',\r\n\tNigeria = 'ng',\r\n\tNiue = 'nu',\r\n\tNorfolkIsland = 'nf',\r\n\tNorthKorea = 'kp',\r\n\tNorthernMarianaIslands = 'mp',\r\n\tNorway = 'no',\r\n\tOman = 'om',\r\n\tPakistan = 'pk',\r\n\tPalau = 'pw',\r\n\tPalestine = 'ps',\r\n\tPanama = 'pa',\r\n\tPapuaNewGuinea = 'pg',\r\n\tParaguay = 'py',\r\n\tPeru = 'pe',\r\n\tPhilippines = 'ph',\r\n\tPoland = 'pl',\r\n\tPortugal = 'pt',\r\n\tPuertoRico = 'pr',\r\n\tQatar = 'qa',\r\n\tRéunion = 're',\r\n\tRomania = 'ro',\r\n\tRussia = 'ru',\r\n\tRwanda = 'rw',\r\n\tSaintBarthélemy = 'bl',\r\n\tSaintHelena = 'sh',\r\n\tSaintKittsAndNevis = 'kn',\r\n\tSaintLucia = 'lc',\r\n\tSaintMartin = 'mf',\r\n\tSaintPierreAndMiquelon = 'pm',\r\n\tSaintVincentAndTheGrenadines = 'vc',\r\n\tSamoa = 'ws',\r\n\tSanMarino = 'sm',\r\n\tSãoToméAndPríncipe = 'st',\r\n\tSaudiArabia = 'sa',\r\n\tSenegal = 'sn',\r\n\tSerbia = 'rs',\r\n\tSeychelles = 'sc',\r\n\tSierraLeone = 'sl',\r\n\tSingapore = 'sg',\r\n\tSintMaarten = 'sx',\r\n\tSlovakia = 'sk',\r\n\tSlovenia = 'si',\r\n\tSolomonIslands = 'sb',\r\n\tSomalia = 'so',\r\n\tSouthAfrica = 'za',\r\n\tSouthKorea = 'kr',\r\n\tSouthSudan = 'ss',\r\n\tSpain = 'es',\r\n\tSriLanka = 'lk',\r\n\tSudan = 'sd',\r\n\tSuriname = 'sr',\r\n\tSvalbardAndJanMayen = 'sj',\r\n\tSwaziland = 'sz',\r\n\tSweden = 'se',\r\n\tSwitzerland = 'ch',\r\n\tSyria = 'sy',\r\n\tTaiwan = 'tw',\r\n\tTajikistan = 'tj',\r\n\tTanzania = 'tz',\r\n\tThailand = 'th',\r\n\tTimorLeste = 'tl',\r\n\tTogo = 'tg',\r\n\tTokelau = 'tk',\r\n\tTonga = 'to',\r\n\tTrinidadAndTobago = 'tt',\r\n\tTunisia = 'tn',\r\n\tTurkey = 'tr',\r\n\tTurkmenistan = 'tm',\r\n\tTurksAndCaicosIslands = 'tc',\r\n\tTuvalu = 'tv',\r\n\tUSVirginIslands = 'vi',\r\n\tUganda = 'ug',\r\n\tUkraine = 'ua',\r\n\tUnitedArabEmirates = 'ae',\r\n\tUnitedKingdom = 'gb',\r\n\tUnitedStates = 'us',\r\n\tUruguay = 'uy',\r\n\tUzbekistan = 'uz',\r\n\tVanuatu = 'vu',\r\n\tVaticanCity = 'va',\r\n\tVenezuela = 've',\r\n\tVietnam = 'vn',\r\n\tWallisAndFutuna = 'wf',\r\n\tWesternSahara = 'eh',\r\n\tYemen = 'ye',\r\n\tZambia = 'zm',\r\n\tZimbabwe = 'zw',\r\n\tÅlandIslands = 'ax',\r\n}\r\n","export enum SearchCountryField {\r\n\tDialCode = 'dialCode',\r\n\tIso2 = 'iso2',\r\n\tName = 'name',\r\n\tAll = 'all'\r\n}\r\n","export enum TooltipLabel {\r\n\tName = 'name',\r\n\tIso2 = 'iso2'\r\n}\r\n","import { Component, OnInit, forwardRef, Input, ViewChild, ElementRef, SimpleChanges, OnChanges, Output, EventEmitter } from '@angular/core';\r\nimport { NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { CountryCode } from './data/country-code';\r\nimport { phoneNumberValidator } from './ngx-intl-tel-input.validator';\r\nimport { Country } from './model/country.model';\r\nimport * as lpn from 'google-libphonenumber';\r\nimport { SearchCountryField } from './enums/search-country-field.enum';\r\nimport { TooltipLabel } from './enums/tooltip-label.enum';\r\nimport { CountryISO } from './enums/country-iso.enum';\r\n\r\n@Component({\r\n\tselector: 'ngx-intl-tel-input',\r\n\ttemplateUrl: './ngx-intl-tel-input.component.html',\r\n\tstyleUrls: ['./ngx-intl-tel-input.component.css'],\r\n\tproviders: [\r\n\t\tCountryCode,\r\n\t\t{\r\n\t\t\tprovide: NG_VALUE_ACCESSOR,\r\n\t\t\t// tslint:disable-next-line:no-forward-ref\r\n\t\t\tuseExisting: forwardRef(() => NgxIntlTelInputComponent),\r\n\t\t\tmulti: true\r\n\t\t},\r\n\t\t{\r\n\t\t\tprovide: NG_VALIDATORS,\r\n\t\t\tuseValue: phoneNumberValidator,\r\n\t\t\tmulti: true,\r\n\t\t}\r\n\t]\r\n})\r\nexport class NgxIntlTelInputComponent implements OnInit, OnChanges {\r\n\r\n\t@Input() value = '';\r\n\t@Input() preferredCountries: Array = [];\r\n\t@Input() enablePlaceholder = true;\r\n\t@Input() cssClass = 'form-control';\r\n\t@Input() onlyCountries: Array = [];\r\n\t@Input() enableAutoCountrySelect = true;\r\n\t@Input() searchCountryFlag = false;\r\n\t@Input() searchCountryField: SearchCountryField[] = [SearchCountryField.All];\r\n\t@Input() searchCountryPlaceholder = 'Search Country';\r\n\t@Input() maxLength = '';\r\n\t@Input() tooltipField: TooltipLabel;\r\n\t@Input() selectFirstCountry = true;\r\n\t@Input() selectedCountryISO: CountryISO;\r\n\t@Input() phoneValidation = true;\r\n\t@Input() id = 'phone';\r\n\r\n\t@Output() readonly countryChange = new EventEmitter();\r\n\r\n\tselectedCountry: Country = {\r\n\t\tareaCodes: undefined,\r\n\t\tdialCode: '',\r\n\t\tflagClass: '',\r\n\t\tiso2: '',\r\n\t\tname: '',\r\n\t\tplaceHolder: '',\r\n\t\tpriority: 0\r\n\t};\r\n\r\n\t// display the country dial code next to the selected flag\r\n\t@Input() separateDialCode = false;\r\n\tseparateDialCodeClass: string;\r\n\r\n\tphoneNumber = '';\r\n\tallCountries: Array = [];\r\n\tpreferredCountriesInDropDown: Array = [];\r\n\t// Has to be 'any' to prevent a need to install @types/google-libphonenumber by the package user...\r\n\tphoneUtil: any = lpn.PhoneNumberUtil.getInstance();\r\n\tdisabled = false;\r\n\terrors: Array = ['Phone number is required.'];\r\n\tcountrySearchText = '';\r\n\r\n\t@ViewChild('countryList') countryList: ElementRef;\r\n\r\n\tonTouched = () => { };\r\n\tpropagateChange = (_: any) => { };\r\n\r\n\tconstructor(\r\n\t\tprivate countryCodeData: CountryCode\r\n\t) { }\r\n\r\n\tngOnInit() {\r\n\t\tthis.init();\r\n\t}\r\n\r\n\tngOnChanges(changes: SimpleChanges) {\r\n\t\tif (this.allCountries && changes['selectedCountryISO']\r\n\t\t\t&& changes['selectedCountryISO'].currentValue !== changes['selectedCountryISO'].previousValue) {\r\n\t\t\tthis.getSelectedCountry();\r\n\t\t}\r\n\t\tif (changes.preferredCountries) {\r\n\t\t\tthis.getPreferredCountries();\r\n\t\t}\r\n\t\tthis.checkSeparateDialCodeStyle();\r\n\t}\r\n\r\n\t/*\r\n\t\tThis is a wrapper method to avoid calling this.ngOnInit() in writeValue().\r\n\t\tRef: http://codelyzer.com/rules/no-life-cycle-call/\r\n\t*/\r\n\tinit() {\r\n\t\tthis.fetchCountryData();\r\n\t\tif (this.preferredCountries.length) {\r\n\t\t\tthis.getPreferredCountries();\r\n\t\t}\r\n\t\tif (this.onlyCountries.length) {\r\n\t\t\tthis.allCountries = this.allCountries.filter(c => this.onlyCountries.includes(c.iso2));\r\n\t\t}\r\n\t\tif (this.selectFirstCountry) {\r\n\t\t\tif (this.preferredCountriesInDropDown.length) {\r\n\t\t\t\tthis.setSelectedCountry(this.preferredCountriesInDropDown[0]);\r\n\t\t\t} else {\r\n\t\t\t\tthis.setSelectedCountry(this.allCountries[0]);\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.getSelectedCountry();\r\n\t\tthis.checkSeparateDialCodeStyle();\r\n\t}\r\n\r\n\tgetPreferredCountries() {\r\n\t\tif (this.preferredCountries.length) {\r\n\t\t\tthis.preferredCountriesInDropDown = [];\r\n\t\t\tthis.preferredCountries.forEach(iso2 => {\r\n\t\t\t\tconst preferredCountry = this.allCountries.filter((c) => {\r\n\t\t\t\t\treturn c.iso2 === iso2;\r\n\t\t\t\t});\r\n\r\n\t\t\t\tthis.preferredCountriesInDropDown.push(preferredCountry[0]);\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tgetSelectedCountry() {\r\n\t\tif (this.selectedCountryISO) {\r\n\t\t\tthis.selectedCountry = this.allCountries.find(c => { return (c.iso2.toLowerCase() === this.selectedCountryISO.toLowerCase()); });\r\n\t\t\tif (this.selectedCountry) {\r\n\t\t\t\tif (this.phoneNumber) {\r\n\t\t\t\t\tthis.onPhoneNumberChange();\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.propagateChange(undefined);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tsetSelectedCountry(country: Country) {\r\n\t\tthis.selectedCountry = country;\r\n\t\tthis.countryChange.emit(country);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Search country based on country name, iso2, dialCode or all of them.\r\n\t */\r\n\tsearchCountry() {\r\n\t\tif (!this.countrySearchText) {\r\n\t\t\tthis.countryList.nativeElement.querySelector('.country-list li').scrollIntoView({\r\n\t\t\t\tbehavior: 'smooth',\r\n\t\t\t\tblock: 'nearest',\r\n\t\t\t\tinline: 'nearest'\r\n\t\t\t});\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst countrySearchTextLower = this.countrySearchText.toLowerCase();\r\n\t\tconst country = this.allCountries.filter(c => {\r\n\t\t\tif (this.searchCountryField.indexOf(SearchCountryField.All) > -1) {\r\n\t\t\t\t// Search in all fields\r\n\t\t\t\tif (c.iso2.toLowerCase().startsWith(countrySearchTextLower)) {\r\n\t\t\t\t\treturn c;\r\n\t\t\t\t}\r\n\t\t\t\tif (c.name.toLowerCase().startsWith(countrySearchTextLower)) {\r\n\t\t\t\t\treturn c;\r\n\t\t\t\t}\r\n\t\t\t\tif (c.dialCode.startsWith(this.countrySearchText)) {\r\n\t\t\t\t\treturn c;\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\t// Or search by specific SearchCountryField(s)\r\n\t\t\t\tif (this.searchCountryField.indexOf(SearchCountryField.Iso2) > -1) {\r\n\t\t\t\t\tif (c.iso2.toLowerCase().startsWith(countrySearchTextLower)) {\r\n\t\t\t\t\t\treturn c;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif (this.searchCountryField.indexOf(SearchCountryField.Name) > -1) {\r\n\t\t\t\t\tif (c.name.toLowerCase().startsWith(countrySearchTextLower)) {\r\n\t\t\t\t\t\treturn c;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif (this.searchCountryField.indexOf(SearchCountryField.DialCode) > -1) {\r\n\t\t\t\t\tif (c.dialCode.startsWith(this.countrySearchText)) {\r\n\t\t\t\t\t\treturn c;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tif (country.length > 0) {\r\n\t\t\tconst el = this.countryList.nativeElement.querySelector('#' + country[0].iso2);\r\n\t\t\tif (el) {\r\n\t\t\t\tel.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'nearest' });\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.checkSeparateDialCodeStyle();\r\n\t}\r\n\r\n\tpublic onPhoneNumberChange(): void {\r\n\t\tthis.value = this.phoneNumber;\r\n\r\n\t\tlet number: lpn.PhoneNumber;\r\n\t\ttry {\r\n\t\t\tnumber = this.phoneUtil.parse(this.phoneNumber, this.selectedCountry.iso2.toUpperCase());\r\n\t\t} catch (e) {\r\n\t\t}\r\n\r\n\t\tlet countryCode = this.selectedCountry.iso2;\r\n\t\t// auto select country based on the extension (and areaCode if needed) (e.g select Canada if number starts with +1 416)\r\n\t\tif (this.enableAutoCountrySelect) {\r\n\t\t\tcountryCode = number && number.getCountryCode()\r\n\t\t\t\t? this.getCountryIsoCode(number.getCountryCode(), number)\r\n\t\t\t\t: this.selectedCountry.iso2;\r\n\t\t\tif (countryCode && countryCode !== this.selectedCountry.iso2) {\r\n\t\t\t\tconst newCountry = this.allCountries.find(c => c.iso2 === countryCode);\r\n\t\t\t\tif (newCountry) {\r\n\t\t\t\t\tthis.selectedCountry = newCountry;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tcountryCode = countryCode ? countryCode : this.selectedCountry.iso2;\r\n\r\n\t\tthis.checkSeparateDialCodeStyle();\r\n\r\n\t\tif (!this.value) {\r\n\t\t\tthis.propagateChange(undefined);\r\n\t\t} else {\r\n\t\t\tconst intlNo = number ? this.phoneUtil.format(number, lpn.PhoneNumberFormat.INTERNATIONAL) : '';\r\n\r\n\t\t\t// parse phoneNumber if separate dial code is needed\r\n\t\t\tif (this.separateDialCode && intlNo) {\r\n\t\t\t\tthis.value = this.removeDialCode(intlNo);\r\n\t\t\t}\r\n\r\n\t\t\tthis.propagateChange({\r\n\t\t\t\tnumber: this.value,\r\n\t\t\t\tinternationalNumber: intlNo,\r\n\t\t\t\tnationalNumber: number ? this.phoneUtil.format(number, lpn.PhoneNumberFormat.NATIONAL) : '',\r\n\t\t\t\te164Number: number ? this.phoneUtil.format(number, lpn.PhoneNumberFormat.E164): '',\r\n\t\t\t\tcountryCode: countryCode.toUpperCase(),\r\n\t\t\t\tdialCode: '+' + this.selectedCountry.dialCode,\r\n\t\t\t\tid: this.id\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tpublic onCountrySelect(country: Country, el): void {\r\n\t\tthis.setSelectedCountry(country);\r\n\r\n\t\tthis.checkSeparateDialCodeStyle();\r\n\r\n\t\tif (this.phoneNumber && this.phoneNumber.length > 0) {\r\n\t\t\tthis.value = this.phoneNumber;\r\n\r\n\t\t\tlet number: lpn.PhoneNumber;\r\n\t\t\ttry {\r\n\t\t\t\tnumber = this.phoneUtil.parse(this.phoneNumber, this.selectedCountry.iso2.toUpperCase());\r\n\t\t\t} catch (e) {\r\n\t\t\t}\r\n\r\n\t\t\tconst intlNo = number ? this.phoneUtil.format(number, lpn.PhoneNumberFormat.INTERNATIONAL) : '';\r\n\r\n\t\t\t// parse phoneNumber if separate dial code is needed\r\n\t\t\tif (this.separateDialCode && intlNo) {\r\n\t\t\t\tthis.value = this.removeDialCode(intlNo);\r\n\t\t\t}\r\n\r\n\t\t\tthis.propagateChange({\r\n\t\t\t\tnumber: this.value,\r\n\t\t\t\tinternationalNumber: intlNo,\r\n\t\t\t\tnationalNumber: number ? this.phoneUtil.format(number, lpn.PhoneNumberFormat.NATIONAL) : '',\r\n\t\t\t\te164Number: number ? this.phoneUtil.format(number, lpn.PhoneNumberFormat.E164): '',\r\n\t\t\t\tcountryCode: this.selectedCountry.iso2.toUpperCase(),\r\n\t\t\t\tdialCode: '+' + this.selectedCountry.dialCode,\r\n\t\t\t\tid: this.id\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tthis.propagateChange(undefined);\r\n\t\t}\r\n\r\n\t\tel.focus();\r\n\t}\r\n\r\n\tpublic onInputKeyPress(event: KeyboardEvent): void {\r\n\t\tconst allowedChars = /[0-9\\+\\-\\ ]/;\r\n\t\tconst allowedCtrlChars = /[axcv]/; // Allows copy-pasting\r\n\t\tconst allowedOtherKeys = [\r\n\t\t\t'ArrowLeft', 'ArrowUp', 'ArrowRight', 'ArrowDown',\r\n\t\t\t'Home', 'End', 'Insert', 'Delete', 'Backspace'\r\n\t\t];\r\n\r\n\t\tif (!allowedChars.test(event.key)\r\n\t\t\t&& !(event.ctrlKey && allowedCtrlChars.test(event.key))\r\n\t\t\t&& !(allowedOtherKeys.includes(event.key))) {\r\n\t\t\tevent.preventDefault();\r\n\t\t}\r\n\t}\r\n\r\n\tprotected fetchCountryData(): void {\r\n\t\t/* Clearing the list to avoid duplicates (https://github.com/webcat12345/ngx-intl-tel-input/issues/248) */\r\n\t\tthis.allCountries = [];\r\n\r\n\t\tthis.countryCodeData.allCountries.forEach(c => {\r\n\t\t\tconst country: Country = {\r\n\t\t\t\tname: c[0].toString(),\r\n\t\t\t\tiso2: c[1].toString(),\r\n\t\t\t\tdialCode: c[2].toString(),\r\n\t\t\t\tpriority: +c[3] || 0,\r\n\t\t\t\tareaCodes: c[4] as string[] || undefined,\r\n\t\t\t\tflagClass: c[1].toString().toLocaleLowerCase(),\r\n\t\t\t\tplaceHolder: ''\r\n\t\t\t};\r\n\r\n\t\t\tif (this.enablePlaceholder) {\r\n\t\t\t\tcountry.placeHolder = this.getPhoneNumberPlaceHolder(country.iso2.toUpperCase());\r\n\t\t\t}\r\n\r\n\t\t\tthis.allCountries.push(country);\r\n\t\t});\r\n\t}\r\n\r\n\tprotected getPhoneNumberPlaceHolder(countryCode: string): string {\r\n\t\ttry {\r\n\t\t\treturn this.phoneUtil.format(this.phoneUtil.getExampleNumber(countryCode), lpn.PhoneNumberFormat.INTERNATIONAL);\r\n\t\t} catch (e) {\r\n\t\t\treturn e;\r\n\t\t}\r\n\t}\r\n\r\n\tregisterOnChange(fn: any): void {\r\n\t\tthis.propagateChange = fn;\r\n\t}\r\n\r\n\tregisterOnTouched(fn: any) {\r\n\t\tthis.onTouched = fn;\r\n\t}\r\n\r\n\tsetDisabledState(isDisabled: boolean): void {\r\n\t\tthis.disabled = isDisabled;\r\n\t}\r\n\r\n\twriteValue(obj: any): void {\r\n\t\tif (obj === undefined) {\r\n\t\t\tthis.init();\r\n\t\t}\r\n\t\tthis.phoneNumber = obj;\r\n\t\tsetTimeout(() => {\r\n\t\t\tthis.onPhoneNumberChange();\r\n\t\t}, 1);\r\n\t}\r\n\r\n\tprivate getCountryIsoCode(countryCode: number, number: lpn.PhoneNumber): string | undefined {\r\n\t\t// Will use this to match area code from the first numbers\r\n\t\tconst rawNumber = number['values_']['2'].toString();\r\n\t\t// List of all countries with countryCode (can be more than one. e.x. US, CA, DO, PR all have +1 countryCode)\r\n\t\tconst countries = this.allCountries.filter(c => c.dialCode === countryCode.toString());\r\n\t\t// Main country is the country, which has no areaCodes specified in country-code.ts file.\r\n\t\tconst mainCountry = countries.find(c => c.areaCodes === undefined);\r\n\t\t// Secondary countries are all countries, which have areaCodes specified in country-code.ts file.\r\n\t\tconst secondaryCountries = countries.filter(c => c.areaCodes !== undefined);\r\n\t\tlet matchedCountry = mainCountry ? mainCountry.iso2 : undefined;\r\n\r\n\t\t/*\r\n\t\t\tInterate over each secondary country and check if nationalNumber starts with any of areaCodes available.\r\n\t\t\tIf no matches found, fallback to the main country.\r\n\t\t*/\r\n\t\tsecondaryCountries.forEach(country => {\r\n\t\t\tcountry.areaCodes.forEach(areaCode => {\r\n\t\t\t\tif (rawNumber.startsWith(areaCode)) {\r\n\t\t\t\t\tmatchedCountry = country.iso2;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\treturn matchedCountry;\r\n\t}\r\n\r\n\tseparateDialCodePlaceHolder(placeholder: string): string {\r\n\t\treturn this.removeDialCode(placeholder);\r\n\t}\r\n\r\n\tprivate removeDialCode(phoneNumber: string): string {\r\n\t\tif (this.separateDialCode && phoneNumber) {\r\n\t\t\tphoneNumber = phoneNumber.substr(phoneNumber.indexOf(' ') + 1);\r\n\t\t}\r\n\t\treturn phoneNumber;\r\n\t}\r\n\r\n\t// adjust input alignment\r\n\tprivate checkSeparateDialCodeStyle() {\r\n\t\tif (this.separateDialCode && this.selectedCountry) {\r\n\t\t\tconst cntryCd = this.selectedCountry.dialCode;\r\n\t\t\tthis.separateDialCodeClass = 'separate-dial-code iti-sdc-' + (cntryCd.length + 1);\r\n\t\t} else {\r\n\t\t\tthis.separateDialCodeClass = '';\r\n\t\t}\r\n\t}\r\n\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
+{{selectedCountry.dialCode}}
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
    \r\n
  • \r\n
    \r\n
    \r\n
    \r\n {{country.name}}\r\n +{{country.dialCode}}\r\n
  • \r\n
  • \r\n
  • \r\n
    \r\n
    \r\n
    \r\n {{country.name}}\r\n +{{country.dialCode}}\r\n
  • \r\n
\r\n
\r\n
\r\n \r\n
\r\n","import { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { NgxIntlTelInputComponent } from './ngx-intl-tel-input.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { NgxIntlTelInputService } from './ngx-intl-tel-input.service';\r\nimport { BsDropdownModule } from 'ngx-bootstrap/dropdown';\r\nimport { TooltipModule } from 'ngx-bootstrap/tooltip';\r\n\r\n@NgModule({\r\n\tdeclarations: [NgxIntlTelInputComponent],\r\n\timports: [\r\n\t\tCommonModule,\r\n\t\tFormsModule,\r\n\t\tReactiveFormsModule,\r\n\t\tBsDropdownModule.forRoot(),\r\n\t\tTooltipModule.forRoot()\r\n\t],\r\n\texports: [NgxIntlTelInputComponent]\r\n})\r\nexport class NgxIntlTelInputModule {\r\n\tstatic forRoot(): ModuleWithProviders {\r\n\t\treturn {\r\n\t\t\tngModule: NgxIntlTelInputModule,\r\n\t\t\tproviders: [NgxIntlTelInputService]\r\n\t\t};\r\n\t}\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class NgxIntlTelInputService {\r\n\r\n\tconstructor() { }\r\n}\r\n","import { FormControl } from '@angular/forms';\r\nimport * as lpn from 'google-libphonenumber';\r\n\r\nexport const phoneNumberValidator = (control: FormControl) => {\r\n\tconst id = control.value && control.value.id ? control.value.id : 'phone';\r\n\tconst el = document.getElementById(id) ? (document.getElementById(id)) : undefined;\r\n\tif (el) {\r\n\t\tconst isCheckValidation = el.getAttribute('validation');\r\n\t\tif (isCheckValidation === 'true') {\r\n\t\t\tconst isRequired = control.errors && control.errors.required === true;\r\n const error = { validatePhoneNumber: { valid: false } };\r\n\r\n el.setCustomValidity(\"Invalid field.\");\r\n\r\n\t\t\tlet number: lpn.PhoneNumber;\r\n\r\n\t\t\ttry {\r\n\t\t\t\tnumber = lpn.PhoneNumberUtil.getInstance().parse(control.value.number, control.value.countryCode);\r\n\t\t\t} catch (e) {\r\n if (isRequired === true) {\r\n return error;\r\n } else {\r\n el.setCustomValidity('');\r\n }\r\n\t\t\t}\r\n\r\n\t\t\tif (control.value) {\r\n\t\t\t\tif (!number) {\r\n\t\t\t\t\treturn error;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif (!lpn.PhoneNumberUtil.getInstance().isValidNumberForRegion(number, control.value.countryCode)) {\r\n\t\t\t\t\t\treturn error;\r\n\t\t\t\t\t} else {\r\n el.setCustomValidity('');\r\n }\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} else if (isCheckValidation === 'false') {\r\n el.setCustomValidity('');\r\n\r\n\t\t\tcontrol.clearValidators();\r\n\t\t}\r\n\t}\r\n\treturn;\r\n\r\n};\r\n","/*\r\n * Public API Surface of ngx-intl-tel-input\r\n */\r\n\r\nexport * from './lib/ngx-intl-tel-input.service';\r\nexport * from './lib/ngx-intl-tel-input.component';\r\nexport * from './lib/ngx-intl-tel-input.module';\r\nexport * from './lib/enums/country-iso.enum';\r\nexport * from './lib/enums/search-country-field.enum';\r\nexport * from './lib/enums/tooltip-label.enum';\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\n\r\n\r\nimport { NavigationService } from '../services/navigation.service'\r\n\r\nimport { environment } from '../../environments/environment';\r\n\r\nimport { AuthenticationService } from '../services/authentication.service'\r\nimport { MenuService } from '../services/menu.service'\r\nimport { AuthWebService } from 'app/services/authweb.service';\r\nimport { CarrierService } from 'app/services/carrier.service';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\n@Component({\r\n selector: 'side-menu',\r\n templateUrl: './side-menu.component.html',\r\n styleUrls: ['./side-menu.component.css']\r\n})\r\nexport class SideMenuComponent implements OnInit {\r\n\r\n public ParentItems: any = [];\r\n public ChildItems: any = [];\r\n public hasAdmin: boolean;\r\n\r\n private subMenuCache: any = {};\r\n //public authentication;\r\n public loggedInUser;\r\n public UserData: any = [];\r\n user: any = {};\r\n isLoading: boolean = false;\r\n\r\n\r\n\r\n constructor(public authentication: AuthWebService,private carrierService: CarrierService\r\n ,private toaster: ToastrService,private router: Router) {\r\n\r\n // this.authentication = auth;\r\n this.user = (this.authentication.userData) ? this.authentication.userData.User : null;\r\n\r\n this.UserData = environment.authWebApi.userData\r\n if (this.UserData != null) {\r\n \r\n\r\n this.sortMenu(this.UserData)\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n checkCarriers(){\r\n this.isLoading = true;\r\n\r\n this.carrierService.listCarrierAccountsByUserId(this.user.Id).subscribe((result:any) => {\r\n if (result.length > 1) {\r\n this.toaster.info('Please use menu to the right of relevant account line.')\r\n setTimeout(() => {\r\n this.toaster.clear();\r\n clearTimeout();\r\n }, 8000);\r\n }\r\n this.isLoading = false; \r\n }, error => {\r\n \r\n this.isLoading = false;\r\n\r\n })\r\n }\r\n menuClicked(sm){\r\n if(sm.Code === \"CVM\" && this.authentication.userData.Roles.find(x=>x.Code === \"GUEST\")){\r\n this.router.navigateByUrl('/carrier/vehicle/list');\r\n }\r\n if(sm.Code === \"LISTAPP\" && this.authentication.userData.Roles.find(x=>x.Code === \"GUEST\")){\r\n this.checkCarriers();\r\n }\r\n if(sm.Code === \"LISTAPP\" && this.authentication.userData.Roles.find(x=>x.Code === \"ADMIN\")){\r\n this.router.navigateByUrl('/maintain-view-permit');\r\n }\r\n if(sm.Code === \"VCA\" && this.authentication.userData.Roles.find(x=>x.Code === \"GUEST\")){\r\n //this.router.navigateByUrl('/carrier/accounts/'+sm.code);\r\n }\r\n \r\n \r\n\r\n }\r\n hasChildren(parent) {\r\n\r\n if (this.ChildItems.some(x => x.MainMenuID === parent.ID))\r\n return true\r\n }\r\n\r\n\r\n sortMenu(data) {\r\n \r\n\r\n if (data.MainMenus.length > 0) {\r\n\r\n let count = data.MainMenus.length;\r\n\r\n for (let i = 0; i < count; i++) {\r\n\r\n this.ParentItems.push(data.MainMenus[i])\r\n }\r\n\r\n let Ccount = data.SubMenus.length;\r\n\r\n for (let i = 0; i < Ccount; i++) {\r\n\r\n if (data.SubMenus[i].MenuItemYN == true) {\r\n if(data.SubMenus[i][\"ID\"] == 20071)\r\n {\r\n data.SubMenus[i][\"ScreenName\"] = \"carrier/compliance/list\";\r\n }\r\n this.ChildItems.push(data.SubMenus[i])\r\n }\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n\r\n subMenus(mainMenu) {\r\n\r\n // data.forEach(element => {\r\n // if(element.CODE == 'ADMIN'){\r\n // this.hasAdmin = true;\r\n // }\r\n // });\r\n\r\n\r\n if (!this.hasAdmin) {\r\n if (mainMenu.Code == \"ADMIN\") {\r\n this.hasAdmin = true;\r\n }\r\n }\r\n\r\n\r\n\r\n if (typeof this.subMenuCache[mainMenu.ID] !== 'undefined') {\r\n return this.subMenuCache[mainMenu.ID];\r\n }\r\n\r\n if (this.authentication.userData && this.authentication.userData.SubMenus) {\r\n return this.subMenuCache[mainMenu.ID] = this.authentication.userData.SubMenus.filter((sm) => sm.MenuItemYN && sm.MainMenuID === mainMenu.ID);\r\n } else {\r\n return this.subMenuCache[mainMenu.ID] = [];\r\n }\r\n }\r\n\r\n pathFromScreenName(screenName: string) {\r\n \r\n let leftSideOfQuestionMark = (screenName + '').split('?', 2)[0];\r\n if(leftSideOfQuestionMark.indexOf('accounts')>0){\r\n leftSideOfQuestionMark=leftSideOfQuestionMark+\"/VCA\"\r\n }\r\n return leftSideOfQuestionMark;\r\n }\r\n\r\n queryParamsFromScreenName(screenName: string) {\r\n\r\n let result = {};\r\n let rightSideOfQuestionMark = (screenName + '').split('?', 2)[1];\r\n let parameters = (rightSideOfQuestionMark + '').split('&');\r\n\r\n for (let parameter of parameters) {\r\n let tokens = parameter.split('=', 2);\r\n result[tokens[0]] = tokens[1];\r\n }\r\n\r\n return result;\r\n }\r\n\r\n navAuthWeb() {\r\n const url = environment.authWebApi.client;\r\n window.open(url);\r\n }\r\n\r\n navSharePoint(){\r\n const url = this.UserData.SubMenus.find(p=>p.Code=='BO_SP').ScreenName;\r\n window.open(url);\r\n }\r\n navWFDashboard(){\r\n const url = this.UserData.SubMenus.find(p=>p.Code=='BO_WF').ScreenName;\r\n window.open(url);\r\n }\r\n\r\n subReport(){\r\n const url = this.UserData.SubMenus.find(p=>p.Code=='R').ScreenName;\r\n window.open(url);\r\n }\r\n\r\n \r\n}\r\n","
\r\n \r\n\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Router, ActivatedRoute, Params } from '@angular/router';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { AuthWebService } from 'app/services/authweb.service';\r\nimport { environment } from '../../environments/environment';\r\n\r\n\r\n@Component({\r\n selector: 'support',\r\n templateUrl: './support.component.html',\r\n styleUrls: ['./support.component.css']\r\n})\r\nexport class SupportComponent implements OnInit {\r\n\r\n phonenumber: string ;\r\n email: string;\r\n contactdetails;\r\n constructor(private authWebService: AuthWebService,\r\n private router: Router, private sanitizer: DomSanitizer,\r\n private activRoute: ActivatedRoute) { }\r\n\r\n ngOnInit() {\r\n this.setContactPage();\r\n }\r\n\r\n setContactPage(){\r\n this.authWebService.webrequest('GET','ConfigurationService', 'SystemConfig', JSON.stringify({\r\n systemCode: environment.authWebApi.systemCode\r\n })).then((data) => {\r\n environment.authWebApi.systemData = data;\r\n let html = environment.authWebApi.systemData.Configurations.find(p => p.Code == 'ICBMSContact1');\r\n if (html) {\r\n this.contactdetails = this.sanitizer.bypassSecurityTrustHtml(html.Value);\r\n } else {\r\n this.contactdetails = \"

Phone Number: +27 (0)12 471 2121
Email: customercare@cbrta.co.za customercare@cbrta.co.za

\";\r\n }\r\n\r\n ////console.log( environment.authWebApi.userData )\r\n }, (error) => {\r\n //console.log(error)\r\n });\r\n }\r\n}\r\n","

","import { Component, OnInit,ViewChild, ElementRef,Input,SimpleChange,SimpleChanges, ChangeDetectorRef } from '@angular/core';\r\nimport { DialogService } from 'ng2-bootstrap-modal';\r\nimport { ActivatedRoute, Router, Params } from '@angular/router';\r\nimport { UtilityServiceService } from 'app/services/utility-service.service';\r\nimport { AlertComponent } from 'app/popup/alert.component';\r\nimport { ErrorComponent } from 'app/popup/error.component';\r\nimport {DocumentsServiceService} from '../services/documents-service.service';\r\nimport {DocumenttypeService} from '../services/documenttype.service';\r\nimport { LinkedUploadedDocument } from 'app/interfaces/documents.interface';\r\nimport {CarrierService } from 'app/services/carrier.service';\r\nimport { AuthWebService } from 'app/services/authweb.service';\r\nimport { Account } from 'app/constants/account.enum';\r\nimport { environment } from 'environments/environment';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { PopupService } from 'app/services/shared/popup.service';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { catchError} from 'rxjs/operators';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { of } from 'rxjs';\r\nimport { ConfirmDialogService } from 'app/services/shared/confirm-dialog/confirm-dialog.service';\r\nimport { DatePipe } from '@angular/common';\r\nimport { ScannerService } from 'app/services/scanner.service';\r\n\r\n@Component({\r\n selector: 'uploaddocument',\r\n templateUrl: './uploaddocument.component.html',\r\n styleUrls: ['./uploaddocument.component.css']\r\n})\r\nexport class UploaddocumentComponent implements OnInit {\r\n\r\n @ViewChild('fileupload') uploader: ElementRef;\r\n @Input() dataCntrl: any;\r\n @Input('ctrlPages') ctrlPages: any;\r\n acc = Account;\r\n CarrierId: any;\r\n carrier_type_id: any;\r\n name: any;\r\n cresult:any;\r\n UserDocuments: any = [];\r\n DocTypesList:any =[];\r\n hasDocuments: boolean = false;\r\n fileToUpload: File = null;\r\n fileName ='';\r\n isRemove = false;\r\n removeRef: any;\r\n img: any;\r\n page = 1;\r\n lblHeading = '';\r\n isEmpty: boolean = false;\r\n isViewMode: boolean = false;\r\n sub: any;\r\n user = { LastName: '' };\r\n isProcess:boolean=true;\r\n pdfSrc: any;\r\n //Uploaded file data\r\n filebytes: string;\r\n filename: string;\r\n filetype: string;\r\n filesize: string;\r\n filedescription: string;\r\n isPromptUserToScan = false;\r\n scannerMessage =\r\n \"Please go and insert your paper to the scanner and click the scan button\";\r\n selectedScanner: any;\r\n scannedDocument: any;\r\n\r\n //Checking if it is kiosk mode\r\n isKiosk: boolean = false;\r\n\r\n @Input(\"isAnnualCompliance\") isAnnualCompliance: boolean = false;\r\n scanDocumentId: any;\r\n\r\n isView: boolean; //Check if the component is needed for viewing or uploading\r\n isLinkedDocument: boolean;\r\n showOtherUploadsOption = false;\r\n hasCategorySelected = false;\r\n validParent = true;\r\n isEdit = true;\r\n isLoadingImg = false\r\n //Object for document to be preview or downloaded\r\n previewDocument: any = [];\r\n otherdoctype: any = [];\r\n\r\n documenttypeid: number;\r\n file: File;\r\n spinner: boolean;\r\n\r\n catDocuments: any = [];\r\n uploadedDocuments: any = [];\r\n\r\n LinkedUploadedDocuments: any = [];\r\n AllDocuments: any = [];\r\n\r\n popoverTitle = 'Delete Document';\r\n popoverMessage = 'Are you sure you want to delete a document?';\r\n confirmText = 'Yes ';\r\n cancelText = 'No ';\r\n confirmClicked = false;\r\n cancelClicked = false;\r\n deleteConfirm = '';\r\n message = \"Loading Documents...\";\r\n public isLoading = false;\r\n isPDF: number = 0;\r\n doc: any;\r\n maxMB:any\r\n\r\n // list documents that the carrier has\r\n // list documents for its carrier type must upload\r\n // so its linked - the existing documents\r\n // interface required documents not uploaded yet\r\n\r\n /*Bongani*/\r\n carrier_id:number;\r\n dtype\r\n constructor(private documentService: DocumentsServiceService, private documenttypeService: DocumenttypeService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private carrierService : CarrierService,\r\n private authWebService: AuthWebService, private sanitizer: DomSanitizer,\r\n private confirm: PopupService,\r\n private utility: UtilityServiceService, private ref: ChangeDetectorRef,private toastr: ToastrService,private confirmDialogService: ConfirmDialogService,public datepipe: DatePipe, private scanner: ScannerService,) { }\r\n\r\n ngOnInit() {\r\n this.maxMB = environment.authWebApi.systemData.Configurations.find( p => p.Code=='MaxUploadMB1').Value;\r\n this.dtype = environment.authWebApi.systemData.Configurations.find( p => p.Code=='UploadDocTypes1').Value;\r\n\r\n\r\n //this.lblHeading = 'Document Uploads';\r\n this.user.LastName = (this.authWebService.userData) ? this.authWebService.userData.User.LastName : '';\r\n\r\n\r\n this.carrier_id = this.utility.ctrlPages[Account.First].carrierId\r\n ////console.log(this.carrier_id)\r\n this.getCarrierData();\r\n this.isProcess=false;\r\n \r\n\r\n }\r\n\r\n getCarrierData(){\r\n\r\n this.isLoading = true;\r\n this.carrierService.getById(this.carrier_id).subscribe((result:any) => {\r\n this.carrier_type_id = result.carrier_type_id;\r\n this.name = result.name;\r\n //Only call these guys once you have the type id you are looking for.\r\n this.isLoading = false;\r\n if (this.carrier_type_id > 0) { \r\n this.populateDocTypeList(); \r\n }\r\n\r\n }, error => {\r\n\r\n this.isLoading = false;\r\n // this.dialogService.addDialog(ErrorComponent, { title: 'Document Uploads', message: `Unable to retrieve carrier details.`, statuscode: error.Status, url: error.Uri, servermessage: error.Message });\r\n this.toastr.error(`A problem occured while retrieving carrier type's documents.`, 'Document Uploads'); \r\n });\r\n } \r\n populateDocTypeList()\r\n {\r\n // for this carrier get the related doc types \r\n this.isLoading = true;\r\n this.documenttypeService.getDocTypeLinkByCarrierTypeId(this.carrier_type_id)\r\n .pipe(\r\n catchError(err => {\r\n this.isLoading = false;\r\n if (err.status == 404)\r\n this.toastr.info(`There are no documents linked to this carrier type.`, 'Document Uploads');\r\n else\r\n this.toastr.error(`Unable to retrieve linked document types to given carrier type.`, 'Document Uploads');\r\n return of([]);\r\n })\r\n )\r\n .subscribe((result:any) => {\r\n this.DocTypesList = result.linked;\r\n //console.log('DocTypesList : ', this.DocTypesList);\r\n if (this.DocTypesList != null) {\r\n this.getCarrierExistingDocuments();\r\n }\r\n this.checkIfKiosk();\r\n this.isLoading = false;\r\n }, error => { \r\n this.isLoading = false;\r\n });\r\n\r\n }\r\n getCarrierExistingDocuments(){\r\n\r\n this.isLoading = true;\r\n this.documentService.getByCarrierId(this.carrier_id).subscribe(result => {\r\n this.UserDocuments = result; \r\n if (this.UserDocuments.length > 0 )\r\n {\r\n this.isEmpty = false;\r\n this.removeUploadedDocTypes();\r\n \r\n }\r\n },\r\n error => {\r\n this.isEmpty = true;\r\n this.UserDocuments=[];\r\n\r\n this.isLoading = false;\r\n // this.dialogService.addDialog(ErrorComponent, { title: 'Document Uploads', message: `Unable to retrieve carrier documents.`, statuscode: error.Status, url: error.Uri, servermessage: error.Message });\r\n });\r\n\r\n }\r\n removeUploadedDocTypes()\r\n {\r\n this.isLoading = true;\r\n\r\n if (this.UserDocuments.length > 0)\r\n {\r\n let count = this.UserDocuments.length;\r\n \r\n for(let knt = 0; knt < count; knt++){\r\n\r\n let index = this.isDocTypeInList(this.UserDocuments[knt].document_type_id);\r\n if (index != -1)\r\n {\r\n this.DocTypesList.splice(index,1);\r\n }\r\n }\r\n }\r\n this.isLoading = false;\r\n\r\n }\r\n isDocTypeInList(id: number) {\r\n let count = this.DocTypesList.length;\r\n for (let iter = 0; iter < count; iter++) {\r\n if (this.DocTypesList[iter].document_type_id == id) return iter;\r\n }\r\n return -1;\r\n }\r\n reload(){\r\n\r\n this.getCarrierData();\r\n\r\n }\r\n onChangeHeading(change: boolean = true) {\r\n this.lblHeading = (change) ? 'Documents' : 'Delete Document';\r\n }\r\n \r\n onNo() {\r\n this.isRemove = false;\r\n this.onChangeHeading();\r\n }\r\n\r\n onDelete(doc: any) {\r\n this.isLoading = true;\r\n this.message='Deleting selected document. Please wait...'\r\n this.documentService.delete(doc.id).subscribe(result => {\r\n\r\n // this.dialogService.addDialog(AlertComponent, { title: 'Delete Document', message: `Document ${this.removeRef.code} deleted.`, bold: `${this.removeRef.code}` });\r\n this.toastr.success(`Document ${doc.code} deleted.`,'Delete Document');\r\n\r\n //if (result != null) {\r\n // this.onNo();\r\n this.isLoading = false;\r\n this.reload();\r\n //}\r\n //this.onChangeHeading();\r\n }, error => {\r\n error = error.json();\r\n this.isLoading = false;\r\n // this.dialogService.addDialog(ErrorComponent, { title: 'Delete Document', message: `Document ${this.removeRef.code} was not deleted.`, statuscode: error.Status, url: error.Uri, servermessage: error.Message });\r\n this.toastr.error(`Document ${this.removeRef.code} was not deleted.`,'Delete Document');\r\n\r\n });\r\n }\r\n\r\n handleFileInput(files: FileList) {\r\n this.fileToUpload = files.item(0);\r\n this.fileName = files.item(0).name;\r\n}\r\nonFileSelected(event: any,documenttypeid: any) {\r\n this.setFileData(event,\"upload\",documenttypeid);\r\n\r\n}\r\n\r\nsetFileData(event: any , description: any,documenttypeid: any) {\r\n\r\n if (documenttypeid != null) {\r\n\r\n const reader = new FileReader();\r\n\r\n if (event.target.files && event.target.files.length > 0) {\r\n let file: any = null\r\n const count = event.target.files.length\r\n\r\n file = event.target.files[count - 1];\r\n let result = this.checkFileType(file.name);\r\n\r\n\r\n\r\n //if File type is in not found\r\n if (result != -1) {\r\n\r\n let sizeresult = this.checkFileSize(file.size);\r\n\r\n if (sizeresult != -1) {\r\n this.ref.detectChanges();\r\n\r\n reader.removeEventListener\r\n reader.readAsDataURL(file);\r\n reader.onload = () => {\r\n\r\n this.filebytes = reader.result.toString().split(',')[1]\r\n this.filename = file.name,\r\n this.filetype = file.type\r\n this.filedescription = description\r\n this.filesize = file.size\r\n this.validateData(documenttypeid)\r\n\r\n };\r\n }\r\n else {\r\n this.uploader.nativeElement.value = ''\r\n let allowedFileSize = environment.authWebApi.systemData.Configurations.find( p => p.Code=='MaxUploadMB1');\r\n // this.dialogService.addDialog(ErrorComponent, { title: 'File Upload Failed, Please try again.', message: `Maximum file size allowed ${allowedFileSize.Value.toString()}MB`, statuscode: '404',url: null, servermessage: \"File size exceeded maximum size\"});\r\n this.toastr.error(`Maximum file size allowed ${allowedFileSize.Value.toString()}MB`,'File Upload Failed, Please try again.');\r\n\r\n\r\n }\r\n\r\n }\r\n else\r\n {\r\n //send message allowed types\r\n this.uploader.nativeElement.value = ''\r\n let allowedFileTypes = environment.authWebApi.systemData.Configurations.find( p => p.Code=='UploadDocTypes1');\r\n\r\n // this.dialogService.addDialog(ErrorComponent, { title: 'File Upload Failed, Please try again.', message: `Only these file types are allowed: PDF ${allowedFileTypes.Value.toString()}`, statuscode: '404',url: null, servermessage: \"Extension not allowed\"});\r\n this.toastr.error(`Only these file types are allowed: PDF`,'File Upload Failed, Please try again.')\r\n }\r\n\r\n }\r\n\r\n this.uploader.nativeElement.value = ''\r\n // this.showOtherUploadsOption = false;\r\n\r\n }\r\n\r\n}\r\n\r\ncheckFileType(fileName:string)\r\n{\r\n // from the file name derive the extension\r\n let allowedFileTypes = environment.authWebApi.systemData.Configurations.find( p => p.Code=='UploadDocTypes1');\r\n let fileTypesArray = allowedFileTypes.Value.toString().split(',');\r\n //check if file type is\r\n let ext = fileName.split('.')[1].toUpperCase();\r\n let count = fileTypesArray.length;\r\n for (let iter = 0; iter < count; iter++) {\r\n if (fileTypesArray[iter] == ext) return iter;\r\n}\r\nreturn -1;\r\n}\r\n\r\ncheckFileSize(fileSize:number)\r\n{\r\n // get the maximum file size\r\n let allowedFileSize = environment.authWebApi.systemData.Configurations.find( p => p.Code=='MaxUploadMB1');\r\n let maxAllowedSize = allowedFileSize.Value; //it is in MB\r\n let document_sizeMB = (fileSize/1000000);\r\n if (document_sizeMB <= maxAllowedSize)\r\n return 1;\r\n else return -1;\r\n //\r\n\r\n\r\n\r\n\r\n}\r\nvalidateData(documenttypeid:any) {\r\n\r\n\r\n\r\n\r\n if (this.carrier_id == null) {\r\n\r\n // this.dialogService.addDialog(AlertComponent, { title: 'Error', message: 'Unable to upload documents ' })\r\n this.toastr.error('Unable to upload documents ','Error')\r\n\r\n\r\n } else {\r\n\r\n this.postFile(this.carrier_id, documenttypeid)\r\n }\r\n\r\n\r\n}\r\n\r\npostFile(CarrierID: any , documenttypeid: any) {\r\n\r\n //this.uploader.nativeElement.value = ''\r\n\r\n const formdata = new FormData()\r\n formdata.append('File', this.filebytes)\r\n formdata.append('FileName', this.filename)\r\n formdata.append('TypeOfFile', this.filetype)\r\n formdata.append('Notes', this.filedescription)\r\n formdata.append('FileSize', this.filesize)\r\n formdata.append('documenttypeid', documenttypeid)\r\n formdata.append('CarrierID', CarrierID)\r\n formdata.append('UserLastName', this.user.LastName)\r\n formdata.append('CarrierName', this.name)\r\n\r\n\r\n this.isLoading = true;\r\n\r\n this.message = 'Uploading... please wait'\r\nconsole.log('formdata ',formdata );\r\n this.documentService.postDocument(formdata, documenttypeid, CarrierID)\r\n .subscribe(\r\n response => {\r\n\r\n this.reload()//,\r\n //this.dialogService.addDialog(AlertComponent, {\r\n // title: 'File Uploaded',\r\n // message: 'File: ' + this.filename + ' was successfully uploaded.',\r\n // bold: this.filename\r\n //})\r\n\r\n\r\n },\r\n error => {\r\n this.isLoading =false;\r\n\r\n\r\n // this.dialogService.addDialog(ErrorComponent, {\r\n // title: 'File Upload Failed, Please try again.',\r\n // message: error._body , statuscode: error.Status, url: error.Uri, servermessage: error.Message\r\n // }),\r\n this.toastr.error('File Upload Failed, Please try again.')\r\n this.reload()\r\n })\r\n\r\n}\r\n\r\nviewDoc(id, fileName) {\r\n //alert(id);\r\n //console.log(id)\r\n this.isViewMode= true;\r\n id = fileName.substring(fileName.indexOf('#')+1);\r\n this.isLoadingImg = true;\r\n this.pdfSrc = null;\r\n this.img = null;\r\n let ext = fileName.substring(fileName.length - 3, fileName.length);\r\n //console.log(ext);\r\n if (fileName.includes(\".pdf\")) {\r\n this.documentService.downloadpdf(id).subscribe((x) => {\r\n let objectURL = URL.createObjectURL(x);\r\n this.pdfSrc = objectURL;\r\n\r\n //alert(this.pdfSrc.toString());\r\n //this.pdfSrc = this.sanitizer.bypassSecurityTrustUrl(objectURL);\r\n //console.log(this.pdfSrc)\r\n this.isLoadingImg = false;\r\n });\r\n return;\r\n }\r\n\r\n this.documentService.download(id).subscribe((x) => {\r\n let objectURL = URL.createObjectURL(x);\r\n console.log(objectURL);\r\n this.pdfSrc = null;\r\n this.img = this.sanitizer.bypassSecurityTrustUrl(objectURL);\r\n console.log(this.img);\r\n this.isLoadingImg = false;\r\n // this.img = x;\r\n });\r\n}\r\n\r\n\r\n// viewDoc(fileName){\r\n// //alert(fileName);\r\n// this.isLoadingImg = true;\r\n// this.doc = null;\r\n// this.isPDF = 0;\r\n// let id = fileName.substring(fileName.indexOf('#')+1);\r\n// console.log(fileName)\r\n// if(fileName.includes('.pdf')){\r\n// this.documentService.downloadpdf(id).subscribe(x => {\r\n// console.log(x);\r\n// let objectURL = URL.createObjectURL(x);\r\n// this.doc = objectURL; \r\n// this.isPDF = 2;\r\n// this.isLoadingImg = false;\r\n// })\r\n// return\r\n// }\r\n// this.documentService.download(id).subscribe(x => {\r\n// let objectURL = URL.createObjectURL(x); \r\n// this.isPDF = 2;\r\n// this.doc = this.sanitizer.bypassSecurityTrustUrl(objectURL); \r\n// this.isLoadingImg = false; \r\n// })\r\n// }\r\n\r\n//Delete document changes\r\n onConfirm(doc: any) { \r\n // this.confirm.showYesNo('Delete Uploaded Document', `Are you sure you want to remove the file ${doc.file_name} uploaded?`, null, 'Yes', 'No')\r\n // .subscribe((isConfirmed) => {\r\n // if (isConfirmed) {\r\n // this.onDelete(doc) \r\n // } else { \r\n // return;\r\n // }\r\n // });\r\n this.confirmDialogService.confirmThis(`Are you sure you want to remove the file ${doc.file_name} uploaded?`, () => { \r\n this.onDelete(doc);\r\n\r\n \r\n }, () => { \r\n return;\r\n })\r\n }\r\n extraDoc(doc){\r\n this.DocTypesList.push(doc);\r\n this.toastr.info('Please avoid using the same File Name on the document type!')\r\n } \r\n\r\n checkIfKiosk() {\r\n this.documentService.checkIfKiosk().subscribe((res: any) => {\r\n console.log(res);\r\n \r\n this.isKiosk = true;\r\n \r\n \r\n\r\n }, (err)=>{\r\n console.log(err.status);\r\n })\r\n \r\n}\r\n\r\nscanDocument(id) {\r\n this.isLoadingImg = true;\r\n this.scanDocumentId = id;\r\n this.scanner.getKioskScanner().subscribe(\r\n (result:string) => {\r\n if (result) {\r\n \r\n this.scanner.getScannerByDeviceID(result.replace(' ', '')).subscribe(\r\n (response: any) => {\r\n \r\n if (response.status_id == 1014) {\r\n this.isPromptUserToScan = true;\r\n this.isViewMode= false;\r\n this.scannerMessage = `Please go and insert your paper to the scanner ${response.scanner_alias} and click the scan button `;\r\n response.status_id = 1015;\r\n response.pc_ip_address = result;\r\n response.status = null;\r\n this.selectedScanner = response;\r\n this.scanner.update(response).subscribe((res) => {\r\n \r\n });\r\n\r\n document.getElementById(\"btnView\").click();\r\n this.isLoadingImg = false;\r\n } else {\r\n this.toastr.warning(\r\n `Scanner ${response.scanner_alias} is currently not available, please try again later`\r\n );\r\n }\r\n },\r\n (error) => {\r\n this.toastr.warning(\r\n \"An error occurred when getting the scanner details. Please try again later or contact the administrator\"\r\n );\r\n }\r\n );\r\n }\r\n \r\n },\r\n (err) => {\r\n this.toastr.error(\r\n \"An error occured getting the scanner details from the kiosk. Please try again later or contact the administrator\"\r\n );\r\n this.isLoadingImg = false;\r\n }\r\n );\r\n}\r\n\r\ncancelScanner() {\r\n if(this.selectedScanner){\r\n this.selectedScanner.status_id = 1014;\r\n this.scanner.update(this.selectedScanner).subscribe((res) => {\r\n\r\n });\r\n }\r\n\r\n}\r\n\r\ncallTheScanner() {\r\n this.isLoadingImg = true;\r\n this.pdfSrc = null;\r\n this.scannedDocument = null;\r\n this.selectedScanner.status_id = 1015;\r\n this.scanner.update(this.selectedScanner).subscribe((res) => {\r\n\r\n });\r\n\r\n this.isPromptUserToScan = false;\r\n this.documentService.scanDocument().subscribe((x) => {\r\n\r\n this.scannedDocument = x;\r\n let objectURL = URL.createObjectURL(x);\r\n\r\n this.pdfSrc = objectURL;\r\n this.isLoadingImg = false;\r\n this.selectedScanner.status_id = 1014;\r\n this.scanner.update(this.selectedScanner).subscribe((res) => {\r\n \r\n });\r\n //document.getElementById(\"btnView\").click();\r\n\r\n //Post this document to sharepoint.\r\n }, error =>{\r\n this.toastr.error(\r\n \"An error occured in scanner, please make sure the paper is properly placed in the scanner and retry to scan again.\"\r\n );\r\n\r\n this.selectedScanner.status_id = 1014;\r\n this.scanner.update(this.selectedScanner).subscribe((res) => {\r\n \r\n this.isLoadingImg = false;\r\n });\r\n });\r\n}\r\n\r\npostScannedDoc() {\r\n\r\n var reader = new FileReader();\r\n reader.removeEventListener;\r\n if(this.scannedDocument){\r\n reader.readAsDataURL(this.scannedDocument);\r\n reader.onload = () => {\r\n this.filebytes = reader.result.toString().split(\",\")[1];\r\n this.filesize = this.scannedDocument.size.toString();\r\n this.filetype = this.scannedDocument.type;\r\n this.filename =\r\n \"Scan\" + this.datepipe.transform(new Date(), \"ddMMyyyyHHmmss\") + \".pdf\";\r\n this.filedescription = \"upload\";\r\n document.getElementById(\"btnView\").click();\r\n this.isLoadingImg = true;\r\n this.isLoading = true;\r\n this.validateData(this.scanDocumentId);\r\n \r\n };\r\n }\r\n \r\n}\r\n\r\n testscanDocument(id) {\r\n\r\nthis.documentService.scanDocument().subscribe(x => {\r\n let objectURL = URL.createObjectURL(x);\r\n\r\n var reader = new FileReader();\r\n reader.removeEventListener\r\n reader.readAsDataURL(x);\r\n reader.onload = () => {\r\n\r\n this.filebytes = reader.result.toString().split(',')[1]\r\n this.filesize = x.size.toString();\r\n this.filetype = x.type;\r\n this.filename =\"Scan\" + this.datepipe.transform(new Date(), 'ddMMyyyyHHmmss') + \".pdf\";\r\n this.filedescription = \"upload\";\r\n \r\n console.log(\"Type\",x.type)\r\n this.validateData(id);\r\n\r\n };\r\n //Post this document to sharepoint.\r\n})\r\n}\r\n}\r\n","
\r\n
\r\n \r\n
\r\n \r\n\r\n
\r\n \r\n
\r\n \r\n
\r\n
0 || UserDocuments.length>0\">\r\n When submitting copies of letters, documents or contracts in support of an application, please ensure that they are clear and legible. Documents that are not clear will not be accepted as supporting evidence. All foreign documents must be translated by\r\n a certified translator into English.\r\n
\r\n \r\n \r\n\r\n \r\n {{UserDocument.description}}\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n 4\">\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n
{{UserDocument.file_name}}\r\n \r\n \r\n \r\n
{{docType.description}}\r\n \r\n * \r\n \r\n \r\n
{{docType.description}} \r\n \r\n \r\n
\r\n \r\n
\r\n (No Documents found)\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n
Document Upload
\r\n \r\n
\r\n
\r\n\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n

{{scannerMessage}}

\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n","import { Directive, forwardRef, Attribute } from '@angular/core';\r\nimport { Validator, AbstractControl, NG_VALIDATORS } from '@angular/forms';\r\n// This compares if two strings are equal i.e. in the case of passwords\r\n// setting the attribute reverse to true enables you to compare if string1 has changed\r\n@Directive({\r\n selector: '[appEqualvalidator][formControlName],[validateEqual][formControl],[validateEqual][ngModel]',\r\n providers: [\r\n { provide: NG_VALIDATORS, useExisting: forwardRef(() => EqualvalidatorDirective), multi: true }\r\n ]\r\n})\r\nexport class EqualvalidatorDirective implements Validator{\r\n\r\n constructor(@Attribute('appEqualvalidator') public appEqualvalidator: string, @Attribute('reverse') public reverse: string) { }\r\n\r\n private get isReverse() {\r\n if (!this.reverse) return false;\r\n return this.reverse === 'true' ? true: false;\r\n}\r\n validate(c: AbstractControl): { [key: string]: any } {\r\n // self value\r\n let v = c.value;\r\n\r\n // control vlaue\r\n let e = c.root.get(this.appEqualvalidator);\r\n\r\n // value not equal\r\n if (e && v !== e.value && !this.isReverse) {\r\n return {\r\n appEqualvalidator: false\r\n }\r\n }\r\n\r\n\r\n // value equal and reverse\r\n if (e && v === e.value && this.isReverse) {\r\n delete e.errors['appEqualvalidator'];\r\n if (!Object.keys(e.errors).length) e.setErrors(null);\r\n }\r\n\r\n // value not equal and reverse\r\n if (e && v !== e.value && this.isReverse) {\r\n e.setErrors({ appEqualvalidator: false });\r\n }\r\n\r\n return null;\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { DialogService } from 'ng2-bootstrap-modal';\r\nimport { AlertComponent } from 'app/popup/alert.component';\r\nimport { ErrorComponent } from 'app/popup/error.component';\r\nimport { UtilityServiceService } from 'app/services/utility-service.service';\r\nimport {WorkflowdashboardService} from 'app/services/workflowdashboard.service';\r\n\r\n@Component({\r\n selector: 'app-workflowdashboard',\r\n templateUrl: './workflowdashboard.component.html',\r\n styleUrls: ['./workflowdashboard.component.css']\r\n})\r\nexport class WorkflowdashboardComponent implements OnInit {\r\n\r\n vFlows: any = [];\r\n isRemove = false;\r\n removeRef: any;\r\n \r\n page = 1;\r\n lblHeading = '';\r\n\r\n popoverTitle = 'Delete Workflow';\r\n popoverMessage = 'Are you sure you want to delete Workflow?';\r\n confirmText = 'Yes ';\r\n cancelText = 'No ';\r\n confirmClicked = false;\r\n cancelClicked = false;\r\n deleteConfirm = '';\r\n message = \"Loading Workflows...\";\r\n\r\n public isLoading = false;\r\n isEmpty: boolean = false;\r\n\r\n constructor(private wservice: WorkflowdashboardService,\r\n public utility: UtilityServiceService) { }\r\n\r\n ngOnInit() {\r\n //load the screen\r\n this.onChangeHeading();\r\n this.reload(); \r\n }\r\n reload() {\r\n this.isLoading = true;\r\n this.wservice.getDashBoard().subscribe(result => {\r\n this.vFlows = result;\r\n \r\n //console.log(this.vFlows);\r\n this.isLoading = false;\r\n }, error => {\r\n console.dir(error);\r\n this.isLoading = false;\r\n this.isEmpty = true;\r\n });\r\n }\r\n onDelete(id: any) {\r\n \r\n /* this.service.delete(id).subscribe(result => {\r\n\r\n this.dialogService.addDialog(AlertComponent, { title: 'Delete Vehicle Make', message: `Vehicle Make ${this.removeRef.code} deleted.`, bold: `${this.removeRef.code}` });\r\n if (result != null) {\r\n this.onNo();\r\n this.reload();\r\n }\r\n this.onChangeHeandig();\r\n }, error => {\r\n error = error.json();\r\n this.dialogService.addDialog(ErrorComponent, { title: 'Delete Vehicle Make', message: `Vehicle Make ${this.removeRef.code} was not deleted.`, statuscode: error.Status, url: error.Uri, servermessage: error.Message });\r\n }); */\r\n }\r\n onConfirm(doc: any) {\r\n this.removeRef = doc;\r\n this.deleteConfirm = `Are you sure you want to delete Workflow ${this.removeRef.WorkflowName}?`;\r\n this.onChangeHeading(false);\r\n this.isRemove = true;\r\n }\r\n\r\n onNo() {\r\n this.isRemove = false;\r\n this.onChangeHeading();\r\n }\r\n\r\n onChangeHeading(change: boolean = true) {\r\n this.lblHeading = (change) ? 'Workflow' : 'Delete Workflow';\r\n }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
Manage {{this.lblHeading}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 4\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n #\r\n \r\n \r\n Name\r\n \r\n \r\n Start\r\n \r\n \r\n Status\r\n \r\n \r\n Role\r\n \r\n \r\n User\r\n
{{vFlow.WorkflowInstanceId}}{{vFlow.WorkflowName}}{{vFlow.Start}}{{vFlow.Status}}{{vFlow.Role}}{{vFlow.User}}
\r\n \r\n
\r\n No Workflows found.\r\n
\r\n
\r\n
\r\n
\r\n\r\n","export const environment = {\r\n production: true,\r\n name: \"prod\",\r\n version: '20231006.1',\r\n paygateEnabled: true,\r\n iCBMSWebApi: { \r\n url: \"https://crosseasy.cbrta.co.za:90/api/\",\r\n systemCode: \"ICBMS\",\r\n userData: null\r\n },\r\n consoleAPIUrl : \"http://localhost:5050\",\r\n payGateApi: {\r\n url: \"https://crosseasy.cbrta.co.za:4433/PayGateApi\",\r\n icbmsUrl: \"https://crosseasy.cbrta.co.za:90/api/paygate\",\r\n returnUrl:\"https://crosseasy.cbrta.co.za:90/api/paygate/payment-done/\" \r\n },\r\n authWebApi: {\r\n url: \"https://crosseasy.cbrta.co.za:81\", \t\r\n client:\"https://crosseasy.cbrta.co.za:82\",\r\n systemCode: \"ICBMS\",\r\n userData: null,\r\n systemData: null\r\n }\r\n , workflowApi:\r\n {\r\n url: \"https://crosseasy.cbrta.co.za:85/api/\"\r\n }\r\n , captcha: {\r\n siteKey:\"6LfUH88ZAAAAANOajW5BzyUDB3ypzJOoZIaSTwh1\"\r\n }\r\n , activateLink: {\r\n url:\"https://crosseasy.cbrta.co.za/activate\"\r\n },\r\n extractToView: { \r\n url: \"https://crosseasy.cbrta.co.za:85/\"\r\n },\r\n azure:{\r\n redirectUri:\"https://crosseasy.cbrta.co.za\"\r\n }\r\n};\r\n","import '@angular/compiler';\r\nimport { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\ndeclare var jQuery;\r\ndeclare var async;\r\nvar userID:any;\r\nvar systemCode:any;\r\n\r\nasync.series([\r\n (callback) => {\r\n\r\n /*get user data*/\r\n if(localStorage.getItem(\"userID\") != null && localStorage.getItem(\"userID\") != undefined && localStorage.getItem(\"userID\") != \"undefined\") \r\n\t\t{\r\n\t\t userID = localStorage.getItem(\"userID\");\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tuserID = -1;\r\n\t\t}\r\n\r\n jQuery.ajax({\r\n url: `${environment.authWebApi.url}/api/UserService/GetMySecurityData/${userID}/${environment.authWebApi.systemCode}`,\r\n type: 'GET',\r\n headers: {\r\n 'Accept': 'application/json'// ,\r\n // 'Authorization': `Bearer ${environment.keyCloak.instance.token}`,\r\n },\r\n success: (data) => {\r\n environment.authWebApi.userData = data;\r\n\r\n return callback();\r\n },\r\n error: (jqXHR, textStatus, errorThrown) => {\r\n return callback(`${jqXHR.status} : ${errorThrown} : ${textStatus}`);\r\n }\r\n });\r\n },\r\n (callback) => {\r\n // bootstrap module\r\n platformBrowserDynamic().bootstrapModule(AppModule).then(() => callback()).catch(callback);\r\n }\r\n\r\n], (error) => {\r\n\r\n // log error to console\r\n\r\n if (error) {\r\n console.error('Error while starting application =>', error);\r\n }\r\n // hide spinner if not hidden after a small time\r\n});\r\n\r\n\r\n","var map = {\n\t\"./af\": 62275,\n\t\"./af.js\": 62275,\n\t\"./ar\": 90857,\n\t\"./ar-dz\": 11218,\n\t\"./ar-dz.js\": 11218,\n\t\"./ar-kw\": 14754,\n\t\"./ar-kw.js\": 14754,\n\t\"./ar-ly\": 66680,\n\t\"./ar-ly.js\": 66680,\n\t\"./ar-ma\": 92178,\n\t\"./ar-ma.js\": 92178,\n\t\"./ar-sa\": 56522,\n\t\"./ar-sa.js\": 56522,\n\t\"./ar-tn\": 95682,\n\t\"./ar-tn.js\": 95682,\n\t\"./ar.js\": 90857,\n\t\"./az\": 70164,\n\t\"./az.js\": 70164,\n\t\"./be\": 79774,\n\t\"./be.js\": 79774,\n\t\"./bg\": 60947,\n\t\"./bg.js\": 60947,\n\t\"./bm\": 21832,\n\t\"./bm.js\": 21832,\n\t\"./bn\": 89650,\n\t\"./bn-bd\": 74477,\n\t\"./bn-bd.js\": 74477,\n\t\"./bn.js\": 89650,\n\t\"./bo\": 66005,\n\t\"./bo.js\": 66005,\n\t\"./br\": 98492,\n\t\"./br.js\": 98492,\n\t\"./bs\": 70534,\n\t\"./bs.js\": 70534,\n\t\"./ca\": 52061,\n\t\"./ca.js\": 52061,\n\t\"./cs\": 84737,\n\t\"./cs.js\": 84737,\n\t\"./cv\": 61167,\n\t\"./cv.js\": 61167,\n\t\"./cy\": 77996,\n\t\"./cy.js\": 77996,\n\t\"./da\": 9528,\n\t\"./da.js\": 9528,\n\t\"./de\": 14540,\n\t\"./de-at\": 49430,\n\t\"./de-at.js\": 49430,\n\t\"./de-ch\": 67978,\n\t\"./de-ch.js\": 67978,\n\t\"./de.js\": 14540,\n\t\"./dv\": 83426,\n\t\"./dv.js\": 83426,\n\t\"./el\": 6616,\n\t\"./el.js\": 6616,\n\t\"./en-au\": 63816,\n\t\"./en-au.js\": 63816,\n\t\"./en-ca\": 32162,\n\t\"./en-ca.js\": 32162,\n\t\"./en-gb\": 83305,\n\t\"./en-gb.js\": 83305,\n\t\"./en-ie\": 61954,\n\t\"./en-ie.js\": 61954,\n\t\"./en-il\": 43060,\n\t\"./en-il.js\": 43060,\n\t\"./en-in\": 59923,\n\t\"./en-in.js\": 59923,\n\t\"./en-nz\": 13540,\n\t\"./en-nz.js\": 13540,\n\t\"./en-sg\": 16505,\n\t\"./en-sg.js\": 16505,\n\t\"./eo\": 41907,\n\t\"./eo.js\": 41907,\n\t\"./es\": 86640,\n\t\"./es-do\": 41246,\n\t\"./es-do.js\": 41246,\n\t\"./es-mx\": 56131,\n\t\"./es-mx.js\": 56131,\n\t\"./es-us\": 36430,\n\t\"./es-us.js\": 36430,\n\t\"./es.js\": 86640,\n\t\"./et\": 62551,\n\t\"./et.js\": 62551,\n\t\"./eu\": 32711,\n\t\"./eu.js\": 32711,\n\t\"./fa\": 54572,\n\t\"./fa.js\": 54572,\n\t\"./fi\": 33390,\n\t\"./fi.js\": 33390,\n\t\"./fil\": 87860,\n\t\"./fil.js\": 87860,\n\t\"./fo\": 48216,\n\t\"./fo.js\": 48216,\n\t\"./fr\": 99291,\n\t\"./fr-ca\": 98527,\n\t\"./fr-ca.js\": 98527,\n\t\"./fr-ch\": 58407,\n\t\"./fr-ch.js\": 58407,\n\t\"./fr.js\": 99291,\n\t\"./fy\": 47054,\n\t\"./fy.js\": 47054,\n\t\"./ga\": 49540,\n\t\"./ga.js\": 49540,\n\t\"./gd\": 73917,\n\t\"./gd.js\": 73917,\n\t\"./gl\": 51486,\n\t\"./gl.js\": 51486,\n\t\"./gom-deva\": 56245,\n\t\"./gom-deva.js\": 56245,\n\t\"./gom-latn\": 48868,\n\t\"./gom-latn.js\": 48868,\n\t\"./gu\": 59652,\n\t\"./gu.js\": 59652,\n\t\"./he\": 89019,\n\t\"./he.js\": 89019,\n\t\"./hi\": 42040,\n\t\"./hi.js\": 42040,\n\t\"./hr\": 63402,\n\t\"./hr.js\": 63402,\n\t\"./hu\": 79322,\n\t\"./hu.js\": 79322,\n\t\"./hy-am\": 27609,\n\t\"./hy-am.js\": 27609,\n\t\"./id\": 57942,\n\t\"./id.js\": 57942,\n\t\"./is\": 98275,\n\t\"./is.js\": 98275,\n\t\"./it\": 73053,\n\t\"./it-ch\": 4378,\n\t\"./it-ch.js\": 4378,\n\t\"./it.js\": 73053,\n\t\"./ja\": 46176,\n\t\"./ja.js\": 46176,\n\t\"./jv\": 679,\n\t\"./jv.js\": 679,\n\t\"./ka\": 92726,\n\t\"./ka.js\": 92726,\n\t\"./kk\": 72953,\n\t\"./kk.js\": 72953,\n\t\"./km\": 86957,\n\t\"./km.js\": 86957,\n\t\"./kn\": 59181,\n\t\"./kn.js\": 59181,\n\t\"./ko\": 47148,\n\t\"./ko.js\": 47148,\n\t\"./ku\": 27752,\n\t\"./ku.js\": 27752,\n\t\"./ky\": 65675,\n\t\"./ky.js\": 65675,\n\t\"./lb\": 41263,\n\t\"./lb.js\": 41263,\n\t\"./lo\": 65746,\n\t\"./lo.js\": 65746,\n\t\"./lt\": 11143,\n\t\"./lt.js\": 11143,\n\t\"./lv\": 38753,\n\t\"./lv.js\": 38753,\n\t\"./me\": 44054,\n\t\"./me.js\": 44054,\n\t\"./mi\": 31573,\n\t\"./mi.js\": 31573,\n\t\"./mk\": 30202,\n\t\"./mk.js\": 30202,\n\t\"./ml\": 68523,\n\t\"./ml.js\": 68523,\n\t\"./mn\": 79794,\n\t\"./mn.js\": 79794,\n\t\"./mr\": 56681,\n\t\"./mr.js\": 56681,\n\t\"./ms\": 56975,\n\t\"./ms-my\": 39859,\n\t\"./ms-my.js\": 39859,\n\t\"./ms.js\": 56975,\n\t\"./mt\": 3691,\n\t\"./mt.js\": 3691,\n\t\"./my\": 5152,\n\t\"./my.js\": 5152,\n\t\"./nb\": 7607,\n\t\"./nb.js\": 7607,\n\t\"./ne\": 21526,\n\t\"./ne.js\": 21526,\n\t\"./nl\": 86368,\n\t\"./nl-be\": 40076,\n\t\"./nl-be.js\": 40076,\n\t\"./nl.js\": 86368,\n\t\"./nn\": 68420,\n\t\"./nn.js\": 68420,\n\t\"./oc-lnc\": 51906,\n\t\"./oc-lnc.js\": 51906,\n\t\"./pa-in\": 94504,\n\t\"./pa-in.js\": 94504,\n\t\"./pl\": 54721,\n\t\"./pl.js\": 54721,\n\t\"./pt\": 74645,\n\t\"./pt-br\": 54548,\n\t\"./pt-br.js\": 54548,\n\t\"./pt.js\": 74645,\n\t\"./ro\": 71977,\n\t\"./ro.js\": 71977,\n\t\"./ru\": 26042,\n\t\"./ru.js\": 26042,\n\t\"./sd\": 78849,\n\t\"./sd.js\": 78849,\n\t\"./se\": 27739,\n\t\"./se.js\": 27739,\n\t\"./si\": 50084,\n\t\"./si.js\": 50084,\n\t\"./sk\": 92449,\n\t\"./sk.js\": 92449,\n\t\"./sl\": 23086,\n\t\"./sl.js\": 23086,\n\t\"./sq\": 33139,\n\t\"./sq.js\": 33139,\n\t\"./sr\": 30607,\n\t\"./sr-cyrl\": 30063,\n\t\"./sr-cyrl.js\": 30063,\n\t\"./sr.js\": 30607,\n\t\"./ss\": 40131,\n\t\"./ss.js\": 40131,\n\t\"./sv\": 21665,\n\t\"./sv.js\": 21665,\n\t\"./sw\": 5642,\n\t\"./sw.js\": 5642,\n\t\"./ta\": 33622,\n\t\"./ta.js\": 33622,\n\t\"./te\": 74825,\n\t\"./te.js\": 74825,\n\t\"./tet\": 48336,\n\t\"./tet.js\": 48336,\n\t\"./tg\": 39238,\n\t\"./tg.js\": 39238,\n\t\"./th\": 99463,\n\t\"./th.js\": 99463,\n\t\"./tk\": 39986,\n\t\"./tk.js\": 39986,\n\t\"./tl-ph\": 29672,\n\t\"./tl-ph.js\": 29672,\n\t\"./tlh\": 40043,\n\t\"./tlh.js\": 40043,\n\t\"./tr\": 51212,\n\t\"./tr.js\": 51212,\n\t\"./tzl\": 50110,\n\t\"./tzl.js\": 50110,\n\t\"./tzm\": 80482,\n\t\"./tzm-latn\": 38309,\n\t\"./tzm-latn.js\": 38309,\n\t\"./tzm.js\": 80482,\n\t\"./ug-cn\": 42495,\n\t\"./ug-cn.js\": 42495,\n\t\"./uk\": 54157,\n\t\"./uk.js\": 54157,\n\t\"./ur\": 80984,\n\t\"./ur.js\": 80984,\n\t\"./uz\": 64141,\n\t\"./uz-latn\": 43662,\n\t\"./uz-latn.js\": 43662,\n\t\"./uz.js\": 64141,\n\t\"./vi\": 12607,\n\t\"./vi.js\": 12607,\n\t\"./x-pseudo\": 66460,\n\t\"./x-pseudo.js\": 66460,\n\t\"./yo\": 92948,\n\t\"./yo.js\": 92948,\n\t\"./zh-cn\": 62658,\n\t\"./zh-cn.js\": 62658,\n\t\"./zh-hk\": 39352,\n\t\"./zh-hk.js\": 39352,\n\t\"./zh-mo\": 38274,\n\t\"./zh-mo.js\": 38274,\n\t\"./zh-tw\": 98451,\n\t\"./zh-tw.js\": 98451\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 = 46700;","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */"],"names":[],"sourceRoot":"webpack:///"}