From dfd48981478c590435ddb8f1c9b8f46d0fe15519 Mon Sep 17 00:00:00 2001 From: HagerSayed22 Date: Mon, 16 Oct 2023 10:26:59 +0300 Subject: [PATCH 1/3] remove router from order and handel null error in installment page --- .../src/app/core/layout/side-bar/side-bar.component.html | 2 +- .../edit-installment/receipt/receipt.component.html | 2 +- .../src/app/pages/installments/installment.component.html | 3 ++- .../src/app/pages/installments/installment.component.ts | 4 ++-- 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/retail-managment-system/rms-ui/src/app/core/layout/side-bar/side-bar.component.html b/retail-managment-system/rms-ui/src/app/core/layout/side-bar/side-bar.component.html index 963af996..ce7f3b5b 100644 --- a/retail-managment-system/rms-ui/src/app/core/layout/side-bar/side-bar.component.html +++ b/retail-managment-system/rms-ui/src/app/core/layout/side-bar/side-bar.component.html @@ -7,7 +7,7 @@ }}

- {{ + {{ "sidebar.order" | translate }}

diff --git a/retail-managment-system/rms-ui/src/app/pages/installments/edit-installment/receipt/receipt.component.html b/retail-managment-system/rms-ui/src/app/pages/installments/edit-installment/receipt/receipt.component.html index 54f82fc5..a5dd3c42 100644 --- a/retail-managment-system/rms-ui/src/app/pages/installments/edit-installment/receipt/receipt.component.html +++ b/retail-managment-system/rms-ui/src/app/pages/installments/edit-installment/receipt/receipt.component.html @@ -8,7 +8,7 @@

{{ "installments.customer-name" | translate }} : - {{install.order.customer.fullName}} + {{install.order?.customer?.fullName}} {{ "installments.ins-amount" | translate }} : diff --git a/retail-managment-system/rms-ui/src/app/pages/installments/installment.component.html b/retail-managment-system/rms-ui/src/app/pages/installments/installment.component.html index b0c8d66b..a67e2cab 100644 --- a/retail-managment-system/rms-ui/src/app/pages/installments/installment.component.html +++ b/retail-managment-system/rms-ui/src/app/pages/installments/installment.component.html @@ -43,7 +43,8 @@

{{ "installments.customer-name" | translate }} - {{ element.order.customer.fullName }} + {{ element.order?.customer?.fullName }} + diff --git a/retail-managment-system/rms-ui/src/app/pages/installments/installment.component.ts b/retail-managment-system/rms-ui/src/app/pages/installments/installment.component.ts index 86e92429..b6c71fa5 100644 --- a/retail-managment-system/rms-ui/src/app/pages/installments/installment.component.ts +++ b/retail-managment-system/rms-ui/src/app/pages/installments/installment.component.ts @@ -56,9 +56,9 @@ export class InstallmentComponent implements OnInit { const matchFilter:any[] = []; const filters = JSON.parse(filtersJson); filters.forEach(filter => { - data[filter.id] = data.order.customer.fullName; + data[filter.id] = data.order?.customer?.fullName; const val = data[filter.id] === null ? '' : data[filter.id]; - matchFilter.push(val.toLowerCase().includes(filter.value.toLowerCase())); + matchFilter.push(val?.toLowerCase().includes(filter.value?.toLowerCase())); }); return matchFilter.every(Boolean); }; From 756362162e42c9fbd3deb71ecfe243abf0eeb4ce Mon Sep 17 00:00:00 2001 From: HagerSayed22 Date: Tue, 17 Oct 2023 16:22:45 +0300 Subject: [PATCH 2/3] add test-product page --- .../layout/side-bar/side-bar.component.html | 9 + .../rms-ui/src/app/pages/pages.module.ts | 3 + .../test-product/test-product.component.html | 183 ++++++++++++++++++ .../test-product/test-product.component.ts | 156 +++++++++++++++ 4 files changed, 351 insertions(+) create mode 100644 retail-managment-system/rms-ui/src/app/pages/test-product/test-product.component.html create mode 100644 retail-managment-system/rms-ui/src/app/pages/test-product/test-product.component.ts diff --git a/retail-managment-system/rms-ui/src/app/core/layout/side-bar/side-bar.component.html b/retail-managment-system/rms-ui/src/app/core/layout/side-bar/side-bar.component.html index ce7f3b5b..17f4d612 100644 --- a/retail-managment-system/rms-ui/src/app/core/layout/side-bar/side-bar.component.html +++ b/retail-managment-system/rms-ui/src/app/core/layout/side-bar/side-bar.component.html @@ -73,6 +73,15 @@ "sidebar.products" | translate }}

+

+ {{ "sidebar.test-product" | translate }} +

{{ "sidebar.profits" | translate diff --git a/retail-managment-system/rms-ui/src/app/pages/pages.module.ts b/retail-managment-system/rms-ui/src/app/pages/pages.module.ts index 673c9367..0436b5a4 100644 --- a/retail-managment-system/rms-ui/src/app/pages/pages.module.ts +++ b/retail-managment-system/rms-ui/src/app/pages/pages.module.ts @@ -23,12 +23,14 @@ import { UserComponent } from './user/user.component'; import { RoleAssignComponent } from './user/role-assign/role-assign/role-assign.component'; import { RoleComponent } from './role/role.component'; import { StoreComponent } from './store/store.component'; +import { TestProductComponent } from './test-product/test-product.component'; const routes: Routes = [ { path: '', redirectTo: 'home' }, { path: 'home', component: HomePageComponent }, { path: 'product', component: ProductComponent }, + {path:'testProduct',component:TestProductComponent}, {path: 'category',component: CategoryPageComponent}, { path: 'customers', component: CustomersComponent ,canActivate: [AuthGuard] }, { path: 'profits', component: ProfitComponent ,canActivate: [AuthGuard] }, @@ -62,6 +64,7 @@ const routes: Routes = [ RoleAssignComponent, RoleComponent, StoreComponent, + TestProductComponent, ], imports: [RouterModule.forChild(routes), SharedModule, TranslateModule,AuthModule,NgxPrintModule], diff --git a/retail-managment-system/rms-ui/src/app/pages/test-product/test-product.component.html b/retail-managment-system/rms-ui/src/app/pages/test-product/test-product.component.html new file mode 100644 index 00000000..7d3d2aeb --- /dev/null +++ b/retail-managment-system/rms-ui/src/app/pages/test-product/test-product.component.html @@ -0,0 +1,183 @@ +

+

+ diff --git a/retail-managment-system/rms-ui/src/app/pages/test-product/test-product.component.ts b/retail-managment-system/rms-ui/src/app/pages/test-product/test-product.component.ts new file mode 100644 index 00000000..34be32b8 --- /dev/null +++ b/retail-managment-system/rms-ui/src/app/pages/test-product/test-product.component.ts @@ -0,0 +1,156 @@ +import { Component, OnInit } from '@angular/core'; +import { FormBuilder, FormGroup, Validators } from '@angular/forms'; +import { MatDialog } from '@angular/material/dialog'; +import { PageEvent } from '@angular/material/paginator'; +import { MatSnackBar } from '@angular/material/snack-bar'; +import { TranslateService } from '@ngx-translate/core'; +import { CategoryRepository } from 'src/app/domain/category/category.repository'; +import { Category } from 'src/app/domain/category/models/category'; +import { Product } from 'src/app/domain/product/models/product'; +import { ProductRepository } from 'src/app/domain/product/product.repository'; +import { ConfirmDialogComponent } from 'src/app/shared/components/confirm-dialog/confirm-dialog.component'; + +@Component({ + selector: 'app-test-product', + templateUrl: './test-product.component.html', + styles: ['.btn {background-color: #002d40;color: white;width: 80px;height: 40px;}' + ,'.table-button{color: #002d40;background-color: transparent;}'] +}) +export class TestProductComponent implements OnInit { + allProducts:Product[]=[]; + allCategories:Category[]=[]; + pageSize:number=10; + length:number=0; + page:number=0; + currentProduct!:Product; + displayedColumns=["id","name","category","brand","price","quantity","actions"]; + productFormConntrols!:FormGroup; + addButtonVisible:boolean=false; + constructor(private productRepository:ProductRepository, + private categoryRepository:CategoryRepository, + private formBuilder:FormBuilder, private snackBar: MatSnackBar, + private dialog: MatDialog, + private translate: TranslateService) { } + + ngOnInit(): void { + this.getAllProducts(); + this.getAllCategories(); + this.productForm(); + } + get name(){ + return this.productFormConntrols.get('name'); + } + get category(){ + return this.productFormConntrols.get('productCategoryDto'); + } + get cashPrice(){ + return this.productFormConntrols.get('cashPrice'); + } + productForm(){ + this.productFormConntrols=this.formBuilder.group({ + id: [''], + name: ['', [Validators.required]], + brand: [''], + cashPrice: ['', [Validators.required]], + quantity: [''], + productCategoryDto: ['', [Validators.required]], + modelNo: [''], + }) + } + getAllProducts(){ + return this.productRepository.getList({page:this.page,size:this.pageSize}).subscribe((data)=>{ + this.allProducts=data.data; + this.length=data.pagination.itemCount; + }) + } + getAllCategories(){ + return this.categoryRepository.getList().subscribe((data)=>{ + this.allCategories=data.data; + }) + } + handlePageEvent(event:PageEvent){ + this.pageSize=event.pageSize; + this.page=event.pageIndex; + this.getAllProducts(); + } + filterProductByCategory(id:number){ + this.productRepository.filterProductsById(id).subscribe((data)=>{ + this.allProducts=data.data; + }) + } + submitProduct(){ + if(this.productFormConntrols.controls["id"].value){ + this.editProduct() + } + else{ + this.addProduct(); + } + } + fillForm(product:Product){ + this.addButtonVisible=true; + this.productFormConntrols.patchValue(product); + this.currentProduct=product; + } + addProduct(){ + this.addButtonVisible=false; + this.productRepository.add(this.productFormConntrols.value).subscribe(()=>{ + this.getAllProducts(); + this.snackBar.open( + this.translate.instant('product.added-successfuly'), + this.translate.instant('product.close'), + { + duration: 2000, + } + ); + }) + } + editProduct(){ + this.addButtonVisible=true; + this.productRepository.update(this.productFormConntrols.value).subscribe(()=>{ + this.getAllProducts(); + this.snackBar.open( + this.translate.instant('product.updated-successfuly'), + this.translate.instant('product.close'), + { + duration: 2000, + } + ); + }) + } + resetForm(){ + if(this.productFormConntrols.controls["id"].value){ + this.fillForm(this.currentProduct); + } + else{ + this.productFormConntrols.reset(); + } + } + clearForm(){ + this.addButtonVisible=false; + this.productFormConntrols.reset(); + } + confirmDialog(product:Product){ + let dialoResult=this.dialog.open(ConfirmDialogComponent); + dialoResult.afterClosed().subscribe((result) => { + if (result === 'yes') { + this.deleteProduct(product); + } + }); + } + deleteProduct(product:Product){ + this.productRepository.delete(product.id).subscribe(()=>{ + this.getAllProducts(); + this.snackBar.open( + this.translate.instant('product.deleted-successfuly'), + this.translate.instant('product.close'), + { + duration: 2000, + } + ); + }) + } + compareFn(category1: Category, category2: Category) { + if (!category1 || !category2) return false; + return category1.id === category2.id; + } +} From 8caf5d5d549e51fd3dfc9236b3092d11a67c730f Mon Sep 17 00:00:00 2001 From: HagerSayed22 Date: Wed, 18 Oct 2023 11:04:55 +0300 Subject: [PATCH 3/3] modified in translate pipe --- .../core/layout/side-bar/side-bar.component.html | 2 +- .../pages/test-product/test-product.component.html | 13 +++++++++---- .../rms-ui/src/assets/i18n/ar.json | 2 +- .../rms-ui/src/assets/i18n/en.json | 1 + 4 files changed, 12 insertions(+), 6 deletions(-) diff --git a/retail-managment-system/rms-ui/src/app/core/layout/side-bar/side-bar.component.html b/retail-managment-system/rms-ui/src/app/core/layout/side-bar/side-bar.component.html index 17f4d612..589833e8 100644 --- a/retail-managment-system/rms-ui/src/app/core/layout/side-bar/side-bar.component.html +++ b/retail-managment-system/rms-ui/src/app/core/layout/side-bar/side-bar.component.html @@ -79,7 +79,7 @@ routerLink="testProduct" routerLinkActive="active" class="fs-5" - >{{ "sidebar.test-product" | translate }}{{ "sidebar.test-products" | translate }}

diff --git a/retail-managment-system/rms-ui/src/app/pages/test-product/test-product.component.html b/retail-managment-system/rms-ui/src/app/pages/test-product/test-product.component.html index 7d3d2aeb..a607483d 100644 --- a/retail-managment-system/rms-ui/src/app/pages/test-product/test-product.component.html +++ b/retail-managment-system/rms-ui/src/app/pages/test-product/test-product.component.html @@ -56,6 +56,11 @@ + + + + + formControlName="brand" type="text" matInput - placeholder="{{ 'enter-your-name' | translate }}" + placeholder="{{ 'product.brand' | translate }}" /> @@ -122,7 +127,7 @@

formControlName="cashPrice" type="number" matInput - placeholder="{{ 'enter-your-name' | translate }}" + placeholder="{{ 'product.Price' | translate }}" /> @@ -138,7 +143,7 @@

formControlName="quantity" type="number" matInput - placeholder="{{ 'enter-your-name' | translate }}" + placeholder="{{ 'product.quantity' | translate }}" /> @@ -166,7 +171,7 @@

formControlName="modelNo" type="text" matInput - placeholder="{{ 'enter-your-name' | translate }}" + placeholder="{{ 'product.model-no' | translate }}" /> diff --git a/retail-managment-system/rms-ui/src/assets/i18n/ar.json b/retail-managment-system/rms-ui/src/assets/i18n/ar.json index aa157445..7e3c8fc5 100644 --- a/retail-managment-system/rms-ui/src/assets/i18n/ar.json +++ b/retail-managment-system/rms-ui/src/assets/i18n/ar.json @@ -30,7 +30,7 @@ "suppliers":"الموردين", "users":"المستخدمين", "roles":"المهام" -, +, "test-products":"المنتجات", "store":"المخزن" }, "home-page": { diff --git a/retail-managment-system/rms-ui/src/assets/i18n/en.json b/retail-managment-system/rms-ui/src/assets/i18n/en.json index bf47cb22..6ff04ba5 100644 --- a/retail-managment-system/rms-ui/src/assets/i18n/en.json +++ b/retail-managment-system/rms-ui/src/assets/i18n/en.json @@ -26,6 +26,7 @@ "customers": "Customers", "categories": "Categories", "products": "Products", + "test-products":"Test-Products", "profits": "Profits", "employees": "Employees", "suppliers":"Suppliers",