sajan 3 years ago
parent 52f1fd5473
commit 9f881ed54e

95
package-lock.json generated

@ -37,7 +37,6 @@
"ng-otp-input": "^1.8.1", "ng-otp-input": "^1.8.1",
"ngx-bootstrap": "^7.0.0", "ngx-bootstrap": "^7.0.0",
"ngx-echarts": "6.0.1", "ngx-echarts": "6.0.1",
"ngx-mat-timepicker": "^15.1.3",
"ngx-toastr": "13.2.1", "ngx-toastr": "13.2.1",
"ngx-trend": "6.1.1", "ngx-trend": "6.1.1",
"pdfmake": "^0.2.5", "pdfmake": "^0.2.5",
@ -368,18 +367,14 @@
} }
}, },
"node_modules/@angular/cdk": { "node_modules/@angular/cdk": {
"version": "11.2.13", "version": "11.2.12",
"resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-11.2.13.tgz", "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-11.2.12.tgz",
"integrity": "sha512-FkE4iCwoLbQxLDUOjV1I7M/6hmpyb7erAjEdWgch7nGRNxF1hqX5Bqf1lvLFKPNCbx5NRI5K7YVAdIUQUR8vug==", "integrity": "sha512-LImCQQ7n5OnTGXBAx1BaHgBBbdXiEtsNcHk5RvVURya9sswRcXRoa48EG3RyuT8mtqWsUdOX9+v4nCINLG4hZA==",
"dependencies": { "dependencies": {
"tslib": "^2.0.0" "tslib": "^2.0.0"
}, },
"optionalDependencies": { "optionalDependencies": {
"parse5": "^5.0.0" "parse5": "^5.0.0"
},
"peerDependencies": {
"@angular/common": "^11.0.0 || ^12.0.0-0",
"@angular/core": "^11.0.0 || ^12.0.0-0"
} }
}, },
"node_modules/@angular/cdk/node_modules/parse5": { "node_modules/@angular/cdk/node_modules/parse5": {
@ -615,18 +610,11 @@
"dev": true "dev": true
}, },
"node_modules/@angular/material": { "node_modules/@angular/material": {
"version": "11.2.13", "version": "11.2.12",
"resolved": "https://registry.npmjs.org/@angular/material/-/material-11.2.13.tgz", "resolved": "https://registry.npmjs.org/@angular/material/-/material-11.2.12.tgz",
"integrity": "sha512-FqFdGSkOtqsmeLyTSousodDGUy2NqbtxCIKv2rwbsIRwHNKB0KpR/UQhA2gMRuGa5hxhMJ0DW0Tf9neMRuLCTg==", "integrity": "sha512-n3HDKoM552jLcmxtpTYzMUzV6V9vUBKyNs7SNdUfjuK00VJlTWMu03g/QWOj2Y9KftOuDUa8+N2XodwAr+jtCw==",
"dependencies": { "dependencies": {
"tslib": "^2.0.0" "tslib": "^2.0.0"
},
"peerDependencies": {
"@angular/animations": "^11.0.0 || ^12.0.0-0",
"@angular/cdk": "11.2.13",
"@angular/common": "^11.0.0 || ^12.0.0-0",
"@angular/core": "^11.0.0 || ^12.0.0-0",
"@angular/forms": "^11.0.0 || ^12.0.0-0"
} }
}, },
"node_modules/@angular/material-moment-adapter": { "node_modules/@angular/material-moment-adapter": {
@ -9614,28 +9602,6 @@
"tslib": "^2.0.0" "tslib": "^2.0.0"
} }
}, },
"node_modules/ngx-mat-timepicker": {
"version": "15.1.3",
"resolved": "https://registry.npmjs.org/ngx-mat-timepicker/-/ngx-mat-timepicker-15.1.3.tgz",
"integrity": "sha512-DqAzv9aLHPT316k+st9GV1QfUTNKE2SfEyCmOD2y86HqiTC5APKezVzQByH6kT3Jq46n7dzV6rtCoMsQ+LcBjQ==",
"dependencies": {
"ts-luxon": "^3.0.1",
"tslib": "^2.4.1"
},
"engines": {
"node": ">=14.20.0"
},
"peerDependencies": {
"@angular/animations": "^15.0.0",
"@angular/cdk": "^15.0.0",
"@angular/common": "^15.0.0",
"@angular/compiler": "^15.0.0",
"@angular/core": "^15.0.0",
"@angular/forms": "^15.0.0",
"@angular/material": "^15.0.0",
"@angular/platform-browser": "^15.0.0"
}
},
"node_modules/ngx-toastr": { "node_modules/ngx-toastr": {
"version": "13.2.1", "version": "13.2.1",
"resolved": "https://registry.npmjs.org/ngx-toastr/-/ngx-toastr-13.2.1.tgz", "resolved": "https://registry.npmjs.org/ngx-toastr/-/ngx-toastr-13.2.1.tgz",
@ -13977,14 +13943,6 @@
"tree-kill": "cli.js" "tree-kill": "cli.js"
} }
}, },
"node_modules/ts-luxon": {
"version": "3.5.2",
"resolved": "https://registry.npmjs.org/ts-luxon/-/ts-luxon-3.5.2.tgz",
"integrity": "sha512-hO8viyesNP1zibJe/TFpRbHtbAWpCKYL7jN7248lvoubOCb31V+CzJHjhyI/HQCE1CgqxwKmqiFBl9T/gcvLJg==",
"engines": {
"node": ">=13"
}
},
"node_modules/ts-node": { "node_modules/ts-node": {
"version": "8.3.0", "version": "8.3.0",
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.3.0.tgz", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.3.0.tgz",
@ -14014,9 +13972,9 @@
} }
}, },
"node_modules/tslib": { "node_modules/tslib": {
"version": "2.6.0", "version": "2.4.0",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.0.tgz", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
"integrity": "sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA==" "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
}, },
"node_modules/tslint": { "node_modules/tslint": {
"version": "6.1.3", "version": "6.1.3",
@ -16526,9 +16484,9 @@
} }
}, },
"@angular/cdk": { "@angular/cdk": {
"version": "11.2.13", "version": "11.2.12",
"resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-11.2.13.tgz", "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-11.2.12.tgz",
"integrity": "sha512-FkE4iCwoLbQxLDUOjV1I7M/6hmpyb7erAjEdWgch7nGRNxF1hqX5Bqf1lvLFKPNCbx5NRI5K7YVAdIUQUR8vug==", "integrity": "sha512-LImCQQ7n5OnTGXBAx1BaHgBBbdXiEtsNcHk5RvVURya9sswRcXRoa48EG3RyuT8mtqWsUdOX9+v4nCINLG4hZA==",
"requires": { "requires": {
"parse5": "^5.0.0", "parse5": "^5.0.0",
"tslib": "^2.0.0" "tslib": "^2.0.0"
@ -16729,9 +16687,9 @@
"dev": true "dev": true
}, },
"@angular/material": { "@angular/material": {
"version": "11.2.13", "version": "11.2.12",
"resolved": "https://registry.npmjs.org/@angular/material/-/material-11.2.13.tgz", "resolved": "https://registry.npmjs.org/@angular/material/-/material-11.2.12.tgz",
"integrity": "sha512-FqFdGSkOtqsmeLyTSousodDGUy2NqbtxCIKv2rwbsIRwHNKB0KpR/UQhA2gMRuGa5hxhMJ0DW0Tf9neMRuLCTg==", "integrity": "sha512-n3HDKoM552jLcmxtpTYzMUzV6V9vUBKyNs7SNdUfjuK00VJlTWMu03g/QWOj2Y9KftOuDUa8+N2XodwAr+jtCw==",
"requires": { "requires": {
"tslib": "^2.0.0" "tslib": "^2.0.0"
} }
@ -19384,7 +19342,8 @@
"bootstrap": { "bootstrap": {
"version": "5.1.3", "version": "5.1.3",
"resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.1.3.tgz", "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.1.3.tgz",
"integrity": "sha512-fcQztozJ8jToQWXxVuEyXWW+dSo8AiXWKwiSSrKWsRB/Qt+Ewwza+JWoLKiTuQLaEPhdNAJ7+Dosc9DOIqNy7Q==" "integrity": "sha512-fcQztozJ8jToQWXxVuEyXWW+dSo8AiXWKwiSSrKWsRB/Qt+Ewwza+JWoLKiTuQLaEPhdNAJ7+Dosc9DOIqNy7Q==",
"requires": {}
}, },
"bootstrap-icons": { "bootstrap-icons": {
"version": "1.10.5", "version": "1.10.5",
@ -24357,15 +24316,6 @@
"tslib": "^2.0.0" "tslib": "^2.0.0"
} }
}, },
"ngx-mat-timepicker": {
"version": "15.1.3",
"resolved": "https://registry.npmjs.org/ngx-mat-timepicker/-/ngx-mat-timepicker-15.1.3.tgz",
"integrity": "sha512-DqAzv9aLHPT316k+st9GV1QfUTNKE2SfEyCmOD2y86HqiTC5APKezVzQByH6kT3Jq46n7dzV6rtCoMsQ+LcBjQ==",
"requires": {
"ts-luxon": "^3.0.1",
"tslib": "^2.4.1"
}
},
"ngx-toastr": { "ngx-toastr": {
"version": "13.2.1", "version": "13.2.1",
"resolved": "https://registry.npmjs.org/ngx-toastr/-/ngx-toastr-13.2.1.tgz", "resolved": "https://registry.npmjs.org/ngx-toastr/-/ngx-toastr-13.2.1.tgz",
@ -27996,11 +27946,6 @@
"integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==",
"dev": true "dev": true
}, },
"ts-luxon": {
"version": "3.5.2",
"resolved": "https://registry.npmjs.org/ts-luxon/-/ts-luxon-3.5.2.tgz",
"integrity": "sha512-hO8viyesNP1zibJe/TFpRbHtbAWpCKYL7jN7248lvoubOCb31V+CzJHjhyI/HQCE1CgqxwKmqiFBl9T/gcvLJg=="
},
"ts-node": { "ts-node": {
"version": "8.3.0", "version": "8.3.0",
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.3.0.tgz", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.3.0.tgz",
@ -28021,9 +27966,9 @@
"dev": true "dev": true
}, },
"tslib": { "tslib": {
"version": "2.6.0", "version": "2.4.0",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.0.tgz", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
"integrity": "sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA==" "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
}, },
"tslint": { "tslint": {
"version": "6.1.3", "version": "6.1.3",

@ -39,7 +39,6 @@
"ng-otp-input": "^1.8.1", "ng-otp-input": "^1.8.1",
"ngx-bootstrap": "^7.0.0", "ngx-bootstrap": "^7.0.0",
"ngx-echarts": "6.0.1", "ngx-echarts": "6.0.1",
"ngx-mat-timepicker": "^15.1.3",
"ngx-toastr": "13.2.1", "ngx-toastr": "13.2.1",
"ngx-trend": "6.1.1", "ngx-trend": "6.1.1",
"pdfmake": "^0.2.5", "pdfmake": "^0.2.5",

@ -1,12 +1,7 @@
<<<<<<< HEAD
import { TenderCoversDto } from "./tender-covers.dto"; import { TenderCoversDto } from "./tender-covers.dto";
import { TenderDocumentDto } from "./tender-documents.dto"; import { TenderDocumentDto } from "./tender-documents.dto";
=======
import { TenderDocumentDto } from "./tender-documents.dto";
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
export class TenderDetailDto{ export class TenderDetailDto{
id: number ; id: number ;
orgChain: string ; orgChain: string ;
@ -39,20 +34,20 @@ export class TenderDetailDto{
productCategory: number ; productCategory: number ;
bidValidity: number ; bidValidity: number ;
pincode: number ; pincode: number ;
preBidDate: Date ; preBidDate: Date |any;
allowPreferencialBidder: string ; allowPreferencialBidder: string ;
subCategory: string ; subCategory: string ;
periodOfWork: number ; periodOfWork: number ;
preBidMeetPlace: string ; preBidMeetPlace: string ;
bidOpeningPlace: string ; bidOpeningPlace: string ;
publishDate: Date ; publishDate: Date |any ;
saleStartDate: Date ; saleStartDate: Date |any ;
clarificationStartDate: Date ; clarificationStartDate: Date |any ;
bidSubStartDate: Date ; bidSubStartDate: Date |any;
bidOpenDate: Date ; bidOpenDate: Date |any ;
saleEndDate: Date ; saleEndDate: Date |any ;
clarificationEndDate: Date ; clarificationEndDate: Date |any ;
bidSubEndDate: Date ; bidSubEndDate: Date |any ;
tenderInvName: string ; tenderInvName: string ;
tenderInvAddess: string ; tenderInvAddess: string ;
tenderType: number ; tenderType: number ;
@ -67,9 +62,6 @@ export class TenderDetailDto{
File: any ; File: any ;
tenderDoc: TenderDocumentDto[] =[]; tenderDoc: TenderDocumentDto[] =[];
crud: any; crud: any;
<<<<<<< HEAD
covers : TenderCoversDto[] =[]; covers : TenderCoversDto[] =[];
=======
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
} }

@ -1,20 +1,13 @@
export class TenderDocumentDto{ export class TenderDocumentDto{
tenderId:string; tenderId:string|any;
docName:string; docName:string;
description:string; description:string;
docType:string; docType:string;
documentSize:number; documentSize:number;
file: any; file: any;
<<<<<<< HEAD
crud: any; crud: any;
documentCategory: any; documentCategory: any;
docCategory: string; docCategory: string;
======= userId?:string;
crud: any;
documentCategory: any;
docCategory: string;
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
} }

@ -150,11 +150,7 @@
<th class="col-sm-1">CLOSING DATE</th> <th class="col-sm-1">CLOSING DATE</th>
<th class="col-sm-1">BID OPEN DATE</th> <th class="col-sm-1">BID OPEN DATE</th>
<th class="col-sm-1">VIEW</th> <th class="col-sm-1">VIEW</th>
<<<<<<< HEAD
=======
<!-- <th class="col-sm-1">UPLOAD</th> -->
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
@ -168,12 +164,6 @@
<button type="button" class="btn btn-outline-danger btn-sm" (click)="goToView(tender.id)"><i <button type="button" class="btn btn-outline-danger btn-sm" (click)="goToView(tender.id)"><i
class="bi bi-card-list"></i></button> class="bi bi-card-list"></i></button>
</td> </td>
<<<<<<< HEAD
=======
<!-- <td class="col-sm-1" >
<button type="button" class="btn btn-outline-dark btn-sm" (click)="goToUpload()"><i class="bi bi-upload"></i></button>
</td> -->
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
</tr> </tr>
</tbody> </tbody>
</table> --> </table> -->

@ -3,16 +3,12 @@ import { Router } from '@angular/router';
import { apiUrl } from 'src/app/_providers/_resources/api-url.properties'; import { apiUrl } from 'src/app/_providers/_resources/api-url.properties';
import { AuthService } from 'src/app/_providers/_services/auth.service'; import { AuthService } from 'src/app/_providers/_services/auth.service';
import { MasterService } from 'src/app/_providers/_services/master.service'; import { MasterService } from 'src/app/_providers/_services/master.service';
<<<<<<< HEAD
import { MatPaginator } from '@angular/material/paginator'; import { MatPaginator } from '@angular/material/paginator';
import { MatSort, Sort } from '@angular/material/sort'; import { MatSort, Sort } from '@angular/material/sort';
import { MatTableDataSource } from '@angular/material/table'; import { MatTableDataSource } from '@angular/material/table';
import { TenderDetailDto } from 'src/app/_dto/tender-detail.dto'; import { TenderDetailDto } from 'src/app/_dto/tender-detail.dto';
import { ErrorTranslateService } from 'src/app/_providers/_services/error-translate.service'; import { ErrorTranslateService } from 'src/app/_providers/_services/error-translate.service';
import { UiService } from 'src/app/_providers/_services/ui.service'; import { UiService } from 'src/app/_providers/_services/ui.service';
=======
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
@Component({ @Component({
selector: 'app-admin-home', selector: 'app-admin-home',
templateUrl: './admin-home.component.html', templateUrl: './admin-home.component.html',
@ -22,7 +18,6 @@ export class AdminHomeComponent implements OnInit {
tenderData: any; tenderData: any;
<<<<<<< HEAD
dataSource: MatTableDataSource<TenderDetailDto>; dataSource: MatTableDataSource<TenderDetailDto>;
displayedColumns = ['slno','title','publishedDate','bidOpenDate','view']; displayedColumns = ['slno','title','publishedDate','bidOpenDate','view'];
@ -70,24 +65,6 @@ export class AdminHomeComponent implements OnInit {
console.error(err) console.error(err)
}) })
=======
displayedColumns: string[] = ['no', 'name','download'];
tenderData: any;
constructor(private authenticationService: AuthService,
private router: Router,
private _masterService: MasterService) { }
ngOnInit(): void {
this._masterService.getMasterData(apiUrl.getTender).then((res) =>{
console.log("tenderData",res);
this.tenderData = res
})
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
} }
public signOut(): void { public signOut(): void {
@ -108,7 +85,6 @@ export class AdminHomeComponent implements OnInit {
goToView(tenderId:number) { goToView(tenderId:number) {
this.router.navigate(['/auth/view',tenderId]); this.router.navigate(['/auth/view',tenderId]);
<<<<<<< HEAD
} }
goToUpload(tenderId){ goToUpload(tenderId){
@ -141,8 +117,6 @@ export class AdminHomeComponent implements OnInit {
this.pageLength = this.tenderData.length; this.pageLength = this.tenderData.length;
this.dataSource = new MatTableDataSource(this.tenderData); this.dataSource = new MatTableDataSource(this.tenderData);
this.loading = false; this.loading = false;
=======
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
} }
reset(){ reset(){

@ -17,13 +17,10 @@ import { ViewComponent } from './view/view.component';
import { UploadComponent } from './upload/upload.component'; import { UploadComponent } from './upload/upload.component';
import { RegisterComponent } from './register/register.component'; import { RegisterComponent } from './register/register.component';
import { MatFormFieldModule } from '@angular/material/form-field'; import { MatFormFieldModule } from '@angular/material/form-field';
<<<<<<< HEAD
import { MatTableModule } from '@angular/material/table'; import { MatTableModule } from '@angular/material/table';
import { MatPaginatorModule } from '@angular/material/paginator'; import { MatPaginatorModule } from '@angular/material/paginator';
import { MatSortModule } from '@angular/material/sort'; import { MatSortModule } from '@angular/material/sort';
=======
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
// import { AdminHomeComponent } from './admin-home/admin-home.component'; // import { AdminHomeComponent } from './admin-home/admin-home.component';
@ -50,14 +47,10 @@ import { MatSortModule } from '@angular/material/sort';
MatProgressBarModule, MatProgressBarModule,
TranslateModule, TranslateModule,
NgOtpInputModule, NgOtpInputModule,
<<<<<<< HEAD
MatFormFieldModule, MatFormFieldModule,
MatTableModule, MatTableModule,
MatPaginatorModule, MatPaginatorModule,
MatSortModule MatSortModule
=======
MatFormFieldModule
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
] ]
}) })
export class AuthModule { } export class AuthModule { }

@ -107,6 +107,7 @@ export class LoginComponent implements OnInit {
console.log("fFFf",res); console.log("fFFf",res);
localStorage.setItem('username', res.username); localStorage.setItem('username', res.username);
localStorage.setItem('userId', res.userId);
localStorage.setItem('seculevel', res.secuLevel); localStorage.setItem('seculevel', res.secuLevel);
}, (err) => { }, (err) => {
console.log("err=1=", err); console.log("err=1=", err);

@ -66,7 +66,6 @@
<tr> <tr>
<th>Tender Reference Number</th> <th>Tender Reference Number</th>
<td>{{tenderData.tenderRefNo}}</td> <td>{{tenderData.tenderRefNo}}</td>
<<<<<<< HEAD
</tr> </tr>
<tr> <tr>
<th>Tender ID</th> <th>Tender ID</th>
@ -83,32 +82,6 @@
<tr> <tr>
<th>Payment Mode</th> <th>Payment Mode</th>
<td>{{tenderData?.paymentModeD?.paymentMode}}</td> <td>{{tenderData?.paymentModeD?.paymentMode}}</td>
=======
</tr>
<tr>
<th>Tender ID</th>
<td>{{tenderData.productCategoryD.tenderId}}</td>
</tr>
<tr>
<th>Tender Type</th>
<td>{{tenderData.tenderCategoryD.tenderType}}</td>
</tr>
<tr>
<th>Tender Category</th>
<td>{{tenderData.tenderCategoryD.tenderCategory}}</td>
</tr>
<tr>
<th>Payment Mode</th>
<td>{{tenderData.paymentModeD.paymentMode}}</td>
</tr>
<tr>
<th>Form of Contract</th>
<td>{{tenderData.formOfContractD.formOfContract}}</td>
</tr>
<tr>
<th>No. of Covers</th>
<td>{{tenderData.NoCovers}}</td>
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
</tr> </tr>
<tr> <tr>
<th>Form of Contract</th> <th>Form of Contract</th>
@ -144,13 +117,6 @@
<tr> <tr>
<th>Tender Fee Exemption Allowed</th> <th>Tender Fee Exemption Allowed</th>
<td>{{tenderData.tenderFeeExemption}}</td> <td>{{tenderData.tenderFeeExemption}}</td>
<<<<<<< HEAD
=======
</tr>
<tr>
<th>Fee Payable At</th>
<td>{{tenderData.feePayableAt}}</td>
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
</tr> </tr>
<!-- <tr> <!-- <tr>
<th>Fee Payable At</th> <th>Fee Payable At</th>
@ -176,11 +142,7 @@
</tr> </tr>
<tr> <tr>
<th>EMD Fee Type</th> <th>EMD Fee Type</th>
<<<<<<< HEAD
<td>{{tenderData?.emdFeeTypeD?.emdFeeType}}</td> <td>{{tenderData?.emdFeeTypeD?.emdFeeType}}</td>
=======
<td>{{tenderData.emdFeeType}}</td>
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
</tr> </tr>
<tr> <tr>
<th>EMD Payable To</th> <th>EMD Payable To</th>
@ -217,30 +179,26 @@
<th>Clarification Start Date</th> <th>Clarification Start Date</th>
<td>{{tenderData.clarificationStartDate}}</td> <td>{{tenderData.clarificationStartDate}}</td>
</tr> </tr>
<tr>
<th>Bid Submission Start Date</th>
<td>{{tenderData.bidSubStartDate}}</td>
</tr>
<tr>
<th>Bid Opening Date</th>
<td>{{tenderData.bidOpenDate}}</td>
</tr>
<tr> <tr>
<th>Document Download / Sale End Date</th> <th>Document Download / Sale End Date</th>
<td>{{tenderData.saleEndDate}}</td> <td>{{tenderData.saleEndDate}}</td>
</tr> </tr>
<tr>
<th>Pincode</th>
<td>{{tenderData.pincode}}</td>
</tr>
<tr> <tr>
<th>Clarification End Date</th> <th>Clarification End Date</th>
<td>{{tenderData.clarificationEndDate}}</td> <td>{{tenderData.clarificationEndDate}}</td>
</tr> </tr>
<tr>
<th>Bid Submission Start Date</th>
<td>{{tenderData.bidSubStartDate}}</td>
</tr>
<tr> <tr>
<th>Bid Submission End Date</th> <th>Bid Submission End Date</th>
<td>{{tenderData.bidSubEndDate}}</td> <td>{{tenderData.bidSubEndDate}}</td>
</tr> </tr>
<tr>
<th>Bid Opening Date</th>
<td>{{tenderData.bidOpenDate}}</td>
</tr>
</tbody> </tbody>
</table> </table>
@ -269,104 +227,76 @@
<th>Pre Qualification</th> <th>Pre Qualification</th>
<td>{{tenderData.ndaPreQualification}}</td> <td>{{tenderData.ndaPreQualification}}</td>
</tr> </tr>
<tr>
<th>Independent External Monitor/Remarks</th>
<td>{{tenderData.remarks}}</td>
</tr>
<tr> <tr>
<th>Tender Value in ₹</th> <th>Tender Value in ₹</th>
<td>{{tenderData.tenderValue}}</td> <td>{{tenderData.tenderValue}}</td>
</tr> </tr>
<tr>
<th>Contract Type</th>
<td>{{tenderData.contractType}}</td>
</tr>
<tr>
<th>Location</th>
<td>{{tenderData.location}}</td>
</tr>
<<<<<<< HEAD
<tr>
<th>Pre Bid Meeting Address</th>
<td>{{tenderData.preBidMeetAdd}}</td>
</tr>
<tr> <tr>
<th>Product Category</th> <th>Product Category</th>
<td>{{tenderData?.productCategoryD?.productCategory}}</td> <td>{{tenderData?.productCategoryD?.productCategory}}</td>
</tr> </tr>
<tr>
<th>Bid Validity(Days)</th>
<td>{{tenderData.bidValidity}}</td>
</tr>
<tr>
<th>Pre Bid Meeting Date</th>
<td>{{tenderData.preBidDate}}</td>
</tr>
<tr> <tr>
<th>Sub category</th> <th>Sub category</th>
<td>{{tenderData.subCategory}}</td> <td>{{tenderData.subCategory}}</td>
</tr> </tr>
<tr> <tr>
<th>Period Of Work(Days)</th> <th>Bid Validity(Days)</th>
<td>{{tenderData.periodOfWork}}</td> <td>{{tenderData.bidValidity}}</td>
</tr> </tr>
<tr> <tr>
<th>Pre Bid Meeting Place</th> <th>Period Of Work(Days)</th>
<td>{{tenderData.preBidMeetPlace}}</td> <td>{{tenderData.periodOfWork}}</td>
</tr> </tr>
<tr> <tr>
<th>Bid Opening Place</th> <th>Location</th>
<td>{{tenderData.bidOpeningPlace}}</td> <td>{{tenderData.location}}</td>
</tr> </tr>
</tbody>
</table>
</div>
</div>
=======
<tr> <tr>
<th>Pre Bid Meeting Address</th> <th>Pincode</th>
<td>{{tenderData.preBidMeetAdd}}</td> <td>{{tenderData.pincode}}</td>
</tr> </tr>
<tr> <tr>
<th>Product Category</th> <th>Bid Opening Place</th>
<td>{{tenderData.productCategory}}</td> <td>{{tenderData.bidOpeningPlace}}</td>
</tr> </tr>
<tr> <tr>
<th>Bid Validity(Days)</th> <th>Pre Bid Meeting Place</th>
<td>{{tenderData.bidValidity}}</td> <td>{{tenderData.preBidMeetPlace}}</td>
</tr> </tr>
<tr> <tr>
<th>Pre Bid Meeting Date</th> <th>Pre Bid Meeting Address</th>
<td>{{tenderData.preBidMeetAdd}}</td> <td>{{tenderData.preBidMeetAdd}}</td>
</tr> </tr>
<tr> <tr>
<th>Sub category</th> <th>Pre Bid Meeting Date</th>
<td>{{tenderData.subCategory}}</td> <td>{{tenderData.preBidDate}}</td>
</tr>
<tr>
<th>Period Of Work(Days)</th>
<td>{{tenderData.periodOfWork}}</td>
</tr>
<tr>
<th>Pre Bid Meeting Place</th>
<td>{{tenderData.preBidMeetPlace}}</td>
</tr> </tr>
<tr>
<th>Bid Opening Place</th> <!-- <tr>
<td>{{tenderData.bidOpeningPlace}}</td>
<th>Independent External Monitor/Remarks</th>
<td>{{tenderData.remarks}}</td>
</tr> </tr>
-->
<!-- <tr>
<th>Contract Type</th>
<td>{{tenderData.contractType}}</td>
</tr> -->
</tbody> </tbody>
</table> </table>
</div> </div>
</div> </div>
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
<div class="col-md-12"> <div class="col-md-12">
<div class="table-responsive"> <div class="table-responsive">
<table class="table table-bordered"> <table class="table table-bordered">
@ -377,40 +307,21 @@
</thead> </thead>
<tbody> <tbody>
<tr> <tr>
<<<<<<< HEAD
<th colspan="12" class="text-center" style="background-color: #b8b8b8;" >Drawings Document</th> <th colspan="12" class="text-center" style="background-color: #b8b8b8;" >Drawings Document</th>
=======
<th colspan="12" class="text-center" style="background-color: #b8b8b8;" >NIT Document</th>
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
</tr> </tr>
<tr > <tr >
<<<<<<< HEAD
<th colspan="12">Drawings <button mat-raised-button id="zipFile" class=" float-right btn-sm" (click)="DownloadDrawings()"> <i class="bi bi-file-earmark-zip"></i> Download</button></th> <th colspan="12">Drawings <button mat-raised-button id="zipFile" class=" float-right btn-sm" (click)="DownloadDrawings()"> <i class="bi bi-file-earmark-zip"></i> Download</button></th>
</tr> </tr>
<tr> <tr *ngFor="let document of drawingsDocuments">
<td colspan="12"></td> <td colspan="12">{{document.description}}</td>
</tr>
=======
<th colspan="5">Document Name</th>
<th colspan="7">Description</th>
</tr> </tr>
<tr>
<td colspan="5"></td>
<td colspan="7"></td>
</tr>
<tr>
<th colspan="12"><span id="zipFile"> <i class="bi bi-file-earmark-zip"></i> Download</span> </th>
</tr>
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
</tbody> </tbody>
<br> <br>
@ -423,47 +334,41 @@
<th colspan="4">Document Name</th> <th colspan="4">Document Name</th>
<th colspan="4">Description</th> <th colspan="4">Description</th>
</tr> </tr>
<tr> <tr *ngFor="let document of workItemDocuments">
<td colspan="4"></td> <td colspan="4">{{document.documentTypeD.documentType}}</td>
<td colspan="4"></td> <td colspan="4">{{document.docName}}</td>
<td colspan="4"></td> <td colspan="4">{{document.description}}</td>
</tr> </tr>
<tr> <tr>
<<<<<<< HEAD
<th colspan="12"><button mat-raised-button id="zipFile" class=" float-right btn-sm" (click)="downloadZip()"> <i class="bi bi-file-earmark-zip" ></i> Download as Zip File</button> </th> <th colspan="12"><button mat-raised-button id="zipFile" class=" float-right btn-sm" (click)="downloadZip()"> <i class="bi bi-file-earmark-zip" ></i> Download as Zip File</button> </th>
</tr> </tr>
</tbody> </tbody>
<br>
<tbody> <tbody>
<tr> <tr>
<th colspan="12" class="text-center" style="background-color:#b8b8b8;" >NIT Documents</th> <th colspan="12" class="text-center" style="background-color:#b8b8b8;" >Notice</th>
</tr> </tr>
<tr> <tr>
<th colspan="4">Document Type</th> <th colspan="4">Document Type</th>
<th colspan="4">Document Name</th> <th colspan="4">Document Name</th>
<th colspan="4">Description</th> <th colspan="4">Description</th>
</tr> </tr>
<tr> <tr *ngFor="let document of nitItemDocuments">
<td colspan="4"></td> <td colspan="4">{{document.documentTypeD.documentType}}</td>
<td colspan="4"></td> <td colspan="4">{{document.docName}}</td>
<td colspan="4"></td> <td colspan="4">{{document.description}}</td>
</tr> </tr>
<tr> <tr>
<th colspan="12"><button mat-raised-button id="zipFile" class=" float-right btn-sm" (click)="downloadZip()"> <i class="bi bi-file-earmark-zip" ></i> Download as Zip File</button> </th> <th colspan="12"><button mat-raised-button id="zipFile" class=" float-right btn-sm" (click)="downloadZip()"> <i class="bi bi-file-earmark-zip" ></i> Download as Zip File</button> </th>
=======
<th colspan="12"><span id="zipFile"> <i class="bi bi-file-earmark-zip"></i> Download as Zip File</span> </th>
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
</tr> </tr>
</tbody> </tbody>
</table> </table>
</div> </div>
</div> </div>
<<<<<<< HEAD
<div class="col-md-12"> <div class="col-md-12">
<div class="table-responsive"> <div class="table-responsive">
@ -480,10 +385,10 @@
<th colspan="4">Document Format</th> <th colspan="4">Document Format</th>
</tr> </tr>
<tr> <tr *ngFor="let document of tenderData.covers">
<td colspan="4"></td> <td colspan="4">{{ document.coverTypeD.coverType }}</td>
<td colspan="4"></td> <td colspan="4">{{ document.Description }}</td>
<td colspan="4"></td> <td colspan="4">{{ document.fileFormatD.fileFormat }}</td>
</tr> </tr>
<tr> <tr>
@ -497,8 +402,6 @@
</div> </div>
</div> </div>
=======
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
<div class="col-md-12"> <div class="col-md-12">

@ -43,9 +43,5 @@
// } // }
thead{ thead{
<<<<<<< HEAD
background-color:#48746e; color: aliceblue; background-color:#48746e; color: aliceblue;
=======
background-color: rgb(161, 42, 42); color: aliceblue;
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
} }

@ -1,14 +1,9 @@
import { Component, OnInit } from '@angular/core'; import { Component, OnInit } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router'; import { ActivatedRoute, Router } from '@angular/router';
<<<<<<< HEAD
import { TenderDetailDto } from 'src/app/_dto/tender-detail.dto'; import { TenderDetailDto } from 'src/app/_dto/tender-detail.dto';
import { apiUrl } from 'src/app/_providers/_resources/api-url.properties'; import { apiUrl } from 'src/app/_providers/_resources/api-url.properties';
import { MasterService } from 'src/app/_providers/_services/master.service'; import { MasterService } from 'src/app/_providers/_services/master.service';
import { environment } from 'src/environments/environment'; import { environment } from 'src/environments/environment';
=======
import { apiUrl } from 'src/app/_providers/_resources/api-url.properties';
import { MasterService } from 'src/app/_providers/_services/master.service';
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
@Component({ @Component({
selector: 'app-view', selector: 'app-view',
@ -19,6 +14,11 @@ export class ViewComponent implements OnInit {
tenderId: number; tenderId: number;
tenderData: any; tenderData: any;
nitItemDocuments: any ;
workItemDocuments: any;
drawingsDocuments: any;
tenderDocuments: any;
constructor(private router: Router, constructor(private router: Router,
@ -27,24 +27,28 @@ export class ViewComponent implements OnInit {
this.tenderId = +this.route.snapshot.paramMap.get('id'); this.tenderId = +this.route.snapshot.paramMap.get('id');
} }
ngOnInit(): void { ngOnInit(): void {
<<<<<<< HEAD
this.tenderData = new TenderDetailDto() this.tenderData = new TenderDetailDto()
=======
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
console.log("this.tenderId",this.tenderId); console.log("this.tenderId",this.tenderId);
this.getData() this.getData()
} }
getData(){ getData(){
this._masterService.getMasterDatabyId(apiUrl.AllTenderData,this.tenderId).then((res) =>{ this._masterService.getMasterDatabyId(apiUrl.AllTenderData,this.tenderId).then((res) =>{
console.log("tenderData",res); console.log("tenderData",res);
<<<<<<< HEAD this.tenderData = res
======= this.tenderDocuments = this.tenderData['tenderDoc']
console.log("res",res.orgChain); console.log("data",this.tenderDocuments);
})
}
filterDataByCategory() {
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3 this.drawingsDocuments = this.tenderDocuments.filter(doc => doc.documentCategory === 'D');
this.tenderData = res}) this.workItemDocuments = this.tenderDocuments.filter(doc => doc.documentCategory === 'WID');
this.nitItemDocuments = this.tenderDocuments.filter(doc => doc.documentCategory === 'NIT');
} }
@ -60,7 +64,6 @@ getData(){
window.location.href = 'https://www.thrickodithanamscb.in/index.html#contact'; window.location.href = 'https://www.thrickodithanamscb.in/index.html#contact';
} }
<<<<<<< HEAD
DownloadDrawings(){ DownloadDrawings(){
const id = this.tenderId; const id = this.tenderId;
this._masterService.getMasterDatabyId(apiUrl.drawingsDownloadDocs,id).then((res)=>{ this._masterService.getMasterDatabyId(apiUrl.drawingsDownloadDocs,id).then((res)=>{
@ -108,7 +111,5 @@ getData(){
} }
=======
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
} }

@ -24,17 +24,10 @@
</div> </div>
<div class="form-group col-md-6"> <div class="form-group col-md-6">
<label for="TenderRefNo">Tender Reference Number:</label> <label for="TenderRefNo">Tender Reference Number:</label>
<<<<<<< HEAD
<input type="text" class="form-control" id="TenderRefNo" <input type="text" class="form-control" id="TenderRefNo"
[(ngModel)]="tenderData.tenderRefNo" name="tenderRefNo" required> [(ngModel)]="tenderData.tenderRefNo" name="tenderRefNo" required>
</div> </div>
=======
<input type="number" class="form-control" id="TenderRefNo"
[(ngModel)]="tenderData.tenderRefNo" name="tenderRefNo" required>
</div>
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
</div> </div>
<div class="form-row"> <div class="form-row">
<div class="form-group col-md-6"> <div class="form-group col-md-6">
@ -138,19 +131,11 @@
</div> </div>
<<<<<<< HEAD
<!-- <div class="form-group col-md-6"> <!-- <div class="form-group col-md-6">
<label for="feePayableAt">Fee Payable At</label> <label for="feePayableAt">Fee Payable At</label>
<input type="text" class="form-control" id="feePayableAt" <input type="text" class="form-control" id="feePayableAt"
[(ngModel)]="tenderData.feePayableAt" name="feePayableAt"> [(ngModel)]="tenderData.feePayableAt" name="feePayableAt">
</div> --> </div> -->
=======
<div class="form-group col-md-6">
<label for="feePayableAt">Fee Payable At</label>
<input type="text" class="form-control" id="feePayableAt"
[(ngModel)]="tenderData.feePayableAt" name="feePayableAt">
</div>
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
</div> </div>
</div> </div>
</div><br> </div><br>
@ -193,19 +178,11 @@
</div> </div>
</div> </div>
<div class="form-row"> <div class="form-row">
<<<<<<< HEAD
<!-- <div class="form-group col-md-4"> <!-- <div class="form-group col-md-4">
<label for="emdPayableAt">EMD Payable At</label> <label for="emdPayableAt">EMD Payable At</label>
<input type="text" class="form-control" id="emdPayableAt" <input type="text" class="form-control" id="emdPayableAt"
[(ngModel)]="tenderData.emdPayableAt" name="emdPayableAt"> [(ngModel)]="tenderData.emdPayableAt" name="emdPayableAt">
</div> --> </div> -->
=======
<div class="form-group col-md-4">
<label for="emdPayableAt">EMD Payable At</label>
<input type="text" class="form-control" id="emdPayableAt"
[(ngModel)]="tenderData.emdPayableAt" name="emdPayableAt">
</div>
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
<div class="form-group col-md-4"> <div class="form-group col-md-4">
<label for="allowEmdBgOrSt">EMD through BG/ST or EMD Exemption <label for="allowEmdBgOrSt">EMD through BG/ST or EMD Exemption
Allowed</label> Allowed</label>
@ -260,39 +237,11 @@
</div> </div>
<div class="form-row"> <div class="form-row">
<div class="form-group col-md-4"> <div class="form-group col-md-4">
<<<<<<< HEAD
=======
<label for="pincode">Pincode</label>
<input type="number" class="form-control" id="pincode"
[(ngModel)]="tenderData.pincode" name="pincode" [maxlength]="6">
</div>
<div class="form-group col-md-4">
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
<label for="tenderValue">Tender Value in ₹</label> <label for="tenderValue">Tender Value in ₹</label>
<input type="number" class="form-control" id="tenderValue" <input type="number" class="form-control" id="tenderValue"
[(ngModel)]="tenderData.tenderValue" name="tenderValue"> [(ngModel)]="tenderData.tenderValue" name="tenderValue">
</div> </div>
<div class="form-group col-md-4"> <div class="form-group col-md-4">
<<<<<<< HEAD
=======
<label for="contractType">Contract Type</label>
<input type="text" class="form-control" id="contractType"
[(ngModel)]="tenderData.contractType" name="contractType">
</div>
</div>
<div class="form-row">
<div class="form-group col-md-4">
<label for="location">Location</label>
<input type="text" class="form-control" id="location"
[(ngModel)]="tenderData.location" name="location">
</div>
<div class="form-group col-md-4">
<label for="preBidMeetAdd">Pre Bid Meeting Address</label>
<input type="text" class="form-control" id="preBidMeetAdd"
[(ngModel)]="tenderData.preBidMeetAdd" name="preBidMeetAdd">
</div>
<div class="form-group col-md-4">
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
<label for="productCategory">Product Category</label> <label for="productCategory">Product Category</label>
<select class="form-control" id="productCategory" <select class="form-control" id="productCategory"
[(ngModel)]="tenderData.productCategory" name="productCategory"> [(ngModel)]="tenderData.productCategory" name="productCategory">
@ -303,14 +252,11 @@
</select> </select>
</div> </div>
<<<<<<< HEAD
<div class="form-group col-md-4"> <div class="form-group col-md-4">
<label for="subCategory">Sub category</label> <label for="subCategory">Sub category</label>
<input type="text" class="form-control" id="subCategory" <input type="text" class="form-control" id="subCategory"
[(ngModel)]="tenderData.subCategory" name="subCategory"> [(ngModel)]="tenderData.subCategory" name="subCategory">
</div> </div>
=======
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
</div> </div>
<div class="form-row"> <div class="form-row">
<div class="form-group col-md-4"> <div class="form-group col-md-4">
@ -319,7 +265,6 @@
[(ngModel)]="tenderData.bidValidity" name="bidValidity"> [(ngModel)]="tenderData.bidValidity" name="bidValidity">
</div> </div>
<div class="form-group col-md-4"> <div class="form-group col-md-4">
<<<<<<< HEAD
<label for="periodOfWork">Period Of Work(Days)</label> <label for="periodOfWork">Period Of Work(Days)</label>
<input type="number" class="form-control" id="periodOfWork" <input type="number" class="form-control" id="periodOfWork"
[(ngModel)]="tenderData.periodOfWork" name="periodOfWork"> [(ngModel)]="tenderData.periodOfWork" name="periodOfWork">
@ -343,30 +288,12 @@
<label for="bidOpeningPlace">Bid Opening Place</label> <label for="bidOpeningPlace">Bid Opening Place</label>
<input type="text" class="form-control" id="bidOpeningPlace" <input type="text" class="form-control" id="bidOpeningPlace"
[(ngModel)]="tenderData.bidOpeningPlace" name="bidOpeningPlace"> [(ngModel)]="tenderData.bidOpeningPlace" name="bidOpeningPlace">
=======
<label for="input21">Pre Bid Meeting Date</label>
<input type="date" class="form-control" id="input23"
[(ngModel)]="tenderData.preBidDate" name="preBidMeetAdd">
</div>
<div class="form-group col-md-4">
<label for="subCategory">Sub category</label>
<input type="text" class="form-control" id="subCategory"
[(ngModel)]="tenderData.subCategory" name="subCategory">
</div>
</div>
<div class="form-row">
<div class="form-group col-md-4">
<label for="periodOfWork">Period Of Work(Days)</label>
<input type="number" class="form-control" id="periodOfWork"
[(ngModel)]="tenderData.periodOfWork" name="periodOfWork">
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
</div> </div>
<div class="form-group col-md-4"> <div class="form-group col-md-4">
<label for="preBidMeetPlace">Pre Bid Meeting Place</label> <label for="preBidMeetPlace">Pre Bid Meeting Place</label>
<input type="text" class="form-control" id="preBidMeetPlace" <input type="text" class="form-control" id="preBidMeetPlace"
[(ngModel)]="tenderData.preBidMeetPlace" name="preBidMeetPlace"> [(ngModel)]="tenderData.preBidMeetPlace" name="preBidMeetPlace">
</div> </div>
<<<<<<< HEAD
</div> </div>
<div class="form-row"> <div class="form-row">
<div class="form-group col-md-6"> <div class="form-group col-md-6">
@ -389,13 +316,6 @@
=======
<div class="form-group col-md-4">
<label for="bidOpeningPlace">Bid Opening Place</label>
<input type="text" class="form-control" id="bidOpeningPlace"
[(ngModel)]="tenderData.bidOpeningPlace" name="bidOpeningPlace">
</div>
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
</div> </div>
</div> </div>
@ -413,21 +333,16 @@
</div> </div>
</mat-tab> </mat-tab>
<mat-tab label="Critical Dates" [disabled]="true"> <br><br> <mat-tab label="Critical Dates" [disabled]="false"> <br><br>
<div class="card"> <div class="card">
<div class="card-body"> <div class="card-body">
<div class="form-row"> <div class="form-row">
<<<<<<< HEAD
<div class="form-group col-md-6"> <div class="form-group col-md-6">
=======
<div class="form-group col-md-4">
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
<mat-form-field class="input-style" appearance="outline" <mat-form-field class="input-style" appearance="outline"
style="position: relative;width: 100%;"> style="position: relative;width: 100%;">
<mat-label> Published Date </mat-label> <mat-label> Published Date </mat-label>
<<<<<<< HEAD
<input matInput type="datetime-local" <input matInput type="datetime-local"
[(ngModel)]="tenderData.publishDate " [(ngModel)]="tenderData.publishDate "
[ngModelOptions]="{standalone: true}"> [ngModelOptions]="{standalone: true}">
@ -438,23 +353,12 @@
</mat-form-field> </mat-form-field>
</div> </div>
<div class="form-group col-md-6"> <div class="form-group col-md-6">
=======
<input matInput [matDatepicker]="publishDate"
[(ngModel)]="tenderData.publishDate" [ngModelOptions]="{standalone: true}">
<mat-datepicker-toggle matSuffix
[for]="publishDate"></mat-datepicker-toggle>
<mat-datepicker #publishDate></mat-datepicker>
</mat-form-field>
</div>
<div class="form-group col-md-4">
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
<!-- <label for="saleStartDate">Document Download / Sale Start Date</label> <!-- <label for="saleStartDate">Document Download / Sale Start Date</label>
<input type="date" class="form-control" id="saleStartDate" <input type="date" class="form-control" id="saleStartDate"
[(ngModel)]="tenderData.saleStartDate" name="saleStartDate"> --> [(ngModel)]="tenderData.saleStartDate" name="saleStartDate"> -->
<mat-form-field class="input-style" appearance="outline" <mat-form-field class="input-style" appearance="outline"
style="position: relative;width: 100%;"> style="position: relative;width: 100%;">
<mat-label> Document Download / Sale Start Date </mat-label> <mat-label> Document Download / Sale Start Date </mat-label>
<<<<<<< HEAD
<input matInput type="datetime-local" <input matInput type="datetime-local"
[(ngModel)]="tenderData.saleStartDate" [(ngModel)]="tenderData.saleStartDate"
[ngModelOptions]="{standalone: true}"> [ngModelOptions]="{standalone: true}">
@ -467,22 +371,11 @@
</div> </div>
<div class="form-row"> <div class="form-row">
<div class="form-group col-md-6"> <div class="form-group col-md-6">
=======
<input matInput [matDatepicker]="saleStartDate"
[(ngModel)]="tenderData.saleStartDate" [ngModelOptions]="{standalone: true}">
<mat-datepicker-toggle matSuffix
[for]="saleStartDate"></mat-datepicker-toggle>
<mat-datepicker #saleStartDate></mat-datepicker>
</mat-form-field>
</div>
<div class="form-group col-md-4">
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
<!-- <label for="clarificationStartDate">Clarification Start Date</label> <!-- <label for="clarificationStartDate">Clarification Start Date</label>
<input type="date" class="form-control" id="clarificationStartDate" <input type="date" class="form-control" id="clarificationStartDate"
[(ngModel)]="tenderData.clarificationStartDate" [(ngModel)]="tenderData.clarificationStartDate"
name="clarificationStartDate"> --> name="clarificationStartDate"> -->
<<<<<<< HEAD
<mat-form-field class="input-style" appearance="outline" <mat-form-field class="input-style" appearance="outline"
style="position: relative;width: 100%;"> style="position: relative;width: 100%;">
<mat-label> Clarification Start Date </mat-label> <mat-label> Clarification Start Date </mat-label>
@ -496,24 +389,10 @@
</div> </div>
<div class="form-group col-md-6"> <div class="form-group col-md-6">
=======
<mat-form-field class="input-style" appearance="outline"
style="position: relative;width: 100%;">
<mat-label> Clarification Start Date </mat-label>
<input matInput [matDatepicker]="clarificationStartDate"
[(ngModel)]="tenderData.clarificationStartDate" [ngModelOptions]="{standalone: true}">
<mat-datepicker-toggle matSuffix
[for]="clarificationStartDate"></mat-datepicker-toggle>
<mat-datepicker #clarificationStartDate></mat-datepicker>
</mat-form-field>
</div>
<div class="form-group col-md-4">
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
<!-- <label for="saleEndDate">Document Download / Sale End Date</label> <!-- <label for="saleEndDate">Document Download / Sale End Date</label>
<input type="date" class="form-control" id="saleEndDate" <input type="date" class="form-control" id="saleEndDate"
[(ngModel)]="tenderData.saleEndDate" name="saleEndDate"> --> [(ngModel)]="tenderData.saleEndDate" name="saleEndDate"> -->
<<<<<<< HEAD
<mat-form-field class="input-style" appearance="outline" <mat-form-field class="input-style" appearance="outline"
style="position: relative;width: 100%;"> style="position: relative;width: 100%;">
<mat-label> Document Download / Sale End Date </mat-label> <mat-label> Document Download / Sale End Date </mat-label>
@ -529,25 +408,11 @@
<div class="form-row"> <div class="form-row">
<div class="form-group col-md-6"> <div class="form-group col-md-6">
=======
<mat-form-field class="input-style" appearance="outline"
style="position: relative;width: 100%;">
<mat-label> Document Download / Sale End Date </mat-label>
<input matInput [matDatepicker]="saleEndDate"
[(ngModel)]="tenderData.saleEndDate" [ngModelOptions]="{standalone: true}">
<mat-datepicker-toggle matSuffix
[for]="saleEndDate"></mat-datepicker-toggle>
<mat-datepicker #saleEndDate></mat-datepicker>
</mat-form-field>
</div>
<div class="form-group col-md-4">
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
<!-- <label for="clarificationEndDate">Clarification End Date</label> <!-- <label for="clarificationEndDate">Clarification End Date</label>
<input type="date" class="form-control" id="clarificationEndDate" <input type="date" class="form-control" id="clarificationEndDate"
[(ngModel)]="tenderData.clarificationEndDate" [(ngModel)]="tenderData.clarificationEndDate"
name="clarificationEndDate"> --> name="clarificationEndDate"> -->
<<<<<<< HEAD
<mat-form-field class="input-style" appearance="outline" <mat-form-field class="input-style" appearance="outline"
style="position: relative;width: 100%;"> style="position: relative;width: 100%;">
<mat-label> Clarification End Date </mat-label> <mat-label> Clarification End Date </mat-label>
@ -560,37 +425,16 @@
</mat-form-field> </mat-form-field>
</div> </div>
<div class="form-group col-md-6"> <div class="form-group col-md-6">
=======
<mat-form-field class="input-style" appearance="outline"
style="position: relative;width: 100%;">
<mat-label> Clarification End Date </mat-label>
<input matInput [matDatepicker]="clarificationEndDate"
[(ngModel)]="tenderData.clarificationEndDate" [ngModelOptions]="{standalone: true}">
<mat-datepicker-toggle matSuffix
[for]="clarificationEndDate"></mat-datepicker-toggle>
<mat-datepicker #clarificationEndDate></mat-datepicker>
</mat-form-field>
</div>
<div class="form-group col-md-4">
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
<mat-form-field class="input-style" appearance="outline" <mat-form-field class="input-style" appearance="outline"
style="position: relative;width: 100%;"> style="position: relative;width: 100%;">
<mat-label> Bid Submission Start Date </mat-label> <mat-label> Bid Submission Start Date </mat-label>
<<<<<<< HEAD
<input matInput type="datetime-local" <input matInput type="datetime-local"
[(ngModel)]="tenderData.bidSubStartDate" [(ngModel)]="tenderData.bidSubStartDate"
[ngModelOptions]="{standalone: true}"> [ngModelOptions]="{standalone: true}">
<!-- <mat-datepicker-toggle matSuffix <!-- <mat-datepicker-toggle matSuffix
[for]="bidSubStartDate"></mat-datepicker-toggle> [for]="bidSubStartDate"></mat-datepicker-toggle>
<mat-datepicker #bidSubStartDate></mat-datepicker> --> <mat-datepicker #bidSubStartDate></mat-datepicker> -->
=======
<input matInput [matDatepicker]="bidSubStartDate"
[(ngModel)]="tenderData.bidSubStartDate" [ngModelOptions]="{standalone: true}">
<mat-datepicker-toggle matSuffix
[for]="bidSubStartDate"></mat-datepicker-toggle>
<mat-datepicker #bidSubStartDate></mat-datepicker>
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
</mat-form-field> </mat-form-field>
@ -598,7 +442,6 @@
<input type="datetime-local" class="form-control" id="bidSubStartDate" <input type="datetime-local" class="form-control" id="bidSubStartDate"
[(ngModel)]="tenderData.bidSubStartDate" name="bidSubStartDate"> --> [(ngModel)]="tenderData.bidSubStartDate" name="bidSubStartDate"> -->
</div> </div>
<<<<<<< HEAD
</div> </div>
@ -621,38 +464,10 @@
</div> </div>
<div class="form-group col-md-6"> <div class="form-group col-md-6">
=======
<div class="form-group col-md-4">
<!-- <label for="bidSubEndDate">Bid Submission End Date</label>
<input type="date" class="form-control" id="bidSubEndDate"
[(ngModel)]="tenderData.bidSubEndDate" name="bidSubEndDate"> -->
<mat-form-field class="input-style" appearance="outline"
style="position: relative;width: 100%;">
<mat-label> Bid Submission End Date </mat-label>
<input matInput [matDatepicker]="bidSubEndDate"
[(ngModel)]="tenderData.bidSubEndDate" [ngModelOptions]="{standalone: true}">
<mat-datepicker-toggle matSuffix
[for]="bidSubEndDate"></mat-datepicker-toggle>
<mat-datepicker #bidSubEndDate></mat-datepicker>
</mat-form-field>
</div>
</div>
<div class="form-row">
<div class="form-group col-md-4">
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
<!-- <label for="bidOpenDate">Bid Opening Date</label> <!-- <label for="bidOpenDate">Bid Opening Date</label>
<input type="date" class="form-control" id="bidOpenDate" <input type="date" class="form-control" id="bidOpenDate"
[(ngModel)]="tenderData.bidOpenDate" name="bidOpenDate"> --> [(ngModel)]="tenderData.bidOpenDate" name="bidOpenDate"> -->
<<<<<<< HEAD
<mat-form-field class="input-style" appearance="outline" <mat-form-field class="input-style" appearance="outline"
style="position: relative;width: 100%;"> style="position: relative;width: 100%;">
<mat-label> Bid Opening Date </mat-label> <mat-label> Bid Opening Date </mat-label>
@ -663,17 +478,6 @@
[for]="bidOpenDate"></mat-datepicker-toggle> [for]="bidOpenDate"></mat-datepicker-toggle>
<mat-datepicker #bidOpenDate></mat-datepicker> --> <mat-datepicker #bidOpenDate></mat-datepicker> -->
=======
<mat-form-field class="input-style" appearance="outline"
style="position: relative;width: 100%;">
<mat-label> Bid Opening Date </mat-label>
<input matInput [matDatepicker]="bidOpenDate"
[(ngModel)]="tenderData.bidOpenDate" [ngModelOptions]="{standalone: true}">
<mat-datepicker-toggle matSuffix
[for]="bidOpenDate"></mat-datepicker-toggle>
<mat-datepicker #bidOpenDate></mat-datepicker>
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
</mat-form-field> </mat-form-field>
</div> </div>
</div> </div>
@ -693,11 +497,151 @@
</div> </div>
</mat-tab> </mat-tab>
<<<<<<< HEAD
<mat-tab label="Tender Documents" [disabled]="false"> <br><br>
======= <mat-tab label="Required Documents" [disabled]="true"> <br><br>
<div class="col-md-12">
<div class="table-responsive">
<table class="table table-bordered">
<tbody>
<tr>
<th colspan="12" class="text-center" style="background-color: #b8b8b8;">
Required Documents</th>
</tr>
<tr>
<th colspan="4" class="col-sm-4" style="text-align: center;">Required
Document type</th>
<th colspan="4" class="col-sm-4" style="text-align: center;">Description
</th>
<th colspan="3" class="col-sm-4" style="text-align: center;">Document
Format</th>
<th colspan="1"></th>
</tr>
<tr *ngFor="let coverDOC of coverDocs; let i = index">
<td colspan="4">
<div class="input-group">
<mat-form-field appearance="outline" class="columns"
style="height: 15px;margin-top: -10px;width:90%;">
<mat-label> Document Type</mat-label>
<mat-select style="border: none; padding: 0; width: 100%;"
[(ngModel)]="coverDocs[i].coverType"
[ngModelOptions]="{standalone: true}">
<mat-option style="opacity: .5;"> Select Document Type
</mat-option>
<mat-option *ngFor="let coverType of coverslov "
[value]="coverType.id">
{{coverType.coverType}}
</mat-option>
</mat-select>
</mat-form-field>
</div>
</td>
<td colspan="4">
<div class="input-group">
<input type="text" class="form-control"
[(ngModel)]="coverDocs[i].Description"
[ngModelOptions]="{standalone: true}">
</div>
</td>
<td colspan="3">
<mat-form-field appearance="outline" class="columns"
style="height: 15px;margin-top: -10px;width:90%;">
<mat-label>Document Type</mat-label>
<mat-select style="border: none; padding: 0; width: 100%;"
[(ngModel)]="coverDocs[i].fileFormat"
[ngModelOptions]="{standalone: true}">
<mat-option style="opacity: .5;">Select Document
Type</mat-option>
<mat-option *ngFor="let fileFormat of fileformatlov"
[value]="fileFormat.id">
{{fileFormat.fileFormat}}
</mat-option>
</mat-select>
</mat-form-field>
</td>
<td colspan="1"><button class="btn btn-outline-secondary delete-btn ml-2"
type="button" (click)="deleteCoverRow(coverDOC.tender_id, i)">
<i class="bi bi-trash"></i>
</button></td>
</tr>
<tr>
<td colspan="12" class="text-right">
<button class="btn btn-outline-secondary btn-sm"
(click)="addNewcoverDocRow()">Add Row</button>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<br>
<div class="form-row">
<div class="form-group col-md-12">
<button class="btn btn-light float-left font-weight-bold" (click)="prevTab()"><i
class="bi bi-arrow-left-circle"></i> Prev
</button>
<button class="btn btn-light float-right font-weight-bold"
(click)="RequiredDocuments()">Next
<i class="bi bi-arrow-right-circle"></i>
</button>
</div>
</div>
</mat-tab>
<mat-tab label="Tender Inviting" [disabled]="true"> <br><br>
<div class="card">
<div class="card-body">
<div class="form-row">
<div class="form-group col-md-6">
<label for="tenderInvName">Name</label>
<input type="text" class="form-control" id="tenderInvName"
[(ngModel)]="tenderData.tenderInvName" name="tenderInvName">
</div>
<div class="form-group col-md-6">
<label for="tenderInvAddess">Address</label>
<input type="text" (keyup)="display()" class="form-control"
id="tenderInvAddess" [(ngModel)]="tenderData.tenderInvAddess"
name="tenderInvAddess">
</div>
</div>
</div>
</div><br>
<br>
<div class="form-row">
<div class="form-group col-md-12">
<button class="btn btn-light float-left font-weight-bold" (click)="prevTab()"><i
class="bi bi-arrow-left-circle"></i> Prev
</button>
<button class="btn btn-light float-right font-weight-bold"
(click)="submit()">Save Tender Details
<i class="bi bi-send-check"></i>
</button>
</div>
</div>
</mat-tab>
<mat-tab label="Tender Documents" [disabled]="true"> <br><br> <mat-tab label="Tender Documents" [disabled]="true"> <br><br>
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
<div class="col-md-12"> <div class="col-md-12">
@ -706,7 +650,6 @@
<tbody> <tbody>
<tr> <tr>
<<<<<<< HEAD
<th colspan="4" style="background-color: #b8b8b8;"></th> <th colspan="4" style="background-color: #b8b8b8;"></th>
<th colspan="4" class="text-center" style="background-color: #b8b8b8;"> <th colspan="4" class="text-center" style="background-color: #b8b8b8;">
@ -858,29 +801,11 @@
(change)="UploadDrawingFiles($event,i)" (change)="UploadDrawingFiles($event,i)"
(change)="readUrl($event)" (change)="readUrl($event)"
[ngModelOptions]="{standalone: true}"> --> [ngModelOptions]="{standalone: true}"> -->
=======
<th colspan="12" class="text-center" style="background-color: #b8b8b8;">
NIT Document</th>
</tr>
<tr>
<th colspan="5" class="col-sm-6">Upload Files</th>
<th colspan="7">Description</th>
</tr>
<tr *ngFor="let nitDoc of nitDocuments; let i = index">
<td colspan="5">
<div class="input-group">
<input type="file" class="form-control"
[(ngModel)]="nitDocuments[i].file"
(change)="UploadFiles($event,i,'NIT')"
(change)="readUrl($event)"
[ngModelOptions]="{standalone: true}">
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
<!-- <button class="btn btn-outline-secondary delete-btn" type="button"> <!-- <button class="btn btn-outline-secondary delete-btn" type="button">
<i class="bi bi-cloud-upload"></i> <i class="bi bi-cloud-upload"></i>
</button> --> </button> -->
</div> </div>
</td> </td>
<<<<<<< HEAD
<td colspan="4"> <td colspan="4">
<mat-form-field appearance="outline" class="columns" <mat-form-field appearance="outline" class="columns"
@ -909,9 +834,6 @@
</select> --> </select> -->
</td> </td>
<td colspan="4"> <td colspan="4">
=======
<td colspan="7">
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
<div class="input-group"> <div class="input-group">
<input type="text" class="form-control" <input type="text" class="form-control"
[(ngModel)]="nitDocuments[i].description" [(ngModel)]="nitDocuments[i].description"
@ -926,17 +848,12 @@
<tr> <tr>
<td colspan="12" class="text-right"> <td colspan="12" class="text-right">
<button class="btn btn-outline-secondary btn-sm" <button class="btn btn-outline-secondary btn-sm"
<<<<<<< HEAD
(click)="addNewNitDocRow()">Add Row</button> (click)="addNewNitDocRow()">Add Row</button>
=======
(click)="addNewNITDocRow()">Add Row</button>
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
</td> </td>
</tr> </tr>
</tbody> </tbody>
<<<<<<< HEAD
@ -954,22 +871,10 @@
style="min-width: 250px;text-align: center;">Document Type</th> style="min-width: 250px;text-align: center;">Document Type</th>
<th colspan="4" class="col-sm-5" <th colspan="4" class="col-sm-5"
style="min-width: 250px;text-align: center;">Description</th> style="min-width: 250px;text-align: center;">Description</th>
=======
<tbody>
<tr>
<th colspan="12" class="text-center" style="background-color:#b8b8b8;">
Work Item Documents</th>
</tr>
<tr>
<th colspan="4" class="col-sm-4">Upload Files</th>
<th colspan="4" class="col-sm-4">Document Type</th>
<th colspan="4" class="col-sm-4">Description</th>
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
</tr> </tr>
<tr *ngFor="let workItemDoc of workItemDocuments; let i = index"> <tr *ngFor="let workItemDoc of workItemDocuments; let i = index">
<td colspan="4"> <td colspan="4">
<div class="input-group"> <div class="input-group">
<<<<<<< HEAD
<mat-form-field class="columns" appearance="outline" <mat-form-field class="columns" appearance="outline"
style="height: 15px;margin-top: -10px;width: 90%;"> style="height: 15px;margin-top: -10px;width: 90%;">
@ -995,20 +900,12 @@
[(ngModel)]="workItemDocuments[i].file" [(ngModel)]="workItemDocuments[i].file"
(change)="UploadFiles($event,i,'WID')" (change)="UploadFiles($event,i,'WID')"
[ngModelOptions]="{standalone: true}"> --> [ngModelOptions]="{standalone: true}"> -->
=======
<input type="file" class="form-control"
[disabled]="workItemDoc.isUploaded"
[(ngModel)]="workItemDocuments[i].file"
(change)="UploadFiles($event,i,'WID')"
[ngModelOptions]="{standalone: true}">
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
<!-- <button class="btn btn-outline-secondary delete-btn" type="button" [disabled]="workItemDoc.isUploaded"> <!-- <button class="btn btn-outline-secondary delete-btn" type="button" [disabled]="workItemDoc.isUploaded">
<i class="bi bi-cloud-upload"></i> <i class="bi bi-cloud-upload"></i>
</button> --> </button> -->
</div> </div>
</td> </td>
<td colspan="4"> <td colspan="4">
<<<<<<< HEAD
<mat-form-field appearance="outline" class="columns" <mat-form-field appearance="outline" class="columns"
style="height: 15px;margin-top: -10px;width:90%;"> style="height: 15px;margin-top: -10px;width:90%;">
@ -1026,24 +923,14 @@
</mat-select> </mat-select>
</mat-form-field> </mat-form-field>
<!-- <select class="form-control" id="documentType" <!-- <select class="form-control" id="documentType"
=======
<select class="form-control" id="documentType"
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
[(ngModel)]="workItemDocuments[i].docType" [(ngModel)]="workItemDocuments[i].docType"
[ngModelOptions]="{standalone: true}"> [ngModelOptions]="{standalone: true}">
<option [value]="documentType.id" <option [value]="documentType.id"
<<<<<<< HEAD
*ngFor="let documentType of filteredDocumentTypeLov"> *ngFor="let documentType of filteredDocumentTypeLov">
{{documentType.documentType}} {{documentType.documentType}}
</option> </option>
</select> --> </select> -->
=======
*ngFor="let documentType of documentTypeLov">
{{documentType.documentType}}
</option>
</select>
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
</td> </td>
<td colspan="4"> <td colspan="4">
<div class="input-group"> <div class="input-group">
@ -1084,8 +971,8 @@
<button class="btn btn-light float-left font-weight-bold" (click)="prevTab()"><i <button class="btn btn-light float-left font-weight-bold" (click)="prevTab()"><i
class="bi bi-arrow-left-circle"></i> Prev class="bi bi-arrow-left-circle"></i> Prev
</button> </button>
<button class="btn btn-light float-right font-weight-bold" <button class="btn btn-outline-primary float-right font-weight-bold"
(click)="TendersDocuments()">Next (click)="TendersDocuments()">Submit Tender
<i class="bi bi-arrow-right-circle"></i> <i class="bi bi-arrow-right-circle"></i>
</button> </button>
</div> </div>
@ -1093,153 +980,8 @@
</mat-tab> </mat-tab>
<<<<<<< HEAD
<mat-tab label="Required Documents" [disabled]="true"> <br><br>
<div class="col-md-12">
<div class="table-responsive">
<table class="table table-bordered">
<tbody>
<tr>
<th colspan="12" class="text-center" style="background-color: #b8b8b8;">
Required Documents</th>
</tr>
<tr>
<th colspan="4" class="col-sm-4" style="text-align: center;">Required
Document type</th>
<th colspan="4" class="col-sm-4" style="text-align: center;">Description
</th>
<th colspan="4" class="col-sm-4" style="text-align: center;">Document
Format</th>
</tr>
<tr *ngFor="let coverDOC of coverDocs; let i = index">
<td colspan="4">
<div class="input-group">
<mat-form-field appearance="outline" class="columns"
style="height: 15px;margin-top: -10px;width:90%;">
<mat-label> Document Type</mat-label>
<mat-select style="border: none; padding: 0; width: 100%;"
[(ngModel)]="coverDocs[i].coverType"
[ngModelOptions]="{standalone: true}">
<mat-option style="opacity: .5;"> Select Document Type
</mat-option>
<mat-option *ngFor="let coverType of coverslov "
[value]="coverType.id">
{{coverType.coverType}}
</mat-option>
</mat-select>
</mat-form-field>
</div>
</td>
<td colspan="4">
<div class="input-group">
<input type="text" class="form-control"
[(ngModel)]="coverDocs[i].Description"
[ngModelOptions]="{standalone: true}">
</div>
</td>
<td colspan="4">
<mat-form-field appearance="outline" class="columns"
style="height: 15px;margin-top: -10px;width:80%;">
<mat-label>Document Type</mat-label>
<mat-select style="border: none; padding: 0; width: 100%;"
[(ngModel)]="coverDocs[i].fileFormat"
[ngModelOptions]="{standalone: true}">
<mat-option style="opacity: .5;">Select Document
Type</mat-option>
<mat-option *ngFor="let fileFormat of fileformatlov"
[value]="fileFormat.id">
{{fileFormat.fileFormat}}
</mat-option>
</mat-select>
</mat-form-field>
<button class="btn btn-outline-secondary delete-btn ml-2"
type="button" (click)="deleteCoverRow(coverDOC.tender_id, i)">
<i class="bi bi-trash"></i>
</button>
</td>
</tr>
<tr>
<td colspan="12" class="text-right">
<button class="btn btn-outline-secondary btn-sm"
(click)="addNewcoverDocRow()">Add Row</button>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<br>
<div class="form-row">
<div class="form-group col-md-12">
<button class="btn btn-light float-left font-weight-bold" (click)="prevTab()"><i
class="bi bi-arrow-left-circle"></i> Prev
</button>
<button class="btn btn-light float-right font-weight-bold"
(click)="RequiredDocuments()">Next
<i class="bi bi-arrow-right-circle"></i>
</button>
</div>
</div>
</mat-tab>
=======
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
<mat-tab label="Tender Inviting" [disabled]="true"> <br><br>
<div class="card">
<div class="card-body">
<div class="form-row">
<div class="form-group col-md-6">
<label for="tenderInvName">Name</label>
<input type="text" class="form-control" id="tenderInvName"
[(ngModel)]="tenderData.tenderInvName" name="tenderInvName">
</div>
<div class="form-group col-md-6">
<label for="tenderInvAddess">Address</label>
<input type="text" (keyup)="display()" class="form-control"
id="tenderInvAddess" [(ngModel)]="tenderData.tenderInvAddess"
name="tenderInvAddess">
</div>
</div>
</div>
</div><br>
<br>
<div class="form-row">
<div class="form-group col-md-12">
<button class="btn btn-light float-left font-weight-bold" (click)="prevTab()"><i
class="bi bi-arrow-left-circle"></i> Prev
</button>
<<<<<<< HEAD
<button class="btn btn-outline-primary float-right btn-sm"
(click)="submit()">Submit
Tender
<i class="bi bi-send-check"></i>
=======
<button class="btn btn-light float-right font-weight-bold" (click)="submit()">Submit
Tender
<i class="bi bi-arrow-right-circle"></i>
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
</button>
</div>
</div>
</mat-tab>
</mat-tab-group> </mat-tab-group>

@ -23,7 +23,6 @@
min-width: 120px; /* adjust the value as per your requirements */ min-width: 120px; /* adjust the value as per your requirements */
} }
<<<<<<< HEAD
.green-snackbar { .green-snackbar {
background-color: green; background-color: green;
@ -44,6 +43,3 @@
.element-with-tooltip { .element-with-tooltip {
cursor: pointer; /* Set the cursor style to pointer for the element */ cursor: pointer; /* Set the cursor style to pointer for the element */
} }
=======
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3

@ -1,23 +1,16 @@
import { DatePipe } from '@angular/common';
import { Component, OnInit,ViewChild } from '@angular/core'; import { Component, OnInit,ViewChild } from '@angular/core';
<<<<<<< HEAD
import { MatSnackBar,MatSnackBarConfig } from '@angular/material/snack-bar'; import { MatSnackBar,MatSnackBarConfig } from '@angular/material/snack-bar';
import { MatTabGroup } from '@angular/material/tabs'; import { MatTabGroup } from '@angular/material/tabs';
import { ActivatedRoute, Router } from '@angular/router'; import { ActivatedRoute, Router } from '@angular/router';
import { TenderCoversDto } from 'src/app/_dto/tender-covers.dto'; import { TenderCoversDto } from 'src/app/_dto/tender-covers.dto';
=======
import { MatTabGroup } from '@angular/material/tabs';
import { ActivatedRoute, Router } from '@angular/router';
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
import { TenderDetailDto } from 'src/app/_dto/tender-detail.dto'; import { TenderDetailDto } from 'src/app/_dto/tender-detail.dto';
import { TenderDocumentDto } from 'src/app/_dto/tender-documents.dto'; import { TenderDocumentDto } from 'src/app/_dto/tender-documents.dto';
import { apiUrl } from 'src/app/_providers/_resources/api-url.properties'; import { apiUrl } from 'src/app/_providers/_resources/api-url.properties';
import { ErrorTranslateService } from 'src/app/_providers/_services/error-translate.service'; import { ErrorTranslateService } from 'src/app/_providers/_services/error-translate.service';
import { MasterService } from 'src/app/_providers/_services/master.service'; import { MasterService } from 'src/app/_providers/_services/master.service';
import { UiService } from 'src/app/_providers/_services/ui.service'; import { UiService } from 'src/app/_providers/_services/ui.service';
<<<<<<< HEAD
import Swal from 'sweetalert2' import Swal from 'sweetalert2'
=======
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
@Component({ @Component({
selector: 'app-add-tenders', selector: 'app-add-tenders',
@ -40,7 +33,6 @@ export class AddTendersComponent implements OnInit {
documentTypeLov: any; documentTypeLov: any;
isNITDocUploaded: boolean = false; isNITDocUploaded: boolean = false;
isWIDocUploaded: boolean = false; isWIDocUploaded: boolean = false;
<<<<<<< HEAD
toggleValue : boolean = true; toggleValue : boolean = true;
nitDocuments: TenderDocumentDto[] ; nitDocuments: TenderDocumentDto[] ;
@ -58,24 +50,17 @@ export class AddTendersComponent implements OnInit {
addDrwROW: boolean= true addDrwROW: boolean= true
showMessage: boolean = false; showMessage: boolean = false;
======= newDRWROW: boolean = false;
newCvrROW: boolean = false;
nitDocuments: TenderDocumentDto[] ; id: number;
workItemDocuments: TenderDocumentDto[];
selectedFiles: any;
tenderID: number;
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
constructor(private router: Router, constructor(private router: Router,
private _masterService : MasterService, private _masterService : MasterService,
private _ui:UiService, private _ui:UiService,
private route: ActivatedRoute, private route: ActivatedRoute,
<<<<<<< HEAD
private errorTranslateService: ErrorTranslateService, private errorTranslateService: ErrorTranslateService,
private datePipe: DatePipe,
private snackBar: MatSnackBar) private snackBar: MatSnackBar)
=======
private errorTranslateService: ErrorTranslateService,)
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
{ {
this.seculevel = localStorage.getItem('seculevel') this.seculevel = localStorage.getItem('seculevel')
@ -86,7 +71,6 @@ export class AddTendersComponent implements OnInit {
} }
ngOnInit(): void { ngOnInit(): void {
<<<<<<< HEAD
// this.addnoticeROW= true; // this.addnoticeROW= true;
// this.addDrwROW = true; // this.addDrwROW = true;
this.nitDocuments = []; this.nitDocuments = [];
@ -99,6 +83,22 @@ export class AddTendersComponent implements OnInit {
this._masterService.getMasterDatabyId(apiUrl.AllTenderData,this.tenderID).then((res) =>{ this._masterService.getMasterDatabyId(apiUrl.AllTenderData,this.tenderID).then((res) =>{
this.tenderData = res this.tenderData = res
this.tenderData.publishDate = this.convertDateFormat(res.publishDate) ;
this.tenderData.saleStartDate = this.convertDateFormat(res.saleStartDate);
this.tenderData.clarificationStartDate = this.convertDateFormat(res.clarificationStartDate);
this.tenderData.saleEndDate = this.convertDateFormat(res.saleEndDate);
this.tenderData.clarificationEndDate = this.convertDateFormat(res.clarificationEndDate);
this.tenderData.bidSubStartDate = this.convertDateFormat(res.bidSubStartDate);
this.tenderData.bidSubEndDate = this.convertDateFormat(res.bidSubEndDate);
this.tenderData.bidOpenDate = this.convertDateFormat(res.bidOpenDate);
this.coverDocs = this.tenderData.covers
this.newCvrROW =true
this.newDRWROW =true
this.drawingsDocuments = this.tenderData.tenderDoc.filter(element=> element.documentCategory == 'D'); this.drawingsDocuments = this.tenderData.tenderDoc.filter(element=> element.documentCategory == 'D');
for(let i=0;i<this.drawingsDocuments.length;i++){ for(let i=0;i<this.drawingsDocuments.length;i++){
this.drawingsDocuments[i].file = this.drawingsDocuments[i].docName; this.drawingsDocuments[i].file = this.drawingsDocuments[i].docName;
@ -125,6 +125,10 @@ export class AddTendersComponent implements OnInit {
}
convertDateFormat(dateString: string): string {
const date = new Date(dateString);
return this.datePipe.transform(date, 'yyyy-MM-ddTHH:mm');
} }
@ -140,22 +144,6 @@ export class AddTendersComponent implements OnInit {
=======
this.nitDocuments = [];
this.workItemDocuments = [];
if(this.tenderID)
this._masterService.getMasterDatabyId(apiUrl.AllTenderData,this.tenderID).then((res) =>{
console.log("gfgfgf",res);
this.tenderData = res
this.nitDocuments = this.tenderData.tenderDoc.filter(element=> element.documentCategory == 'NIT');
this.workItemDocuments = this.tenderData.tenderDoc.filter(element=> element.documentCategory == 'WID');
})
}
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
getData(){ getData(){
// this._masterService.getMasterData(apiUrl).then((res) =>{ // this._masterService.getMasterData(apiUrl).then((res) =>{
// this.AllTenderData = res // this.AllTenderData = res
@ -176,13 +164,10 @@ export class AddTendersComponent implements OnInit {
this._masterService.getMasterData(apiUrl.documentType).then((res) =>{ this._masterService.getMasterData(apiUrl.documentType).then((res) =>{
this.documentTypeLov = res this.documentTypeLov = res
console.log("res========================",res); console.log("res========================",res);
<<<<<<< HEAD
this.filteredDocumentDrawingTypeLov = this.documentTypeLov.filter(docType => docType.docCategory === 'D'); this.filteredDocumentDrawingTypeLov = this.documentTypeLov.filter(docType => docType.docCategory === 'D');
this.filteredDocumentNITTypeLov = this.documentTypeLov.filter(docType => docType.docCategory === 'N'); this.filteredDocumentNITTypeLov = this.documentTypeLov.filter(docType => docType.docCategory === 'N');
this.filteredDocumentTypeLov = this.documentTypeLov.filter(docType => docType.docCategory == 'WID'); this.filteredDocumentTypeLov = this.documentTypeLov.filter(docType => docType.docCategory == 'WID');
=======
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
}) })
@ -204,7 +189,6 @@ export class AddTendersComponent implements OnInit {
// console.log("productcategoryLov",res); // console.log("productcategoryLov",res);
}) })
<<<<<<< HEAD
this._masterService.getMasterData(apiUrl.coverslov).then((res) =>{ this._masterService.getMasterData(apiUrl.coverslov).then((res) =>{
this.coverslov = res this.coverslov = res
@ -216,23 +200,22 @@ export class AddTendersComponent implements OnInit {
} }
addNewNitDocRow() { addNewNitDocRow() {
if(this.addnoticeROW){ if(this.addnoticeROW){
this._ui.toastMessage(this.errorTranslateService.translate("pleaseEnableNoticeDocuments"),2000,false); this._ui.toastMessage(this.errorTranslateService.translate("pleaseEnableNoticeDocuments"),2000,false);
}else { }else {
=======
}
addNewNITDocRow() {
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
const lastRow = new TenderDocumentDto(); const lastRow = new TenderDocumentDto();
let newRow = Object.assign({}, lastRow); let newRow = Object.assign({}, lastRow);
newRow.documentCategory = 'NIT' newRow.documentCategory = 'NIT'
newRow.crud = 'I' newRow.crud = 'I'
this.nitDocuments.push(newRow); this.nitDocuments.push(newRow);
console.log('===this.nitDocuments===',this.nitDocuments); console.log('===this.nitDocuments===',this.nitDocuments);
<<<<<<< HEAD
} }
} }
@ -250,8 +233,6 @@ export class AddTendersComponent implements OnInit {
} }
=======
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
} }
@ -263,10 +244,10 @@ export class AddTendersComponent implements OnInit {
newRow.documentCategory = 'WID' newRow.documentCategory = 'WID'
newRow.crud = 'I' newRow.crud = 'I'
this.workItemDocuments.push(newRow); this.workItemDocuments.push(newRow);
this.newDRWROW = true
} }
<<<<<<< HEAD
addNewcoverDocRow() { addNewcoverDocRow() {
const lastRow = new TenderCoversDto(); const lastRow = new TenderCoversDto();
@ -274,71 +255,26 @@ export class AddTendersComponent implements OnInit {
// newRow.documentCategory = 'C' // newRow.documentCategory = 'C'
newRow.crud = 'I' newRow.crud = 'I'
this.coverDocs.push(newRow); this.coverDocs.push(newRow);
this.newCvrROW = true
} }
deleteDrawingsRow(id, index: number) {
let removeRow = Object.assign({}, (this.drawingsDocuments).splice(index, 1)[0]);
// this.nitDocuments.push(removeRow);
}
deleteNITRow(id, index: number) {
let removeRow = Object.assign({}, (this.nitDocuments).splice(index, 1)[0]);
// this.workItemDocuments.push(removeRow);
}
deleteWIDRow(id, index: number) {
=======
deleteNITRow(id, index: number) {
// console.log('id for delete===', id);
console.log('index for delete===', index);
let removeRow = Object.assign({}, (this.nitDocuments).splice(index, 1)[0]);
// this.nitDocuments.push(removeRow);
}
deleteWIDRow(id, index: number) {
console.log('id for delete===', id);
console.log('index for delete===', index);
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
let removeRow = Object.assign({}, (this.workItemDocuments).splice(index, 1)[0]);
// this.workItemDocuments.push(removeRow);
}
<<<<<<< HEAD
deleteCoverRow(id, index: number){
let removeRow = Object.assign({}, (this.coverDocs).splice(index, 1)[0]);
}
UploadFiles(event,i,type){
=======
UploadFiles(event,i,type){ UploadFiles(event,i,type){
console.log(" this.tenderData.tenderId", this.tenderData.tenderId);
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
this.selectedFiles = event.target.files; this.selectedFiles = event.target.files;
let file = event.target.files[0] let file = event.target.files[0]
const fd = new FormData(); const fd = new FormData();
fd.append('file', file); fd.append('file', file);
if(file && this.tenderData.tenderId) if(file && this.id)
this._masterService.postMasterData(apiUrl.docUpload,fd,this.tenderData.tenderId).then((res)=>{ this._masterService.postMasterData(apiUrl.docUpload,fd,this.id).then((res)=>{
console.log("res1===",res.fileName); console.log("res1===",res.fileName);
console.log("res2===",res.fileSizeKB); console.log("res2===",res.fileSizeKB);
console.log('======= this.tenderData.tenderDocs==========', this.tenderData.tenderDoc); console.log('======= this.tenderData.tenderDocs==========', this.tenderData.tenderDoc);
<<<<<<< HEAD
if(type == 'WID'){ if(type == 'WID'){
// this.nitDocuments[i].docName = res.fileName // this.nitDocuments[i].docName = res.fileName
// this.nitDocuments[i].file = res.fileName // this.nitDocuments[i].file = res.fileName
@ -361,8 +297,8 @@ export class AddTendersComponent implements OnInit {
fd.append('file', file); fd.append('file', file);
if(file && this.tenderData.tenderId) if(file && this.id)
this._masterService.postMasterData(apiUrl.nitUploadDoc,fd,this.tenderData.tenderId).then((res)=>{ this._masterService.postMasterData(apiUrl.nitUploadDoc,fd,this.id).then((res)=>{
console.log("res1===",res.fileName); console.log("res1===",res.fileName);
console.log("res2===",res.fileSizeKB); console.log("res2===",res.fileSizeKB);
console.log('======= this.tenderData.tenderDocs==========', this.tenderData.tenderDoc); console.log('======= this.tenderData.tenderDocs==========', this.tenderData.tenderDoc);
@ -391,9 +327,9 @@ export class AddTendersComponent implements OnInit {
let file = event.target.files[0] let file = event.target.files[0]
const fd = new FormData(); const fd = new FormData();
fd.append('file', file); fd.append('file', file);
if(file && this.tenderData.tenderId) if(file && this.id)
console.log(" this.drawingsDocuments", this.drawingsDocuments); console.log(" this.drawingsDocuments", this.drawingsDocuments);
this._masterService.postMasterData(apiUrl.drawingUploadDoc,fd,this.tenderData.tenderId).then((res) =>{ this._masterService.postMasterData(apiUrl.drawingUploadDoc,fd,this.id).then((res) =>{
console.log("drawings===",res); console.log("drawings===",res);
this.drawingsDocuments[i].docName = res.fileName this.drawingsDocuments[i].docName = res.fileName
this.drawingsDocuments[i].file = res.fileName; this.drawingsDocuments[i].file = res.fileName;
@ -403,6 +339,34 @@ export class AddTendersComponent implements OnInit {
} }
deleteDrawingsRow(id, index: number) {
this._masterService.deleteMasterData(apiUrl.drawingsDelete,`${this.id}/${this.drawingsDocuments[index].docName}`)
let removeRow = Object.assign({}, (this.drawingsDocuments).splice(index, 1)[0]);
// this.nitDocuments.push(removeRow);
}
deleteNITRow(id, index: number) {
this._masterService.deleteMasterData(apiUrl.noticeDelete,`${this.id}/${this.nitDocuments[index].docName}`)
let removeRow = Object.assign({}, (this.nitDocuments).splice(index, 1)[0]);
// this.workItemDocuments.push(removeRow);
}
deleteWIDRow(id, index: number) {
this._masterService.deleteMasterData(apiUrl.widDelete,`${this.id}/${this.workItemDocuments[index].docName}`)
let removeRow = Object.assign({}, (this.workItemDocuments).splice(index, 1)[0]);
// this.workItemDocuments.push(removeRow);
}
deleteCoverRow(id, index: number){
let removeRow = Object.assign({}, (this.coverDocs).splice(index, 1)[0]);
}
// UploadCoverFiles(event,i){ // UploadCoverFiles(event,i){
// this.selectedFiles = event.target.files; // this.selectedFiles = event.target.files;
// let file = event.target.files[0] // let file = event.target.files[0]
@ -414,25 +378,6 @@ export class AddTendersComponent implements OnInit {
// } // }
=======
if(type == 'NIT'){
this.nitDocuments[i].docName = res.fileName
this.nitDocuments[i].documentSize =res.fileSizeKB;
}
else{
this.workItemDocuments[i].docName = res.fileName
this.workItemDocuments[i].documentSize =res.fileSizeKB;
}
// this.tenderData.tenderDocs[i].docName = res.fileName;
// this.tenderData.tenderDocs[i].doc_size =res.fileSizeKB;
})
}
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
readUrl(event: any) { readUrl(event: any) {
// console.log('size is high'); // console.log('size is high');
@ -549,7 +494,6 @@ export class AddTendersComponent implements OnInit {
else if(this.tenderData.ndaPreQualification =='' || this.tenderData.ndaPreQualification == null || this.tenderData.ndaPreQualification == undefined){ else if(this.tenderData.ndaPreQualification =='' || this.tenderData.ndaPreQualification == null || this.tenderData.ndaPreQualification == undefined){
this._ui.toastMessage(this.errorTranslateService.translate("preQualificationCantBeBlank"),2000,true); this._ui.toastMessage(this.errorTranslateService.translate("preQualificationCantBeBlank"),2000,true);
} }
<<<<<<< HEAD
else if( this.tenderData.tenderValue == null || this.tenderData.tenderValue == undefined){ else if( this.tenderData.tenderValue == null || this.tenderData.tenderValue == undefined){
this._ui.toastMessage(this.errorTranslateService.translate("tenderValueCantBeBlank"),2000,true); this._ui.toastMessage(this.errorTranslateService.translate("tenderValueCantBeBlank"),2000,true);
} }
@ -593,44 +537,6 @@ export class AddTendersComponent implements OnInit {
// this._ui.toastMessage(this.errorTranslateService.translate("preBidMeetingPlaceCantBeBlank"),2000,true); // this._ui.toastMessage(this.errorTranslateService.translate("preBidMeetingPlaceCantBeBlank"),2000,true);
// } // }
=======
else if( this.tenderData.pincode == null || this.tenderData.pincode == undefined){
this._ui.toastMessage(this.errorTranslateService.translate("pincodeCantBeBlank"),2000,true);
}
else if( this.tenderData.tenderValue == null || this.tenderData.tenderValue == undefined){
this._ui.toastMessage(this.errorTranslateService.translate("tenderValueCantBeBlank"),2000,true);
}
else if(this.tenderData.contractType =='' || this.tenderData.contractType == null || this.tenderData.contractType == undefined){
this._ui.toastMessage(this.errorTranslateService.translate("contractTypeCantBeBlank"),2000,true);
}
else if(this.tenderData.location =='' || this.tenderData.location == null || this.tenderData.location == undefined){
this._ui.toastMessage(this.errorTranslateService.translate("locationCantBeBlank"),2000,true);
}
// else if( this.tenderData.preBidMeetAdd == '' || this.tenderData.preBidMeetAdd == null || this.tenderData.preBidMeetAdd == undefined){
// this._ui.toastMessage(this.errorTranslateService.translate("preBidMeetingAddressCantBeBlank"),2000,true);
// }
else if( this.tenderData.productCategory == null || this.tenderData.productCategory == undefined){
this._ui.toastMessage(this.errorTranslateService.translate("productCategoryCantBeBlank"),2000,true);
}
else if( this.tenderData.bidValidity == null || this.tenderData.bidValidity == undefined){
this._ui.toastMessage(this.errorTranslateService.translate("bidValidityCantBeBlank"),2000,true);
}
// else if( this.tenderData.preBidDate == null || this.tenderData.preBidDate == undefined){
// this._ui.toastMessage(this.errorTranslateService.translate("preBidMeetingDateCantBeBlank"),2000,true);
// }
else if(this.tenderData.subCategory =='' || this.tenderData.subCategory == null || this.tenderData.subCategory == undefined){
this._ui.toastMessage(this.errorTranslateService.translate("subCategoryCantBeBlank"),2000,true);
}
else if( this.tenderData.periodOfWork == null || this.tenderData.periodOfWork == undefined){
this._ui.toastMessage(this.errorTranslateService.translate("periodOfWorkCantBeBlank"),2000,true);
}
// else if(this.tenderData.preBidMeetPlace == '' || this.tenderData.preBidMeetPlace == null || this.tenderData.preBidMeetPlace == undefined){
// this._ui.toastMessage(this.errorTranslateService.translate("preBidMeetingPlaceCantBeBlank"),2000,true);
// }
else if(this.tenderData.bidOpeningPlace =='' || this.tenderData.bidOpeningPlace == null || this.tenderData.bidOpeningPlace == undefined){
this._ui.toastMessage(this.errorTranslateService.translate("bidOpeningPlaceCantBeBlank"),2000,true);
}
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
else this.nextTab() else this.nextTab()
} }
@ -670,48 +576,146 @@ export class AddTendersComponent implements OnInit {
} }
TendersDocuments(){
<<<<<<< HEAD tenderDocumnetsPreCheck(){
// if( this.nitDocuments.file == null || this.nitDocuments.file == undefined){
======= for (let i = 0; i < this.drawingsDocuments.length; i++) {
// if( this.tenderData.emdAmt == null || this.tenderData.emdAmt == undefined){ if( this.drawingsDocuments[i].file == null || this.drawingsDocuments[i].file == undefined){
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3 this._ui.toastMessage(this.errorTranslateService.translate("UploaddocumentCantBeBlank"),2000,true);
// this._ui.toastMessage(this.errorTranslateService.translate("feePayableAtCantBeBlank"),2000,true); return false;
// } }
// else if(this.tenderData.emdFeeType =='' || this.tenderData.emdFeeType == null || this.tenderData.emdFeeType == undefined){ else if(this.drawingsDocuments[i].docType == '' ||this.drawingsDocuments[i].docType == null || this.drawingsDocuments[i].docType == undefined){
// console.log("errrrr2"); this._ui.toastMessage(this.errorTranslateService.translate("documentTypeCantBeBlank"),2000,true);
// } return false;
// else if(this.tenderData.emdPayableTo =='' || this.tenderData.emdPayableTo == null || this.tenderData.emdPayableTo == undefined){ }
// console.log("errrrr3"); else if(this.drawingsDocuments[i].description == '' ||this.drawingsDocuments[i].description == null || this.drawingsDocuments[i].description == undefined){
// } this._ui.toastMessage(this.errorTranslateService.translate("descriptionCantBeBlank"),2000,true);
// else if( this.tenderData.allowEmdBgOrSt == '' || this.tenderData.allowEmdBgOrSt == null || this.tenderData.allowEmdBgOrSt == undefined){ return false;
// console.log("errrrr4"); }
// } }
// else if( this.tenderData.emdPercentage == null || this.tenderData.emdPercentage == undefined){
// console.log("errrrr5"); for (let i = 0; i < this.nitDocuments.length; i++) {
// } if( this.nitDocuments[i].file == null || this.nitDocuments[i].file == undefined){
// else this._ui.toastMessage(this.errorTranslateService.translate("UploaddocumentCantBeBlank"),2000,true);
<<<<<<< HEAD return false;
this.tenderData.tenderDoc = this.nitDocuments.concat(this.workItemDocuments, this.drawingsDocuments) }
this.nextTab() else if(this.nitDocuments[i].docType == '' || this.nitDocuments[i].docType == null || this.nitDocuments[i].docType == undefined){
this._ui.toastMessage(this.errorTranslateService.translate("documentTypeCantBeBlank"),2000,true);
return false;
}
else if(this.nitDocuments[i].description == '' || this.nitDocuments[i].description == null || this.nitDocuments[i].description == undefined){
this._ui.toastMessage(this.errorTranslateService.translate("descriptionCantBeBlank"),2000,true);
return false;
}
}
for (let i = 0; i < this.workItemDocuments.length; i++) {
if( this.workItemDocuments[i].file == null || this.workItemDocuments[i].file == undefined){
this._ui.toastMessage(this.errorTranslateService.translate("UploaddocumentCantBeBlank"),2000,true);
return false;
}
else if(this.workItemDocuments[i].docType == '' ||this.workItemDocuments[i].docType == null || this.workItemDocuments[i].docType == undefined){
this._ui.toastMessage(this.errorTranslateService.translate("documentTypeCantBeBlank"),2000,true);
return false;
}
else if(this.workItemDocuments[i].description == '' ||this.workItemDocuments[i].description == null || this.workItemDocuments[i].description == undefined){
this._ui.toastMessage(this.errorTranslateService.translate("descriptionCantBeBlank"),2000,true);
return false;
}
}
return true
}
RequiredDocumentsPreCheck(){
for (let i = 0; i < this.coverDocs.length; i++) {
if( this.coverDocs[i].coverType == null || this.coverDocs[i].coverType == undefined){
this._ui.toastMessage(this.errorTranslateService.translate("documentTypeCantBeBlank"),2000,true);
return false;
}
else if(this.coverDocs[i].Description == '' ||this.coverDocs[i].Description == null || this.coverDocs[i].Description == undefined){
this._ui.toastMessage(this.errorTranslateService.translate("descriptionCantBeBlank"),2000,true);
return false;
}
else if(this.coverDocs[i].fileFormat == '' ||this.coverDocs[i].fileFormat == null || this.coverDocs[i].fileFormat == undefined){
this._ui.toastMessage(this.errorTranslateService.translate("documentFormatCantBeBlank"),2000,true);
return false;
}
}
return true
} }
RequiredDocuments(){ RequiredDocuments(){
if(this.RequiredDocumentsPreCheck() )
if(!this.newCvrROW){
this._ui.toastMessage(this.errorTranslateService.translate("requiresDocs"),2000,true);
return false;
}
if(this.RequiredDocumentsPreCheck() ){
this.tenderData.covers = this.coverDocs this.tenderData.covers = this.coverDocs
this.nextTab() this.nextTab()
} }
}
=======
this.tenderData.tenderDoc = this.nitDocuments.concat(this.workItemDocuments) TendersDocuments(){
this.nextTab() this.tenderData.id =this.id
this.tenderData.crud = 'I'
if(this.tenderDocumnetsPreCheck() )
if(!this.newDRWROW){
this._ui.toastMessage(this.errorTranslateService.translate("addDocs"),2000,true);
return false;
}
if(this.tenderDocumnetsPreCheck() ){
// this.nextTab()
this.tenderData.tenderDoc = this.nitDocuments.concat(this.workItemDocuments, this.drawingsDocuments)
this._masterService.saveAllMasterData(apiUrl.AllTenderData,this.tenderData).then((res)=>{
if(res){
Swal.fire(
'Created',
'Tender created successfully',
'success'
)
}
}, (err) =>{
if(err.status != 201){
console.log("-error-");
Swal.fire({
icon: 'error',
title: 'Oops...',
text: 'Something went wrong!',
})
} }
});
}
}
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
submit(){ submit(){
this.tenderData.crud = 'I' this.tenderData.crud = 'I'
console.log('onsub---',this.tenderData); console.log('onsub---',this.tenderData);
@ -725,16 +729,19 @@ export class AddTendersComponent implements OnInit {
return return
} }
<<<<<<< HEAD
this._masterService.saveAllMasterData(apiUrl.AllTenderData,this.tenderData).then((res)=>{ this._masterService.saveAllMasterData(apiUrl.AllTenderData,this.tenderData).then((res)=>{
console.log('successssssssss========',res); console.log('successssssssss========',res);
this.id = res['id']
console.log('this.id========',this.id);
if(res){ if(res){
Swal.fire( Swal.fire(
'Created', 'Created',
'Tender created successfully', 'Tender Details created successfully',
'success' 'success'
) )
this.nextTab()
} }
}, (err) =>{ }, (err) =>{
@ -749,16 +756,6 @@ export class AddTendersComponent implements OnInit {
} }
}); });
=======
console.log('onsub-2--',this.tenderData);
//
this._masterService.saveAllMasterData(apiUrl.AllTenderData,this.tenderData).then((res)=>{
console.log(res);
})
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
} }

@ -12,11 +12,7 @@ const routes: Routes = [
{ path: '', redirectTo: '/dashboard', pathMatch: 'full' }, { path: '', redirectTo: '/dashboard', pathMatch: 'full' },
{ path: 'dashboard', component: DashboardComponent }, { path: 'dashboard', component: DashboardComponent },
{path:'tender-view/:id', component:HomeViewComponent}, {path:'tender-view/:id', component:HomeViewComponent},
<<<<<<< HEAD
{path:'tender-upload/:id',component:HomeUploadComponent}, {path:'tender-upload/:id',component:HomeUploadComponent},
=======
{path:'tender-upload',component:HomeUploadComponent},
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
{ path: 'add-tenders', component: AddTendersComponent}, { path: 'add-tenders', component: AddTendersComponent},
{ path: 'add-tenders/:id', component: AddTendersComponent} { path: 'add-tenders/:id', component: AddTendersComponent}

@ -1,9 +1,6 @@
<div class="container-responsive"> <div class="container-responsive">
<<<<<<< HEAD
<mat-progress-bar mode="indeterminate" *ngIf="loading"></mat-progress-bar> <mat-progress-bar mode="indeterminate" *ngIf="loading"></mat-progress-bar>
=======
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
<!-- <nav class="navbar navbar-expand-lg" style="padding: 16.5px;"> <!-- <nav class="navbar navbar-expand-lg" style="padding: 16.5px;">
<div class="container"> <div class="container">
<p class="navbar-brand d-flex align-items-center" href="#"> <p class="navbar-brand d-flex align-items-center" href="#">
@ -48,20 +45,12 @@
</div> --> </div> -->
<br> <br>
<<<<<<< HEAD
<div class="container "> <div class="container ">
=======
<div class="container text-center">
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
<div class="row"> <div class="row">
<div class="col-12"> <div class="col-12">
<div style="text-align: right;margin-bottom: 5px;" *ngIf="seculevel == 'B'"> <div style="text-align: right;margin-bottom: 5px;" *ngIf="seculevel == 'B'">
<<<<<<< HEAD
<button mat-raised-button (click)="addNewTender()" style="color: #46AC9E;">{{ 'addTender' | translate }}</button> <button mat-raised-button (click)="addNewTender()" style="color: #46AC9E;">{{ 'addTender' | translate }}</button>
=======
<button mat-raised-button (click)="addNewTender()" style="color: darkred;">{{ 'addTender' | translate }}</button>
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
</div> </div>
<div class="card-responsive"> <div class="card-responsive">
<div class="card-body-responsive"> <div class="card-body-responsive">
@ -73,13 +62,8 @@
<th class="col-sm-8">TENDER NAME</th> <th class="col-sm-8">TENDER NAME</th>
<th class="col-sm-1" *ngIf="seculevel == 'B'">EDIT</th> <th class="col-sm-1" *ngIf="seculevel == 'B'">EDIT</th>
<th class="col-sm-1">VIEW</th> <th class="col-sm-1">VIEW</th>
<<<<<<< HEAD
<th class="col-sm-1" *ngIf="seculevel != 'B'">UPLOAD</th> <th class="col-sm-1" *ngIf="seculevel != 'B'">UPLOAD</th>
=======
<th class="col-sm-1">UPLOAD</th>
<!-- <th class="col-sm-1">CANCEL</th> -->
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
@ -92,13 +76,8 @@
<td class="col-sm-1" > <td class="col-sm-1" >
<button type="button" class="btn btn-outline-dark btn-sm" (click)="goToView(tender.id)"><i class="bi bi-card-list"></i></button> <button type="button" class="btn btn-outline-dark btn-sm" (click)="goToView(tender.id)"><i class="bi bi-card-list"></i></button>
</td> </td>
<<<<<<< HEAD
<td class="col-sm-1" *ngIf="seculevel != 'B'"> <td class="col-sm-1" *ngIf="seculevel != 'B'">
<button type="button" class="btn btn-outline-dark btn-sm" (click)="goToUpload(tender.id)"><i class="bi bi-upload"></i></button> <button type="button" class="btn btn-outline-dark btn-sm" (click)="goToUpload(tender.id)"><i class="bi bi-upload"></i></button>
=======
<td class="col-sm-1" >
<button type="button" class="btn btn-outline-dark btn-sm" (click)="goToUpload()"><i class="bi bi-upload"></i></button>
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
</td> </td>
</tr> </tr>
</tbody> </tbody>

@ -14,11 +14,8 @@ import { MatSort, Sort } from '@angular/material/sort';
import { MatTableDataSource } from '@angular/material/table'; import { MatTableDataSource } from '@angular/material/table';
import { routes } from 'src/app/consts'; import { routes } from 'src/app/consts';
import { MasterService } from 'src/app/_providers/_services/master.service'; import { MasterService } from 'src/app/_providers/_services/master.service';
<<<<<<< HEAD
import { TenderDetailDto } from 'src/app/_dto/tender-detail.dto'; import { TenderDetailDto } from 'src/app/_dto/tender-detail.dto';
import { ErrorTranslateService } from 'src/app/_providers/_services/error-translate.service'; import { ErrorTranslateService } from 'src/app/_providers/_services/error-translate.service';
=======
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
@Component({ @Component({
selector: 'app-dashboard', selector: 'app-dashboard',
@ -38,7 +35,6 @@ export class DashboardComponent implements OnInit {
public routers: typeof routes = routes; public routers: typeof routes = routes;
schoolLogoPath: string; schoolLogoPath: string;
<<<<<<< HEAD
tenderData: any; tenderData: any;
@ -59,10 +55,6 @@ export class DashboardComponent implements OnInit {
@ViewChild(MatSort, { static: false }) sort: MatSort; @ViewChild(MatSort, { static: false }) sort: MatSort;
noData: boolean; noData: boolean;
=======
tenderData: any;
seculevel: string = ''
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
constructor( constructor(
private _menuService: MenuService, private _menuService: MenuService,
@ -70,12 +62,8 @@ export class DashboardComponent implements OnInit {
private _ui: UiService, private _ui: UiService,
private emailService: EmailService, private emailService: EmailService,
private authenticationService: AuthService, private authenticationService: AuthService,
<<<<<<< HEAD
private _masterService: MasterService, private _masterService: MasterService,
private errorService:ErrorTranslateService private errorService:ErrorTranslateService
=======
private _masterService: MasterService
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
) { ) {
// this.user$ = this.getUser(); // this.user$ = this.getUser();
this.seculevel = localStorage.getItem('seculevel') this.seculevel = localStorage.getItem('seculevel')
@ -83,7 +71,6 @@ export class DashboardComponent implements OnInit {
// this.emails$ = this.emailService.loadEmails(); // this.emails$ = this.emailService.loadEmails();
// this.getSchoolLogo(); // this.getSchoolLogo();
<<<<<<< HEAD
if(this.seculevel == 'B'){ if(this.seculevel == 'B'){
this.displayedColumns = ['actions','title','publishedDate','bidOpenDate','view']; this.displayedColumns = ['actions','title','publishedDate','bidOpenDate','view'];
} }
@ -94,12 +81,6 @@ export class DashboardComponent implements OnInit {
// displayedColumns: string[] = ['no', 'name','download']; // displayedColumns: string[] = ['no', 'name','download'];
=======
}
displayedColumns: string[] = ['no', 'name','download'];
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
loading: boolean = true; loading: boolean = true;
@ -109,25 +90,15 @@ export class DashboardComponent implements OnInit {
async ngOnInit() { async ngOnInit() {
<<<<<<< HEAD
this.getData(); this.getData();
=======
this._masterService.getMasterData(apiUrl.getTender).then((res) =>{
console.log("tenderData",res);
this.tenderData = res
})
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
// await this._ui.userValidation() // await this._ui.userValidation()
// this.loading = true; // this.loading = true;
// this.getMenuData(); // this.getMenuData();
} }
<<<<<<< HEAD
getData(){ getData(){
if(this.seculevel != 'B') if(this.seculevel != 'B')
this._masterService.getMasterData(apiUrl.getTender).then((res) =>{ this._masterService.getMasterData(apiUrl.getTender).then((res) =>{
@ -159,13 +130,10 @@ export class DashboardComponent implements OnInit {
}) })
} }
=======
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
addNewTender(){ addNewTender(){
this.navigateTo('/add-tenders') this.navigateTo('/add-tenders')
} }
<<<<<<< HEAD
sortData(sort: Sort) { sortData(sort: Sort) {
const data = this.tenderData.slice(); const data = this.tenderData.slice();
@ -223,8 +191,6 @@ export class DashboardComponent implements OnInit {
this.searchTerm = ""; this.searchTerm = "";
this.getData(); this.getData();
} }
=======
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
// navigateTo(destination) { // navigateTo(destination) {
// this.router.navigate([destination]); // this.router.navigate([destination]);
// } // }
@ -308,13 +274,8 @@ export class DashboardComponent implements OnInit {
this.router.navigate(['/add-tenders']); this.router.navigate(['/add-tenders']);
} }
<<<<<<< HEAD
goToUpload(tenderId){ goToUpload(tenderId){
this.router.navigate(['/tender-upload',tenderId]); this.router.navigate(['/tender-upload',tenderId]);
=======
goToUpload(){
this.router.navigate(['/tender-upload']);
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
} }
goToEdit(tenderId){ goToEdit(tenderId){
this.router.navigate(['/add-tenders',tenderId]); this.router.navigate(['/add-tenders',tenderId]);

@ -24,14 +24,11 @@ import { AddTendersComponent } from './add-tenders/add-tenders.component';
import { MatTabsModule } from '@angular/material/tabs'; import { MatTabsModule } from '@angular/material/tabs';
import { MatDatepickerModule } from '@angular/material/datepicker'; import { MatDatepickerModule } from '@angular/material/datepicker';
import { MatNativeDateModule } from '@angular/material/core'; import { MatNativeDateModule } from '@angular/material/core';
<<<<<<< HEAD
import { MatSelectModule } from '@angular/material/select'; import { MatSelectModule } from '@angular/material/select';
import { MatMomentDateModule } from '@angular/material-moment-adapter'; import { MatMomentDateModule } from '@angular/material-moment-adapter';
import {MatTooltipModule} from '@angular/material/tooltip'; import {MatTooltipModule} from '@angular/material/tooltip';
// import { NgxMatTimepickerModule } from 'ngx-mat-timepicker'; // import { NgxMatTimepickerModule } from 'ngx-mat-timepicker';
import { LOCALE_ID } from '@angular/core'; import { LOCALE_ID } from '@angular/core';
=======
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
// import { MatTimepickerModule } from 'mat-timepicker'; // import { MatTimepickerModule } from 'mat-timepicker';
// import { MatTimepickerModule } from '@angular/material/timepicker'; // import { MatTimepickerModule } from '@angular/material/timepicker';
@ -65,7 +62,6 @@ const lang = 'en-US';
TranslateModule, TranslateModule,
ReactiveFormsModule, ReactiveFormsModule,
MatTabsModule, MatTabsModule,
<<<<<<< HEAD
MatSelectModule, MatSelectModule,
MatNativeDateModule, MatNativeDateModule,
MatDatepickerModule, MatDatepickerModule,
@ -78,11 +74,5 @@ const lang = 'en-US';
], ],
providers: [{ provide: LOCALE_ID, useValue: lang }] providers: [{ provide: LOCALE_ID, useValue: lang }]
=======
MatNativeDateModule,
MatDatepickerModule
]
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
}) })
export class DashboardModule { } export class DashboardModule { }

@ -1,8 +1,4 @@
<<<<<<< HEAD
<div class="container-responsive" *ngIf="secuLevel !='B'"> <div class="container-responsive" *ngIf="secuLevel !='B'">
=======
<div class="container-responsive">
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
<!-- <nav class="navbar navbar-expand-lg" style="padding: 16.5px;"> <!-- <nav class="navbar navbar-expand-lg" style="padding: 16.5px;">
<div class="container"> <div class="container">
<p class="navbar-brand d-flex align-items-center" href="#"> <p class="navbar-brand d-flex align-items-center" href="#">
@ -49,49 +45,13 @@
</div><br> </div><br>
<div class="container"> <div class="container">
<div class="row"> <div class="row resp" >
<div class="col-sm-6 offset-sm-3"> <div class="col-sm-6 offset-sm-3">
<div class="card"> <div class="card">
<div class="card-body"> <div class="card-body">
<div class="form-group"> <div class="form-group">
<form (ngSubmit)="submitForm()" #myForm="ngForm"> <form #myForm="ngForm">
<div class="form-group">
<label for="name">Name</label>
<input type="text" class="form-control" id="name" placeholder="Enter your name" [(ngModel)]="formData.name" name="name" required>
<div *ngIf="myForm.submitted && myForm.controls.name.errors">
<div *ngIf="myForm.controls.name.errors.required" class="text-danger">
Name is required.
</div>
</div>
</div>
<div class="form-group">
<label for="phone">Phone Number</label>
<input type="text" class="form-control" id="phone" placeholder="Enter your phone number" [(ngModel)]="formData.phone" name="phone" required pattern="[0-9]{10}" [ngModelOptions]="{ updateOn: 'blur' }" >
<!-- Error messages for required and pattern -->
<div *ngIf="myForm.submitted && myForm.controls.phone.errors">
<div *ngIf="myForm.controls.phone.errors.required" class="text-danger">
Phone number is required.
</div>
<div *ngIf="myForm.controls.phone.errors.pattern" class="text-danger">
Phone number must be a 10-digit number.
</div>
<div *ngIf="phoneInvalid" class="text-danger">
Invalid phone number format.
</div>
</div>
</div>
<div class="form-group">
<label for="email">Email</label>
<input type="email" class="form-control" id="email" placeholder="Enter your email" [(ngModel)]="formData.email" name="email" required email>
<div *ngIf="myForm.submitted && myForm.controls.email.errors">
<div *ngIf="myForm.controls.email.errors.required" class="text-danger">
Email is required.
</div>
<div *ngIf="myForm.controls.email.errors.email" class="text-danger">
Invalid email format.
</div>
</div>
</div>
<table id="customers"> <table id="customers">
<tr> <tr>
<th style="width:30%;text-align: center;">Description</th> <th style="width:30%;text-align: center;">Description</th>
@ -99,16 +59,36 @@
<!-- <th>Country</th> --> <!-- <th>Country</th> -->
</tr> </tr>
<tr *ngFor="let i of a"> <tr *ngFor="let cover of tenderData?.covers;let i=index">
<td></td> <td>{{cover?.Description}}
<br>(uploading file should be in {{cover?.fileFormatD?.fileFormat}} format)
</td>
<td> <td>
<div class="form-group"> <div class="form-group">
<!-- <label for="file1">File 1:</label> --> <!-- <label for="file1">File 1:</label> -->
<div class="input-group"> <div class="input-group">
<input type="file" id="file1" class="form-control">
<button class="btn btn-outline-secondary delete-btn" (click)="deleteInput('file1')" type="button"> <mat-form-field class="columns" appearance="outline" style="height: 15px;margin-top: -10px;width:90%;">
<i class="bi bi-trash"></i> <mat-label *ngIf="tenderData?.covers[i].file; else assetImageLabel">
{{tenderData?.covers[i].file}}</mat-label>
<ng-template #assetImageLabel>
<mat-label> {{ 'assetImagePath' | translate }} </mat-label>
</ng-template>
<input matInput readonly [(ngModel)]="tenderData?.covers[i].file" [ngModelOptions]="{standalone: true}">
<button mat-icon-button matSuffix *ngIf="!this.fileSelected[i]" (click)="assetFileInput.click();">
<mat-icon>attach_file</mat-icon>
</button>
<button mat-icon-button matSuffix *ngIf="this.fileSelected[i]" (click)="deleteInput(i);">
<mat-icon>delete</mat-icon>
</button> </button>
<input hidden (change)="UploadFiles($event,i)" #assetFileInput [accept]="this.tenderData.covers[i].fileFormatD?.fileFormat" type="file" id="file1">
</mat-form-field>
<!-- <input type="file" id="file1" class="form-control"> -->
<!-- <button class="btn btn-outline-secondary delete-btn" (click)="deleteInput('file')" type="button">
<i class="bi bi-trash"></i>
</button> -->
</div> </div>
</div> </div>
</td> </td>
@ -118,19 +98,8 @@
</tr> </tr>
</table> </table>
<!-- <div class="form-group">
<label for="file3">File 3:</label> <button type="submit" style="margin-top: 10px;" class="btn btn-outline-dark float-right" (click)="submit()">Submit</button>
<div class="input-group">
<input type="file" id="file3" class="form-control" aria-describedby="button-addon1" [(ngModel)]="formData.file3" name="file3">
<button class="btn btn-outline-secondary delete-btn" (click)="deleteInput('file3')" type="button">
<i class="bi bi-trash"></i>
</button>
</div>
</div> -->
<div *ngIf="myForm.submitted && myForm.invalid" class="text-danger">
Please fill in all required fields.
</div>
<button type="submit" style="margin-top: 10px;" class="btn btn-outline-dark float-right" >Submit</button>
</form> </form>

@ -23,3 +23,11 @@
.nav-link:hover { .nav-link:hover {
color: rgb(255, 0, 0); color: rgb(255, 0, 0);
} }
.resp{
min-height: 260px;
}
@media (max-width: 767px) {
.resp{
min-height: 460px;
}
}

@ -1,9 +1,13 @@
import { Component, OnInit } from '@angular/core'; import { Component, OnInit } from '@angular/core';
import { FormGroup } from '@angular/forms'; import { FormGroup } from '@angular/forms';
import { Router } from '@angular/router'; import { ActivatedRoute, Router } from '@angular/router';
import { log } from 'console'; import { log } from 'console';
import { TenderDocumentDto } from 'src/app/_dto/tender-documents.dto';
import { apiUrl } from 'src/app/_providers/_resources/api-url.properties';
import { ErrorTranslateService } from 'src/app/_providers/_services/error-translate.service'; import { ErrorTranslateService } from 'src/app/_providers/_services/error-translate.service';
import { MasterService } from 'src/app/_providers/_services/master.service';
import { UiService } from 'src/app/_providers/_services/ui.service'; import { UiService } from 'src/app/_providers/_services/ui.service';
import Swal from 'sweetalert2'
@Component({ @Component({
selector: 'app-home-upload', selector: 'app-home-upload',
@ -21,16 +25,101 @@ export class HomeUploadComponent implements OnInit {
myForm: FormGroup; myForm: FormGroup;
loading: boolean = true loading: boolean = true
<<<<<<< HEAD
a=[{},{},{},{}] selected: boolean
=======
a=[{},{},{},{}]
constructor(private router: Router) { }
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
constructor(private router: Router,private _ui:UiService,private _errorTranslate: ErrorTranslateService) { tenderId: number;
tenderData: any;
selectedFiles: any;
userId: string;
fileSelected: boolean[]
DEFAULT_COVER_COUNT: any;
initialSelectionStatus: any;
UploadedFile: TenderDocumentDto[];
fileFormat: any[]
constructor(
private router: Router,
private route: ActivatedRoute,
private _ui: UiService,
private _errorTranslate: ErrorTranslateService,
private _masterService: MasterService
) {
this.secuLevel = localStorage.getItem('seculevel'); this.secuLevel = localStorage.getItem('seculevel');
this.userId = localStorage.getItem('userId');
this.tenderId = +this.route.snapshot.paramMap.get('id');
}
ngOnInit(): void {
this.loading = true;
this.getData();
this.getFileFormatLov();
}
getData() {
this._masterService.getMasterDatabyId(apiUrl.AllTenderData, this.tenderId).then((res) => {
// console.log("tenderData", res);
this.loading = false;
this.tenderData = res;
this.DEFAULT_COVER_COUNT = this.tenderData?.covers.length; // Replace with the actual number of rows
this.initialSelectionStatus = new Array(this.DEFAULT_COVER_COUNT).fill(false);
this.fileSelected = [...this.initialSelectionStatus];
console.log('file---',this.fileSelected);
this.UploadedFile = [];
for(let i=0;i<this.tenderData?.covers.length;i++){
this.UploadedFile.push(new TenderDocumentDto());
}
})
}
getFileFormatLov() {
this._masterService.getMasterData(apiUrl.fileFormat).then((res) => {
this.fileFormat = res
console.log('this.fileFormat===', this.fileFormat);
})
}
UploadFiles(event, i) {
// console.log('fileFormatId===',this.tenderData.covers[i].fileFormatD.fileFormat);
let fileFormatId = this.fileFormat.filter(element => element.fileFormat == this.tenderData.covers[i].fileFormatD.fileFormat);
this.selectedFiles = event.target.files;
let file = event.target.files[0]
const fd = new FormData();
fd.append('file', file);
if (file && this.tenderId) {
this._masterService.postMasterData(apiUrl.userDocUpload + '/' + this.tenderId, fd, this.userId).then(res => {
this.tenderData.covers[i].file = res.fileName;
this.fileSelected[i] = true;
this.UploadedFile[i].docName = res.fileName
this.UploadedFile[i].description = this.tenderData.covers[i].Description;
this.UploadedFile[i].docType = fileFormatId[0].id;
this.UploadedFile[i].documentSize = res.fileSizeKB;
this.UploadedFile[i].documentCategory = 'USERD';
this.UploadedFile[i].tenderId = this.tenderId;
this.UploadedFile[i].userId = this.userId;
console.log('this.UploadedFile========',this.UploadedFile);
})
}
} }
navigateTo(destination: any) { navigateTo(destination: any) {
@ -44,41 +133,77 @@ export class HomeUploadComponent implements OnInit {
goToContactUs() { goToContactUs() {
window.location.href = 'https://www.thrickodithanamscb.in/index.html#contact'; window.location.href = 'https://www.thrickodithanamscb.in/index.html#contact';
} }
preSave() { preSave() {
if(this.formData.name == '' || this.formData.name == undefined){ for (let element of this.UploadedFile) {
console.log("1"); if (!element.docName) {
this._ui.toastMessage(this._errorTranslate.translate("pleaseAddfiles"),2000,true);
return false
}
if(this.formData.phone == '' || this.formData.phone == undefined || this.formData.phone.length > 10 || this.formData.phone.length < 10){
console.log("ph");
return false
}
if(!this._ui.phoneNoValidation(this.formData.phone)){
this._ui.toastMessage(this._errorTranslate.translate('enterAValidPhoneNumber'));
return false; return false;
} }
if(this.formData.email == '' || this.formData.email == undefined){
console.log("e");
return false
}
return true
} }
submitForm() { return true;
if(this.preSave())
console.log(this.formData);
} }
deleteInput(inputFieldId: string) {
const inputField = document.getElementById(inputFieldId) as HTMLInputElement;
if (inputField) { submit() {
inputField.value = ''; if(!this.preSave())
return
// console.log('this.tenderData.covers========',this.tenderData.covers);
// console.log('this.UploadedFile========',this.UploadedFile);
Swal.fire({
title: 'Are you sure?',
text: "You won't be able to edit this!",
icon: 'warning',
showCancelButton: true,
confirmButtonColor: '#3085d6',
cancelButtonColor: '#d33',
confirmButtonText: 'Yes, save it!'
}).then((result) => {
if (result.isConfirmed) {
this._masterService.saveAllMasterData(apiUrl.tenderDoc, this.UploadedFile).then(res => {
console.log('res===upload====', res);
Swal.fire(
'Success',
'Documents submitted successfully',
'success'
)
this.router.navigate(['dashboard']);
},err=>{
Swal.fire({
icon: 'error',
title: 'Oops...',
text: 'Something went wrong!',
})
})
} }
})
} }
ngOnInit(): void {
this.loading = false deleteInput(i) {
// const inputField = document.getElementById(inputFieldId) as HTMLInputElement;
// if (inputField) {
// inputField.value = '';
// }
this._masterService.deleteMasterData(apiUrl.fileDelete + '/' + this.tenderId + '/' + this.userId, this.tenderData.covers[i].file).then(res => {
console.log('delete===', res);
this.tenderData.covers[i].file = '';
this.fileSelected[i] = false;
this.UploadedFile[i].docName = null
this.UploadedFile[i].description = null;
this.UploadedFile[i].docType = null;
this.UploadedFile[i].documentSize = null;
this.UploadedFile[i].documentCategory = null;
this.UploadedFile[i].tenderId = null;
this.UploadedFile[i].userId = null;
})
} }
} }

@ -61,16 +61,11 @@
<tbody> <tbody>
<tr> <tr>
<th>Organisation Name</th> <th>Organisation Name</th>
<<<<<<< HEAD
<td class="col-md-6">{{tenderData?.orgChain}}</td> <td class="col-md-6">{{tenderData?.orgChain}}</td>
=======
<td class="col-md-6" >{{tenderData.orgChain}}</td>
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
</tr> </tr>
<tr> <tr>
<th>Tender Reference Number</th> <th>Tender Reference Number</th>
<td>{{tenderData.tenderRefNo}}</td> <td>{{tenderData.tenderRefNo}}</td>
<<<<<<< HEAD
</tr> </tr>
<tr> <tr>
<th>Tender ID</th> <th>Tender ID</th>
@ -78,45 +73,19 @@
</tr> </tr>
<tr> <tr>
<th>Tender Type</th> <th>Tender Type</th>
<td>{{tenderData.tenderTypeD.tenderType}}</td> <td>{{tenderData.tenderTypeD?.tenderType}}</td>
</tr> </tr>
<tr> <tr>
<th>Tender Category</th> <th>Tender Category</th>
<td>{{tenderData.tenderCategoryD.tenderCategory}}</td> <td>{{tenderData.tenderCategoryD?.tenderCategory}}</td>
=======
</tr>
<tr>
<th>Tender ID</th>
<td>{{tenderData.tenderId}}</td>
</tr>
<tr>
<th>Tender Type</th>
<td>{{tenderData.tenderType}}</td>
</tr>
<tr>
<th>Tender Category</th>
<td>{{tenderData.tenderCategoryD.tenderCategory}}</td>
</tr> </tr>
<tr> <tr>
<th>Payment Mode</th> <th>Payment Mode</th>
<td>{{tenderData.paymentModeD.paymentMode}}</td> <td>{{tenderData.paymentModeD?.paymentMode}}</td>
</tr> </tr>
<tr> <tr>
<th>Form of Contract</th> <th>Form of Contract</th>
<td>{{tenderData.formOfContractD.formOfContract}}</td> <td>{{tenderData.formOfContractD?.formOfContract}}</td>
</tr>
<tr>
<th>No. of Covers</th>
<td>{{tenderData.noOfCovers}}</td>
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
</tr>
<tr>
<th>Payment Mode</th>
<td>{{tenderData.paymentModeD.paymentMode}}</td>
</tr>
<tr>
<th>Form of Contract</th>
<td>{{tenderData.formOfContractD.formOfContract}}</td>
</tr> </tr>
<!-- <tr> <!-- <tr>
<th>No. of Covers</th> <th>No. of Covers</th>
@ -148,13 +117,6 @@
<tr> <tr>
<th>Tender Fee Exemption Allowed</th> <th>Tender Fee Exemption Allowed</th>
<td>{{tenderData.tenderFeeExemption}}</td> <td>{{tenderData.tenderFeeExemption}}</td>
<<<<<<< HEAD
=======
</tr>
<tr>
<th>Fee Payable At</th>
<td>{{tenderData.feePayableAt}}</td>
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
</tr> </tr>
<!-- <tr> <!-- <tr>
<th>Fee Payable At</th> <th>Fee Payable At</th>
@ -180,11 +142,7 @@
</tr> </tr>
<tr> <tr>
<th>EMD Fee Type</th> <th>EMD Fee Type</th>
<<<<<<< HEAD <td>{{tenderData.emdFeeTypeD?.emdFeeType}}</td>
<td>{{tenderData.emdFeeTypeD.emdFeeType}}</td>
=======
<td>{{tenderData.emdFeeType}}</td>
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
</tr> </tr>
<tr> <tr>
<th>EMD Payable To</th> <th>EMD Payable To</th>
@ -221,30 +179,26 @@
<th>Clarification Start Date</th> <th>Clarification Start Date</th>
<td>{{tenderData.clarificationStartDate}}</td> <td>{{tenderData.clarificationStartDate}}</td>
</tr> </tr>
<tr>
<th>Bid Submission Start Date</th>
<td>{{tenderData.bidSubStartDate}}</td>
</tr>
<tr>
<th>Bid Opening Date</th>
<td>{{tenderData.bidOpenDate}}</td>
</tr>
<tr> <tr>
<th>Document Download / Sale End Date</th> <th>Document Download / Sale End Date</th>
<td>{{tenderData.saleEndDate}}</td> <td>{{tenderData.saleEndDate}}</td>
</tr> </tr>
<tr>
<th>Pincode</th>
<td>{{tenderData.pincode}}</td>
</tr>
<tr> <tr>
<th>Clarification End Date</th> <th>Clarification End Date</th>
<td>{{tenderData.clarificationEndDate}}</td> <td>{{tenderData.clarificationEndDate}}</td>
</tr> </tr>
<tr>
<th>Bid Submission Start Date</th>
<td>{{tenderData.bidSubStartDate}}</td>
</tr>
<tr> <tr>
<th>Bid Submission End Date</th> <th>Bid Submission End Date</th>
<td>{{tenderData.bidSubEndDate}}</td> <td>{{tenderData.bidSubEndDate}}</td>
</tr> </tr>
<tr>
<th>Bid Opening Date</th>
<td>{{tenderData.bidOpenDate}}</td>
</tr>
</tbody> </tbody>
</table> </table>
@ -273,101 +227,68 @@
<th>Pre Qualification</th> <th>Pre Qualification</th>
<td>{{tenderData.ndaPreQualification}}</td> <td>{{tenderData.ndaPreQualification}}</td>
</tr> </tr>
<tr>
<th>Independent External Monitor/Remarks</th>
<td>{{tenderData.remarks}}</td>
</tr>
<tr> <tr>
<th>Tender Value in ₹</th> <th>Tender Value in ₹</th>
<td>{{tenderData.tenderValue}}</td> <td>{{tenderData.tenderValue}}</td>
</tr> </tr>
<tr> <tr>
<th>Contract Type</th> <th>Product Category</th>
<td>{{tenderData.contractType}}</td> <td>{{tenderData?.productCategoryD?.productCategory}}</td>
</tr>
<tr>
<th>Location</th>
<td>{{tenderData.location}}</td>
</tr>
<<<<<<< HEAD
<tr>
<th>Pre Bid Meeting Address</th>
<td>{{tenderData.preBidMeetAdd}}</td>
</tr> </tr>
<tr> <tr>
<th>Product Category</th> <th>Sub category</th>
<td>{{tenderData.productCategoryD.productCategory}}</td> <td>{{tenderData.subCategory}}</td>
</tr> </tr>
<tr> <tr>
<th>Bid Validity(Days)</th> <th>Bid Validity(Days)</th>
<td>{{tenderData.bidValidity}}</td> <td>{{tenderData.bidValidity}}</td>
</tr> </tr>
<tr>
<th>Pre Bid Meeting Date</th>
<td>{{tenderData.preBidDate}}</td>
</tr>
<tr>
<th>Sub category</th>
<td>{{tenderData.subCategory}}</td>
</tr>
<tr> <tr>
<th>Period Of Work(Days)</th> <th>Period Of Work(Days)</th>
<td>{{tenderData.periodOfWork}}</td> <td>{{tenderData.periodOfWork}}</td>
</tr> </tr>
<tr> <tr>
<th>Pre Bid Meeting Place</th> <th>Location</th>
<td>{{tenderData.preBidMeetPlace}}</td> <td>{{tenderData.location}}</td>
</tr>
<tr>
<th>Bid Opening Place</th>
<td>{{tenderData.bidOpeningPlace}}</td>
</tr> </tr>
</tbody>
</table>
</div>
</div>
=======
<tr> <tr>
<th>Pre Bid Meeting Address</th> <th>Pincode</th>
<td>{{tenderData.preBidMeetAdd}}</td> <td>{{tenderData.pincode}}</td>
</tr> </tr>
<tr> <tr>
<th>Product Category</th> <th>Bid Opening Place</th>
<td>{{tenderData.productCategory}}</td> <td>{{tenderData.bidOpeningPlace}}</td>
</tr> </tr>
<tr> <tr>
<th>Bid Validity(Days)</th> <th>Pre Bid Meeting Place</th>
<td>{{tenderData.bidValidity}}</td> <td>{{tenderData.preBidMeetPlace}}</td>
</tr> </tr>
<tr> <tr>
<th>Pre Bid Meeting Date</th> <th>Pre Bid Meeting Address</th>
<td>{{tenderData.preBidMeetAdd}}</td> <td>{{tenderData.preBidMeetAdd}}</td>
</tr> </tr>
<tr> <tr>
<th>Sub category</th> <th>Pre Bid Meeting Date</th>
<td>{{tenderData.subCategory}}</td> <td>{{tenderData.preBidDate}}</td>
</tr>
<tr>
<th>Period Of Work(Days)</th>
<td>{{tenderData.periodOfWork}}</td>
</tr>
<tr>
<th>Pre Bid Meeting Place</th>
<td>{{tenderData.preBidMeetPlace}}</td>
</tr> </tr>
<tr>
<th>Bid Opening Place</th> <!-- <tr>
<td>{{tenderData.bidOpeningPlace}}</td>
<th>Independent External Monitor/Remarks</th>
<td>{{tenderData.remarks}}</td>
</tr> </tr>
-->
<!-- <tr>
<th>Contract Type</th>
<td>{{tenderData.contractType}}</td>
</tr> -->
</tbody> </tbody>
</table> </table>
</div> </div>
</div> </div>
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
<div class="col-md-12"> <div class="col-md-12">
<div class="table-responsive"> <div class="table-responsive">
@ -379,40 +300,23 @@
</thead> </thead>
<tbody> <tbody>
<tr> <tr>
<<<<<<< HEAD
<th colspan="12" class="text-center" style="background-color: #b8b8b8;">Drawings Document</th> <th colspan="12" class="text-center" style="background-color: #b8b8b8;">Drawings Document</th>
=======
<th colspan="12" class="text-center" style="background-color: #b8b8b8;" >NIT Document</th>
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
</tr> </tr>
<tr> <tr>
<<<<<<< HEAD <th colspan="12"><button mat-raised-button id="zipFile" class=" float-right btn-sm"
<th colspan="12">Drawings <button mat-raised-button id="zipFile" class=" float-right btn-sm" (click)="DownloadDrawings()"> <i class="bi bi-file-earmark-zip"></i> Download</button></th> (click)="DownloadDrawingsZIP()"> <i class="bi bi-file-earmark-zip"></i> Download as Zip
File</button> </th>
</tr> </tr>
<tr> <tr *ngFor="let document of drawingsDocuments">
<td colspan="12"></td> <td colspan="12">{{document.description}}</td>
</tr> </tr>
=======
<th colspan="5">Document Name</th>
<th colspan="7">Description</th>
</tr>
<tr>
<td colspan="5"></td>
<td colspan="7"></td>
</tr>
<tr>
<th colspan="12"><span id="zipFile"> <i class="bi bi-file-earmark-zip"></i> Download</span> </th>
</tr>
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
</tbody> </tbody>
<br> <br>
@ -425,46 +329,44 @@
<th colspan="4">Document Name</th> <th colspan="4">Document Name</th>
<th colspan="4">Description</th> <th colspan="4">Description</th>
</tr> </tr>
<tr> <tr *ngFor="let document of workItemDocuments">
<td colspan="4"></td> <td colspan="4">{{document.documentTypeD.documentType}}</td>
<td colspan="4"></td> <td colspan="4">{{document.docName}}</td>
<td colspan="4"></td> <td colspan="4">{{document.description}}</td>
</tr> </tr>
<tr> <tr>
<<<<<<< HEAD <th colspan="12"><button mat-raised-button id="zipFile" class=" float-right btn-sm"
<th colspan="12"><button mat-raised-button id="zipFile" class=" float-right btn-sm" (click)="downloadZip()"> <i class="bi bi-file-earmark-zip" ></i> Download as Zip File</button> </th> (click)="downloadZip()"> <i class="bi bi-file-earmark-zip"></i> Download as Zip File</button>
</th>
</tr> </tr>
</tbody> </tbody>
<tbody> <tbody>
<tr> <tr>
<th colspan="12" class="text-center" style="background-color:#b8b8b8;" >NIT Item Documents</th> <th colspan="12" class="text-center" style="background-color:#b8b8b8;">Notice</th>
</tr> </tr>
<tr> <tr>
<th colspan="4">Document Type</th> <th colspan="4">Document Type</th>
<th colspan="4">Document Name</th> <th colspan="4">Document Name</th>
<th colspan="4">Description</th> <th colspan="4">Description</th>
</tr> </tr>
<tr> <tr *ngFor="let document of nitItemDocuments">
<td colspan="4"></td> <td colspan="4">{{document.documentTypeD.documentType}}</td>
<td colspan="4"></td> <td colspan="4">{{document.docName}}</td>
<td colspan="4"></td> <td colspan="4">{{document.description}}</td>
</tr> </tr>
<tr> <tr>
<th colspan="12"><button mat-raised-button id="zipFile" class=" float-right btn-sm" (click)="downloadZip()"> <i class="bi bi-file-earmark-zip" ></i> Download as Zip File</button> </th> <th colspan="12">Drawings <button mat-raised-button id="zipFile" class=" float-right btn-sm"
======= (click)="DownloadNIT()"> <i class="bi bi-file-earmark-zip"></i> Download</button></th>
<th colspan="12"><button mat-raised-button (click)="downloadZip()"> <i class="bi bi-file-earmark-zip" ></i> Download as Zip File</button> </th>
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
</tr> </tr>
</tbody> </tbody>
</table> </table>
</div> </div>
</div> </div>
<<<<<<< HEAD
<div class="col-md-12"> <div class="col-md-12">
<div class="table-responsive"> <div class="table-responsive">
@ -481,14 +383,14 @@
<th colspan="4">Document Format</th> <th colspan="4">Document Format</th>
</tr> </tr>
<tr> <tr *ngFor="let document of tenderData.covers">
<td colspan="4"></td> <td colspan="4">{{ document.coverTypeD.coverType }}</td>
<td colspan="4"></td> <td colspan="4">{{ document.Description }}</td>
<td colspan="4"></td> <td colspan="4">{{ document.fileFormatD.fileFormat }}</td>
</tr> </tr>
<tr> <tr>
<th colspan="12"><button mat-raised-button id="zipFile" class=" float-right btn-sm" (click)="downloadZip()"> <i class="bi bi-file-earmark-zip" ></i> Download as Zip File</button> </th> <!-- <th colspan="12"><button mat-raised-button id="zipFile" class=" float-right btn-sm" (click)="downloadZip()"> <i class="bi bi-file-earmark-zip" ></i> Download as Zip File</button> </th> -->
</tr> </tr>
@ -501,13 +403,6 @@
=======
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
<div class="col-md-12"> <div class="col-md-12">
<div class="table-responsive"> <div class="table-responsive">
<table class="table table-bordered"> <table class="table table-bordered">

@ -43,9 +43,5 @@
// } // }
thead{ thead{
<<<<<<< HEAD
background-color: #5faca1; color: aliceblue; background-color: #5faca1; color: aliceblue;
=======
background-color: rgb(161, 42, 42); color: aliceblue;
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
} }

@ -1,5 +1,7 @@
import { Component, OnInit } from '@angular/core'; import { Component, OnInit } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router'; import { ActivatedRoute, Router } from '@angular/router';
import { TenderDetailDto } from 'src/app/_dto/tender-detail.dto';
import { TenderDocumentDto } from 'src/app/_dto/tender-documents.dto';
import { apiUrl } from 'src/app/_providers/_resources/api-url.properties'; import { apiUrl } from 'src/app/_providers/_resources/api-url.properties';
import { MasterService } from 'src/app/_providers/_services/master.service'; import { MasterService } from 'src/app/_providers/_services/master.service';
import { environment } from 'src/environments/environment'; import { environment } from 'src/environments/environment';
@ -13,46 +15,44 @@ export class HomeViewComponent implements OnInit {
tenderId: number; tenderId: number;
tenderData: any; tenderData: any;
<<<<<<< HEAD nitItemDocuments: any ;
workItemDocuments: any;
drawingsDocuments: any;
tenderDocuments: any;
constructor(private router: Router, constructor(private router: Router,
private route: ActivatedRoute, private route: ActivatedRoute,
private _masterService: MasterService) { private _masterService: MasterService) {
this.tenderId = +this.route.snapshot.paramMap.get('id'); this.tenderId = +this.route.snapshot.paramMap.get('id');
this.getData() this.getData()
=======
constructor(private router: Router,
private route: ActivatedRoute,
private _masterService: MasterService) {
this.tenderId = +this.route.snapshot.paramMap.get('id');
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
} }
ngOnInit(): void { ngOnInit(): void {
<<<<<<< HEAD this.tenderData = new TenderDetailDto()
console.log("this.tenderId", this.tenderId); console.log("this.tenderId", this.tenderId);
this.getData() this.getData()
} }
getData() { getData() {
this._masterService.getMasterDatabyId(apiUrl.AllTenderData, this.tenderId).then((res) => { this._masterService.getMasterDatabyId(apiUrl.AllTenderData, this.tenderId).then((res) => {
console.log("tenderData", res); console.log("tenderData", res);
this.tenderData = res this.tenderData = res
this.tenderDocuments = this.tenderData['tenderDoc']
console.log("data",this.tenderDocuments);
this.filterDataByCategory();
}) })
=======
console.log("this.tenderId",this.tenderId);
this.getData()
} }
getData(){ filterDataByCategory() {
this._masterService.getMasterDatabyId(apiUrl.AllTenderData,this.tenderId).then((res) =>{
console.log("tenderData",res);
this.tenderData = res}) this.drawingsDocuments = this.tenderDocuments.filter(doc => doc.documentCategory === 'D');
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3 this.workItemDocuments = this.tenderDocuments.filter(doc => doc.documentCategory === 'WID');
this.nitItemDocuments = this.tenderDocuments.filter(doc => doc.documentCategory === 'NIT');
} }
navigateTo(destination: any) { navigateTo(destination: any) {
this.router.navigate([destination]) this.router.navigate([destination])
@ -65,54 +65,17 @@ export class HomeViewComponent implements OnInit {
window.location.href = 'https://www.thrickodithanamscb.in/index.html#contact'; window.location.href = 'https://www.thrickodithanamscb.in/index.html#contact';
} }
<<<<<<< HEAD DownloadDrawingsZIP(){
DownloadDrawings(){
const id = this.tenderId; const id = this.tenderId;
this._masterService.getMasterDatabyId(apiUrl.drawingsDownloadDocs,id).then((res)=>{ this._masterService.getMasterDatabyId(apiUrl.drawingsDownloadDocs,id).then((res)=>{
}) })
} }
DownloadNIT(){
downloadZip() {
console.log('clicked');
const id = this.tenderId; const id = this.tenderId;
// let newWindow = window.open(`${environment.apiUrl}/${apiUrl.bankDocs}/${id}`);
// setTimeout(() => {
// newWindow.close();
// }, 10);
this._masterService.getMasterDatabyId(apiUrl.bankDocs, id).then(res => {
}, err => {
console.log('res===>', err);
if (err.status == 200) {
console.log('start >>>');
// window.open(`${environment.apiUrl}/${apiUrl.bankDocs}/${id}`);
let newWindow = window.open(`${environment.apiUrl}/${apiUrl.bankDocs}/${id}`);
setTimeout(() => {
newWindow.close();
}, 100);
}
if (err.status == 404) {
alert('No Bank Document Found for the selected Tender.');
} }
if (err.status == 500) {
alert(`${err.message}`);
}
else {
alert(`An error Occured`);
// let newWindow = window.open(`${environment.apiUrl}/${apiUrl.bankDocs}/${id}`);
// setTimeout(() => {
// newWindow.close();
// }, 100);
}
})
// window.open('http://192.168.1.112:3500/api/v1/file-upload/Bank-Documents-Arc/'+id);
=======
downloadZip() { downloadZip() {
console.log('clicked'); console.log('clicked');
@ -151,6 +114,5 @@ this._masterService.getMasterDatabyId(apiUrl.bankDocs,id).then(res=>{
}) })
// window.open('http://192.168.1.112:3500/api/v1/file-upload/Bank-Documents-Arc/'+id); // window.open('http://192.168.1.112:3500/api/v1/file-upload/Bank-Documents-Arc/'+id);
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
} }
} }

@ -5,11 +5,7 @@ export const apiUrl = {
googleSignIn: "auth/google", googleSignIn: "auth/google",
facebookSignIn: "auth/facebook", facebookSignIn: "auth/facebook",
userInfo: "auth/user-info", userInfo: "auth/user-info",
<<<<<<< HEAD
getTender: "tender", getTender: "tender",
=======
getTender: "tender-details",
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
AllTenderData: "tender", AllTenderData: "tender",
TenderType: "tender-type", TenderType: "tender-type",
TenderCategory: "tender-category", TenderCategory: "tender-category",
@ -19,14 +15,13 @@ export const apiUrl = {
emdFeeType: "emd-fee-type", emdFeeType: "emd-fee-type",
documentType: "document-type", documentType: "document-type",
drawingUploadDoc:"file-upload/drawings", drawingUploadDoc:"file-upload/drawings",
<<<<<<< HEAD
nitUploadDoc:"file-upload/notice", nitUploadDoc:"file-upload/notice",
coverslov: "covers-lov", coverslov: "covers-lov",
fileformatlov:"file-format-lov", fileformatlov:"file-format-lov",
======= userDocUpload:"file-upload/user-documents",
fileDelete:"file-upload/R-userDoc",
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3 tenderDoc:"tender-doc",
fileFormat:"file-format-lov",
docUpload: "file-upload/Bank-documents", docUpload: "file-upload/Bank-documents",
userImageUpload: "file-upload/user", userImageUpload: "file-upload/user",
@ -36,13 +31,12 @@ export const apiUrl = {
registerOtp: 'auth/otp/R', registerOtp: 'auth/otp/R',
validateRegisterOtp: 'auth/verifyOtp/R', validateRegisterOtp: 'auth/verifyOtp/R',
signup: 'auth/signup', signup: 'auth/signup',
<<<<<<< HEAD
bankDocs: 'file-upload/Bank-Documents-Arc', bankDocs: 'file-upload/Bank-Documents-Arc',
drawingsDownloadDocs: "file-upload/Drawings-Arc", drawingsDownloadDocs: "file-upload/Drawings-Arc",
adminTenderView:'tender/admin' adminTenderView:'tender/admin',
======= drawingsDelete: "file-upload/R-drawing",
bankDocs: 'file-upload/Bank-Documents-Arc' widDelete:"file-upload/R-bankDoc",
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3 noticeDelete:"file-upload/R-notice"
}; };

@ -49,6 +49,9 @@ export class MasterService {
return await this.http.put<any>(`${environment.apiUrl}/${apiUrl}/${id}`, body).toPromise(); return await this.http.put<any>(`${environment.apiUrl}/${apiUrl}/${id}`, body).toPromise();
} }
async deleteMasterDataById(apiUrl, body, id): Promise<any> {
return await this.http.delete<any>(`${environment.apiUrl}/${apiUrl}/${id}`, body).toPromise();
}
async deleteMasterData(apiUrl, id): Promise<any[]> { async deleteMasterData(apiUrl, id): Promise<any[]> {
return await this.http.delete<any>(`${environment.apiUrl}/${apiUrl}/${id}`).toPromise(); return await this.http.delete<any>(`${environment.apiUrl}/${apiUrl}/${id}`).toPromise();
} }

@ -56,11 +56,10 @@ export class UiService {
defaultTime = timeDuration defaultTime = timeDuration
if (error) if (error)
this._snackBar.open(message, defaultButton, { duration: defaultTime, panelClass: ['mat-toolbar', 'mat-warn'] }); this._snackBar.open(message, defaultButton, { duration: defaultTime, panelClass: ['mat-toolbar', 'mat-warn'] });
else
this._snackBar.open(message, defaultButton, { duration: defaultTime }); else if (error && green)
if (error && green) this._snackBar.open(message, defaultButton, { duration: defaultTime, panelClass: ['mat-toolbar', 'mat-warn'] });
this._snackBar.open(message, defaultButton, { duration: defaultTime }); else if (green && !error)
if (green)
this._snackBar.open(message, defaultButton, { duration: defaultTime, panelClass: ['custom-green-snackbar'] }); this._snackBar.open(message, defaultButton, { duration: defaultTime, panelClass: ['custom-green-snackbar'] });
else else
this._snackBar.open(message, defaultButton, { duration: defaultTime }); this._snackBar.open(message, defaultButton, { duration: defaultTime });

@ -72,6 +72,7 @@ import {TranslateHttpLoader} from '@ngx-translate/http-loader';
AppComponent, AppComponent,
TimeOutDialogComponent, TimeOutDialogComponent,
NotFoundComponent, NotFoundComponent,
], ],
imports: [ imports: [
BrowserModule, BrowserModule,

@ -4,7 +4,6 @@
<div *ngIf="this._router.url != '/auth/login' "> <div *ngIf="this._router.url != '/auth/login' ">
<<<<<<< HEAD
<button mat-icon-button aria-label="Example icon button with a person icon" [matMenuTriggerFor]="userMenu"> <button mat-icon-button aria-label="Example icon button with a person icon" [matMenuTriggerFor]="userMenu">
<!-- <mat-icon style="margin-left:-3px;color:white;margin-bottom: 2px;">person</mat-icon> --> <!-- <mat-icon style="margin-left:-3px;color:white;margin-bottom: 2px;">person</mat-icon> -->
<img src="assets/img/userU.png" alt="" class="img-fluid" style="height: 35px;transform: translateY(-5px);"> <img src="assets/img/userU.png" alt="" class="img-fluid" style="height: 35px;transform: translateY(-5px);">
@ -21,14 +20,6 @@
<span class="user-menu-title__name" style="font-weight: 600;text-align: center;">{{getUser()}} </span> <span class="user-menu-title__name" style="font-weight: 600;text-align: center;">{{getUser()}} </span>
<p class="user-menu-title__name" >{{getEmail()}} </p> <p class="user-menu-title__name" >{{getEmail()}} </p>
=======
<button mat-icon-button style="background-color: #46ac9e;" aria-label="Example icon button with a person icon" [matMenuTriggerFor]="userMenu">
<mat-icon style="margin-left:-3px;color:white;margin-bottom: 2px;">person</mat-icon>
</button>
<mat-menu #userMenu="matMenu" xPosition="before">
<div class="user-menu-title">
<!-- <h6 class="user-menu-title__name" *ngIf="user && user.email">{{user.email}} </h6> -->
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
<!-- <a class="user-menu-title__link" [href]="flatlogicEmail">Flatlogic.com</a> --> <!-- <a class="user-menu-title__link" [href]="flatlogicEmail">Flatlogic.com</a> -->
</div> </div>
<button mat-menu-item class="user-menu__item-title" hidden="true"> <button mat-menu-item class="user-menu__item-title" hidden="true">
@ -41,12 +32,8 @@
<mat-icon class="user-menu-icon">email</mat-icon> {{ 'messages' | translate }} <mat-icon class="user-menu-icon">email</mat-icon> {{ 'messages' | translate }}
</button> </button>
<div class="sign-button-wrapper"> <div class="sign-button-wrapper">
<<<<<<< HEAD
<button class="sign-button" mat-flat-button (click)="signOutEmit()" *ngIf="(!this._router.url.includes('auth')) "> <button class="sign-button" mat-flat-button (click)="signOutEmit()" *ngIf="(!this._router.url.includes('auth')) ">
{{ 'signOut' | translate }} <mat-icon style="font-size: large;transform: translateY(2px);">power_settings_new</mat-icon></button> {{ 'signOut' | translate }} <mat-icon style="font-size: large;transform: translateY(2px);">power_settings_new</mat-icon></button>
=======
<button class="sign-button" mat-flat-button (click)="signOutEmit()" *ngIf="(!this._router.url.includes('auth')) "> {{ 'signOut' | translate }} </button>
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
<button class="sign-button" mat-flat-button (click)="signOutEmit()" *ngIf="this._router.url.includes('auth')"> {{ 'signIn' | translate }} </button> <button class="sign-button" mat-flat-button (click)="signOutEmit()" *ngIf="this._router.url.includes('auth')"> {{ 'signIn' | translate }} </button>
</div> </div>
</mat-menu> </mat-menu>

@ -16,10 +16,7 @@ export class UserComponent {
signedOut : boolean signedOut : boolean
public routes: typeof routes = routes; public routes: typeof routes = routes;
public flatlogicEmail: string = "https://flatlogic.com"; public flatlogicEmail: string = "https://flatlogic.com";
<<<<<<< HEAD
adminUser: boolean = false; adminUser: boolean = false;
=======
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
public signOutEmit(): void { public signOutEmit(): void {
localStorage.removeItem('emailId') localStorage.removeItem('emailId')
@ -28,7 +25,6 @@ export class UserComponent {
this.signedOut = true this.signedOut = true
console.log('user==email======',this._router); console.log('user==email======',this._router);
<<<<<<< HEAD
} }
constructor(public _router : Router){ constructor(public _router : Router){
// console.log('user==email======',this._router); // console.log('user==email======',this._router);
@ -64,12 +60,4 @@ ngOnInit(){
else else
return '' return ''
} }
=======
}
constructor(public _router : Router){
console.log('user==email======',this._router);
}
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
} }

@ -15,7 +15,6 @@
<div class=" justify-content-end" id="navbarNav"> <div class=" justify-content-end" id="navbarNav">
<ul class="navbar-nav"> <ul class="navbar-nav">
<li class="nav-item" id="imageHead"> <li class="nav-item" id="imageHead">
<<<<<<< HEAD
<!-- <p class="nav-link" (click)="goToWebsite()">Go to Website</p> --> <!-- <p class="nav-link" (click)="goToWebsite()">Go to Website</p> -->
<img src="assets/img/web.png" alt="" class="img-fluid" (click)="goToWebsite()" style="height: 30px;transform: translateX(-48px);cursor: pointer;opacity: 90%;"> <img src="assets/img/web.png" alt="" class="img-fluid" (click)="goToWebsite()" style="height: 30px;transform: translateX(-48px);cursor: pointer;opacity: 90%;">
@ -29,15 +28,6 @@
<!-- <p class="nav-link" (click)="goToSignIn()">Sign in</p> --> <!-- <p class="nav-link" (click)="goToSignIn()">Sign in</p> -->
<img src="assets/img/out-user.png" alt="" (click)="goToSignIn()" class="img-fluid" style="height: 33px;cursor: pointer;opacity: 90%;"> <img src="assets/img/out-user.png" alt="" (click)="goToSignIn()" class="img-fluid" style="height: 33px;cursor: pointer;opacity: 90%;">
=======
<p class="nav-link" (click)="goToWebsite()">Go to Website</p>
</li>
<li class="nav-item" id="imageHead">
<p class="nav-link" (click)="goToHome()">Home</p>
</li>
<li class="nav-item" id="imageHead">
<p class="nav-link" (click)="goToContactUs()">Contact Us</p>
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
</li> </li>
<li class="nav-item" *ngIf="!this.router.url.includes('auth') "> <li class="nav-item" *ngIf="!this.router.url.includes('auth') ">
<app-user [user]="user$ | async" (signOut)="signOut()"></app-user> <app-user [user]="user$ | async" (signOut)="signOut()"></app-user>

@ -120,18 +120,19 @@
"clarificationEndDateCantBeBlank":"Clarification End Date Can't Be Blank", "clarificationEndDateCantBeBlank":"Clarification End Date Can't Be Blank",
"bidSubmissionEndDateCantBeBlank":"Bid Submission End Date Can't Be Blank", "bidSubmissionEndDateCantBeBlank":"Bid Submission End Date Can't Be Blank",
"documentNameCantBeBlank":"Document Name Can't Be Blank", "documentNameCantBeBlank":"Document Name Can't Be Blank",
"UploaddocumentCantBeBlank": "Please Upload Documents",
"documentSizeCantBeBlank":"Document Size Can't Be Blank", "documentSizeCantBeBlank":"Document Size Can't Be Blank",
"addDocs" : " Documents Can't Be Blank",
"requiresDocs":"Required Documents Can't Be Blank",
"descriptionCantBeBlank":"Description Can't Be Blank", "descriptionCantBeBlank":"Description Can't Be Blank",
"documentTypeCantBeBlank":"Document Type Can't Be Blank", "documentTypeCantBeBlank":"Document Type Can't Be Blank",
"documentFormatCantBeBlank":"Document Format Can't Be Blank",
"nameCantBeBlank":"Name Can't Be Blank", "nameCantBeBlank":"Name Can't Be Blank",
<<<<<<< HEAD
"addressCantBeBlank":"Address Can't Be Blank", "addressCantBeBlank":"Address Can't Be Blank",
"TenderCreatedSuccessfully":"Tender Created Successfully", "TenderCreatedSuccessfully":"Tender Created Successfully",
"pleaseEnableDrawingDocuments": "Please Enable Drawing Documents", "pleaseEnableDrawingDocuments": "Please Enable Drawing Documents",
"pleaseEnableNoticeDocuments" : "Please Enable Notice Documents" "pleaseEnableNoticeDocuments" : "Please Enable Notice Documents",
======= "pleaseAddfiles":"Please Add The Remaining Files"
"addressCantBeBlank":"Address Can't Be Blank"
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
} }

@ -338,15 +338,11 @@
"submit":"Submit", "submit":"Submit",
"confPass":"Confirm Password", "confPass":"Confirm Password",
"addTender":"Add Tender", "addTender":"Add Tender",
<<<<<<< HEAD
"forgotPass":"Forgot Password?", "forgotPass":"Forgot Password?",
"assetImagePath":"Asset Image Path", "assetImagePath":"Asset File Path",
"title":"Title", "title":"Title",
"publishedDate":"Published Date", "publishedDate":"Published Date",
"upload":"Upload", "upload":"Upload",
"slno":"Sl no", "slno":"Sl no",
"bidOpenDate":"Bid Open Date" "bidOpenDate":"Bid Open Date"
=======
"forgotPass":"Forgot Password?"
>>>>>>> 7a8b1ea4654d5c265e964fc9b34b53f325c9cfb3
} }

@ -13,8 +13,6 @@
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet"> <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" rel="stylesheet"> <link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" rel="stylesheet">
<link href="https://unpkg.com/ngx-bootstrap/datepicker/bs-datepicker.css" rel="stylesheet" > <link href="https://unpkg.com/ngx-bootstrap/datepicker/bs-datepicker.css" rel="stylesheet" >
<link rel="preconnect" href="https://fonts.gstatic.com">
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500&display=swap" rel="stylesheet">
</head> </head>
<body class="mat-typography"> <body class="mat-typography">
<app-root></app-root> <app-root></app-root>

@ -136,7 +136,7 @@
"ora" "5.3.0" "ora" "5.3.0"
"rxjs" "6.6.3" "rxjs" "6.6.3"
"@angular/animations@^11.2.13": "@angular/animations@^11.0.0 || ^12.0.0", "@angular/animations@^11.2.13":
"integrity" "sha512-+TcJbMmKZI4kbSLp7TCJzOYkm90qe54OLWcNH6bi2NC9S0QsXaPo73yRP8sERjg/DjRj+wBf3LY63FvHZmqcTA==" "integrity" "sha512-+TcJbMmKZI4kbSLp7TCJzOYkm90qe54OLWcNH6bi2NC9S0QsXaPo73yRP8sERjg/DjRj+wBf3LY63FvHZmqcTA=="
"resolved" "https://registry.npmjs.org/@angular/animations/-/animations-11.2.13.tgz" "resolved" "https://registry.npmjs.org/@angular/animations/-/animations-11.2.13.tgz"
"version" "11.2.13" "version" "11.2.13"
@ -144,9 +144,9 @@
"tslib" "^2.0.0" "tslib" "^2.0.0"
"@angular/cdk@^11.2.12": "@angular/cdk@^11.2.12":
"integrity" "sha512-FkE4iCwoLbQxLDUOjV1I7M/6hmpyb7erAjEdWgch7nGRNxF1hqX5Bqf1lvLFKPNCbx5NRI5K7YVAdIUQUR8vug==" "integrity" "sha512-LImCQQ7n5OnTGXBAx1BaHgBBbdXiEtsNcHk5RvVURya9sswRcXRoa48EG3RyuT8mtqWsUdOX9+v4nCINLG4hZA=="
"resolved" "https://registry.npmjs.org/@angular/cdk/-/cdk-11.2.13.tgz" "resolved" "https://registry.npmjs.org/@angular/cdk/-/cdk-11.2.12.tgz"
"version" "11.2.13" "version" "11.2.12"
dependencies: dependencies:
"tslib" "^2.0.0" "tslib" "^2.0.0"
optionalDependencies: optionalDependencies:
@ -180,7 +180,7 @@
"universal-analytics" "0.4.23" "universal-analytics" "0.4.23"
"uuid" "8.3.2" "uuid" "8.3.2"
"@angular/common@~11.2.13": "@angular/common@^11.0.0 || ^12.0.0", "@angular/common@>=10.0.0", "@angular/common@>=6.0.0", "@angular/common@>=9.0.0", "@angular/common@~11.2.13":
"integrity" "sha512-96iZ4wlZado78yG6eY/ZmY6+H2X2hJi2XsK7iXKzc5h3oeILEkt+ulfBNkCNjMm8xPYBmLrSBueG96/T4/Bi5w==" "integrity" "sha512-96iZ4wlZado78yG6eY/ZmY6+H2X2hJi2XsK7iXKzc5h3oeILEkt+ulfBNkCNjMm8xPYBmLrSBueG96/T4/Bi5w=="
"resolved" "https://registry.npmjs.org/@angular/common/-/common-11.2.13.tgz" "resolved" "https://registry.npmjs.org/@angular/common/-/common-11.2.13.tgz"
"version" "11.2.13" "version" "11.2.13"
@ -220,7 +220,7 @@
"resolved" "https://registry.npmjs.org/@angular/compiler/-/compiler-9.0.0.tgz" "resolved" "https://registry.npmjs.org/@angular/compiler/-/compiler-9.0.0.tgz"
"version" "9.0.0" "version" "9.0.0"
"@angular/core@~11.2.13": "@angular/core@^11.0.0 || ^12.0.0", "@angular/core@^12.0.0 || ^13.0.0-0", "@angular/core@>=10.0.0", "@angular/core@>=6.0.0", "@angular/core@>=9.0.0", "@angular/core@~11.2.13":
"integrity" "sha512-xMKskq/Sbf8dkX/vx4WCwXMpDTJJ77rGlP8fVTB8az8QeOa14i6AdpmSXaJ8sl68R3v8Y1Pa9yBQytbKuxShqQ==" "integrity" "sha512-xMKskq/Sbf8dkX/vx4WCwXMpDTJJ77rGlP8fVTB8az8QeOa14i6AdpmSXaJ8sl68R3v8Y1Pa9yBQytbKuxShqQ=="
"resolved" "https://registry.npmjs.org/@angular/core/-/core-11.2.13.tgz" "resolved" "https://registry.npmjs.org/@angular/core/-/core-11.2.13.tgz"
"version" "11.2.13" "version" "11.2.13"
@ -232,7 +232,7 @@
"resolved" "https://registry.npmjs.org/@angular/core/-/core-9.0.0.tgz" "resolved" "https://registry.npmjs.org/@angular/core/-/core-9.0.0.tgz"
"version" "9.0.0" "version" "9.0.0"
"@angular/forms@~11.2.13": "@angular/forms@^11.0.0 || ^12.0.0", "@angular/forms@~11.2.13":
"integrity" "sha512-Q5vNHycS+II2xYOE/HJB4NoYg/Ngg6hPF+0KXdCA7L4kfrwx5Fsi4oZ6gRRnSpzSGedISpSU4VE5wPiq7zJ3+A==" "integrity" "sha512-Q5vNHycS+II2xYOE/HJB4NoYg/Ngg6hPF+0KXdCA7L4kfrwx5Fsi4oZ6gRRnSpzSGedISpSU4VE5wPiq7zJ3+A=="
"resolved" "https://registry.npmjs.org/@angular/forms/-/forms-11.2.13.tgz" "resolved" "https://registry.npmjs.org/@angular/forms/-/forms-11.2.13.tgz"
"version" "11.2.13" "version" "11.2.13"
@ -251,10 +251,10 @@
dependencies: dependencies:
"tslib" "^2.2.0" "tslib" "^2.2.0"
"@angular/material@^11.2.12": "@angular/material@^11.2.12", "@angular/material@12.2.13":
"integrity" "sha512-FqFdGSkOtqsmeLyTSousodDGUy2NqbtxCIKv2rwbsIRwHNKB0KpR/UQhA2gMRuGa5hxhMJ0DW0Tf9neMRuLCTg==" "integrity" "sha512-n3HDKoM552jLcmxtpTYzMUzV6V9vUBKyNs7SNdUfjuK00VJlTWMu03g/QWOj2Y9KftOuDUa8+N2XodwAr+jtCw=="
"resolved" "https://registry.npmjs.org/@angular/material/-/material-11.2.13.tgz" "resolved" "https://registry.npmjs.org/@angular/material/-/material-11.2.12.tgz"
"version" "11.2.13" "version" "11.2.12"
dependencies: dependencies:
"tslib" "^2.0.0" "tslib" "^2.0.0"
@ -1201,7 +1201,7 @@
"merge-source-map" "^1.1.0" "merge-source-map" "^1.1.0"
"schema-utils" "^2.7.0" "schema-utils" "^2.7.0"
"@ng-idle/core@^11.1.0": "@ng-idle/core@^11.0.3", "@ng-idle/core@^11.1.0":
"integrity" "sha512-/hf3LDFz3UCTe2H6r1bq6Kn6mo5B5mxaU5XVqcDfE4Vdlx9evTqBXyl0VpWbuzZbohVCfWq31mEjbxg9lbY4bw==" "integrity" "sha512-/hf3LDFz3UCTe2H6r1bq6Kn6mo5B5mxaU5XVqcDfE4Vdlx9evTqBXyl0VpWbuzZbohVCfWq31mEjbxg9lbY4bw=="
"resolved" "https://registry.npmjs.org/@ng-idle/core/-/core-11.1.0.tgz" "resolved" "https://registry.npmjs.org/@ng-idle/core/-/core-11.1.0.tgz"
"version" "11.1.0" "version" "11.1.0"
@ -1224,7 +1224,7 @@
"enhanced-resolve" "5.7.0" "enhanced-resolve" "5.7.0"
"webpack-sources" "2.2.0" "webpack-sources" "2.2.0"
"@ngx-translate/core@^13.0.0": "@ngx-translate/core@^13.0.0", "@ngx-translate/core@>=13.0.0":
"integrity" "sha512-+tzEp8wlqEnw0Gc7jtVRAJ6RteUjXw6JJR4O65KlnxOmJrCGPI0xjV/lKRnQeU0w4i96PQs/jtpL921Wrb7PWg==" "integrity" "sha512-+tzEp8wlqEnw0Gc7jtVRAJ6RteUjXw6JJR4O65KlnxOmJrCGPI0xjV/lKRnQeU0w4i96PQs/jtpL921Wrb7PWg=="
"resolved" "https://registry.npmjs.org/@ngx-translate/core/-/core-13.0.0.tgz" "resolved" "https://registry.npmjs.org/@ngx-translate/core/-/core-13.0.0.tgz"
"version" "13.0.0" "version" "13.0.0"
@ -5626,7 +5626,7 @@
"resolved" "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz" "resolved" "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz"
"version" "1.0.4" "version" "1.0.4"
"moment@^2.29.1": "moment@^2.18.1", "moment@^2.29.1":
"integrity" "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==" "integrity" "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w=="
"resolved" "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz" "resolved" "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz"
"version" "2.29.4" "version" "2.29.4"
@ -5750,14 +5750,6 @@
dependencies: dependencies:
"tslib" "^2.0.0" "tslib" "^2.0.0"
"ngx-mat-timepicker@^15.1.3":
"integrity" "sha512-DqAzv9aLHPT316k+st9GV1QfUTNKE2SfEyCmOD2y86HqiTC5APKezVzQByH6kT3Jq46n7dzV6rtCoMsQ+LcBjQ=="
"resolved" "https://registry.npmjs.org/ngx-mat-timepicker/-/ngx-mat-timepicker-15.1.3.tgz"
"version" "15.1.3"
dependencies:
"ts-luxon" "^3.0.1"
"tslib" "^2.4.1"
"ngx-toastr@13.2.1": "ngx-toastr@13.2.1":
"integrity" "sha512-UAzp7/xWK9IXA2LsOmhpaaIGCqscvJokoQpBNpAMrjEkDeSlFf8PWQAuQY795KW0mJb3qF9UG/s23nsXfMYKmg==" "integrity" "sha512-UAzp7/xWK9IXA2LsOmhpaaIGCqscvJokoQpBNpAMrjEkDeSlFf8PWQAuQY795KW0mJb3qF9UG/s23nsXfMYKmg=="
"resolved" "https://registry.npmjs.org/ngx-toastr/-/ngx-toastr-13.2.1.tgz" "resolved" "https://registry.npmjs.org/ngx-toastr/-/ngx-toastr-13.2.1.tgz"
@ -7434,6 +7426,13 @@
dependencies: dependencies:
"tslib" "^1.9.0" "tslib" "^1.9.0"
"rxjs@>=6.5.3", "rxjs@7.0.0":
"integrity" "sha512-I1V/ArAtGJg4kmCfms8fULm0SwYgEsAf2d5WPCBGzTYm2qTjO3Tx4EDFaGjbOox8CeEsC69jQK22mnmfyA26sw=="
"resolved" "https://registry.npmjs.org/rxjs/-/rxjs-7.0.0.tgz"
"version" "7.0.0"
dependencies:
"tslib" "~2.1.0"
"rxjs@6.6.3": "rxjs@6.6.3":
"integrity" "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==" "integrity" "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ=="
"resolved" "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz" "resolved" "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz"
@ -7441,13 +7440,6 @@
dependencies: dependencies:
"tslib" "^1.9.0" "tslib" "^1.9.0"
"rxjs@7.0.0":
"integrity" "sha512-I1V/ArAtGJg4kmCfms8fULm0SwYgEsAf2d5WPCBGzTYm2qTjO3Tx4EDFaGjbOox8CeEsC69jQK22mnmfyA26sw=="
"resolved" "https://registry.npmjs.org/rxjs/-/rxjs-7.0.0.tgz"
"version" "7.0.0"
dependencies:
"tslib" "~2.1.0"
"safe-buffer@^5.0.1", "safe-buffer@^5.1.0", "safe-buffer@^5.1.1", "safe-buffer@^5.1.2", "safe-buffer@>=5.1.0", "safe-buffer@~5.1.0", "safe-buffer@~5.1.1", "safe-buffer@5.1.2": "safe-buffer@^5.0.1", "safe-buffer@^5.1.0", "safe-buffer@^5.1.1", "safe-buffer@^5.1.2", "safe-buffer@>=5.1.0", "safe-buffer@~5.1.0", "safe-buffer@~5.1.1", "safe-buffer@5.1.2":
"integrity" "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" "integrity" "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
"resolved" "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" "resolved" "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz"
@ -8518,11 +8510,6 @@
"resolved" "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz" "resolved" "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz"
"version" "1.2.2" "version" "1.2.2"
"ts-luxon@^3.0.1":
"integrity" "sha512-hO8viyesNP1zibJe/TFpRbHtbAWpCKYL7jN7248lvoubOCb31V+CzJHjhyI/HQCE1CgqxwKmqiFBl9T/gcvLJg=="
"resolved" "https://registry.npmjs.org/ts-luxon/-/ts-luxon-3.5.2.tgz"
"version" "3.5.2"
"ts-node@~8.3.0": "ts-node@~8.3.0":
"integrity" "sha512-dyNS/RqyVTDcmNM4NIBAeDMpsAdaQ+ojdf0GOLqE6nwJOgzEkdRNzJywhDfwnuvB10oa6NLVG1rUJQCpRN7qoQ==" "integrity" "sha512-dyNS/RqyVTDcmNM4NIBAeDMpsAdaQ+ojdf0GOLqE6nwJOgzEkdRNzJywhDfwnuvB10oa6NLVG1rUJQCpRN7qoQ=="
"resolved" "https://registry.npmjs.org/ts-node/-/ts-node-8.3.0.tgz" "resolved" "https://registry.npmjs.org/ts-node/-/ts-node-8.3.0.tgz"
@ -8554,10 +8541,10 @@
"resolved" "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" "resolved" "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz"
"version" "1.14.1" "version" "1.14.1"
"tslib@^2.0.0", "tslib@^2.2.0", "tslib@^2.4.1": "tslib@^2.0.0", "tslib@^2.2.0":
"integrity" "sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA==" "integrity" "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
"resolved" "https://registry.npmjs.org/tslib/-/tslib-2.6.0.tgz" "resolved" "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz"
"version" "2.6.0" "version" "2.4.0"
"tslib@~2.1.0": "tslib@~2.1.0":
"integrity" "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" "integrity" "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A=="

Loading…
Cancel
Save