build_app

This commit is contained in:
risadmin_prod 2025-06-12 16:41:44 +00:00
parent 4120a5b1e5
commit 11a787e7d0
102 changed files with 11395 additions and 74 deletions

View File

@ -69,6 +69,30 @@ public class BuilderService {
executeDump(true);
// ADD OTHER SERVICE
addCustomMenu( "Generate_quote","Generate_quote", "Transcations");
addCustomMenu( "Notes_and_terms","Notes_and_terms", "Transcations");
addCustomMenu( "Order_summary","Order_summary", "Transcations");
addCustomMenu( "Manufacturer","Manufacturer", "Transcations");
addCustomMenu( "Productss","Productss", "Transcations");
addCustomMenu( "Type","Type", "Transcations");
addCustomMenu( "Product_selection","Product_selection", "Transcations");
addCustomMenu( "Customer_information","Customer_information", "Transcations");
System.out.println("dashboard and menu inserted...");

View File

@ -0,0 +1,146 @@
package com.realnet.order_estimation.Controllers;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import com.fasterxml.jackson.core.JsonProcessingException;
import org.springframework.web.bind.annotation.CrossOrigin;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.realnet.config.EmailService;
import com.realnet.users.entity1.AppUser;
import com.realnet.users.service1.AppUserServiceImpl;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.data.domain.*;
import com.realnet.fnd.response.EntityResponse;
import org.springframework.http.*;
import org.springframework.beans.factory.annotation.*;
import com.realnet.order_estimation.Entity.Customer_information;
import com.realnet.order_estimation.Services.Customer_informationService ;
import com.realnet.order_estimation.Entity.Customer_information;
@RequestMapping(value = "/Customer_information")
@CrossOrigin("*")
@RestController
public class Customer_informationController {
@Autowired
private Customer_informationService Service;
@Value("${projectPath}")
private String projectPath;
@PostMapping("/Customer_information")
public Customer_information Savedata(@RequestBody Customer_information data) {
Customer_information save = Service.Savedata(data) ;
System.out.println("data saved..." + save);
return save;
}
@PutMapping("/Customer_information/{id}")
public Customer_information update(@RequestBody Customer_information data,@PathVariable Integer id ) {
Customer_information update = Service.update(data,id);
System.out.println("data update..." + update);
return update;
}
// get all with pagination
@GetMapping("/Customer_information/getall/page")
public Page<Customer_information> getall(@RequestParam(value = "page", required = false) Integer page,
@RequestParam(value = "size", required = false) Integer size) {
Pageable paging = PageRequest.of(page, size);
Page<Customer_information> get = Service.getAllWithPagination(paging);
return get;
}
@GetMapping("/Customer_information")
public List<Customer_information> getdetails() {
List<Customer_information> get = Service.getdetails();
return get;
}
// get all without authentication
@GetMapping("/token/Customer_information")
public List<Customer_information> getallwioutsec() {
List<Customer_information> get = Service.getdetails();
return get;
}
@GetMapping("/Customer_information/{id}")
public Customer_information getdetailsbyId(@PathVariable Integer id ) {
Customer_information get = Service.getdetailsbyId(id);
return get;
}
@DeleteMapping("/Customer_information/{id}")
public ResponseEntity<?> delete_by_id(@PathVariable Integer id ) {
Service.delete_by_id(id);
return new ResponseEntity<>(new EntityResponse("Deleted"), HttpStatus.OK);
}
@PostMapping("/Customer_information/Customer_information_insert")
public Customer_information insertCustomer_information(@RequestBody Customer_information data) {
Customer_information insertaction = Service.insertCustomer_information(data);
return insertaction;
}
}

View File

@ -0,0 +1,21 @@
package com.realnet.order_estimation.Controllers;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.http.*;
import com.realnet.order_estimation.Entity.Customer_information;
import com.realnet.order_estimation.Services.Customer_informationInsertService1;
@RequestMapping(value = "/Customer_information")
@RestController
public class Customer_informationInsertController1{
@Autowired
private Customer_informationInsertService1 Service;
@PostMapping("/Customer_information_insert")
public ResponseEntity<?> insert(@RequestBody Customer_information customer_information) {
Customer_information insertaction = Service.insertaction(customer_information);
return new ResponseEntity<>(insertaction, HttpStatus.OK);
}
}

View File

@ -0,0 +1,107 @@
package com.realnet.order_estimation.Controllers;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import com.fasterxml.jackson.core.JsonProcessingException;
import org.springframework.web.bind.annotation.CrossOrigin;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.realnet.config.EmailService;
import com.realnet.users.entity1.AppUser;
import com.realnet.users.service1.AppUserServiceImpl;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.data.domain.*;
import com.realnet.fnd.response.EntityResponse;
import org.springframework.http.*;
import org.springframework.beans.factory.annotation.*;
import com.realnet.order_estimation.Entity.Generate_quote;
import com.realnet.order_estimation.Services.Generate_quoteService ;
@RequestMapping(value = "/Generate_quote")
@CrossOrigin("*")
@RestController
public class Generate_quoteController {
@Autowired
private Generate_quoteService Service;
@Value("${projectPath}")
private String projectPath;
@PostMapping("/Generate_quote")
public Generate_quote Savedata(@RequestBody Generate_quote data) {
Generate_quote save = Service.Savedata(data) ;
System.out.println("data saved..." + save);
return save;
}
@PutMapping("/Generate_quote/{id}")
public Generate_quote update(@RequestBody Generate_quote data,@PathVariable Integer id ) {
Generate_quote update = Service.update(data,id);
System.out.println("data update..." + update);
return update;
}
// get all with pagination
@GetMapping("/Generate_quote/getall/page")
public Page<Generate_quote> getall(@RequestParam(value = "page", required = false) Integer page,
@RequestParam(value = "size", required = false) Integer size) {
Pageable paging = PageRequest.of(page, size);
Page<Generate_quote> get = Service.getAllWithPagination(paging);
return get;
}
@GetMapping("/Generate_quote")
public List<Generate_quote> getdetails() {
List<Generate_quote> get = Service.getdetails();
return get;
}
// get all without authentication
@GetMapping("/token/Generate_quote")
public List<Generate_quote> getallwioutsec() {
List<Generate_quote> get = Service.getdetails();
return get;
}
@GetMapping("/Generate_quote/{id}")
public Generate_quote getdetailsbyId(@PathVariable Integer id ) {
Generate_quote get = Service.getdetailsbyId(id);
return get;
}
@DeleteMapping("/Generate_quote/{id}")
public ResponseEntity<?> delete_by_id(@PathVariable Integer id ) {
Service.delete_by_id(id);
return new ResponseEntity<>(new EntityResponse("Deleted"), HttpStatus.OK);
}
}

View File

@ -0,0 +1,83 @@
package com.realnet.order_estimation.Controllers;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import com.fasterxml.jackson.core.JsonProcessingException;
import org.springframework.web.bind.annotation.CrossOrigin;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.realnet.config.EmailService;
import com.realnet.users.entity1.AppUser;
import com.realnet.users.service1.AppUserServiceImpl;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.data.domain.*;
import com.realnet.fnd.response.EntityResponse;
import org.springframework.http.*;
import org.springframework.beans.factory.annotation.*;
import com.realnet.order_estimation.Entity.Manufacturer;
import com.realnet.order_estimation.Services.ManufacturerService ;
@RequestMapping(value = "/Manufacturer")
@CrossOrigin("*")
@RestController
public class ManufacturerController {
@Autowired
private ManufacturerService Service;
@Value("${projectPath}")
private String projectPath;
@PostMapping("/Manufacturer")
public Manufacturer Savedata(@RequestBody Manufacturer data) {
Manufacturer save = Service.Savedata(data) ;
System.out.println("data saved..." + save);
return save;
}
@PutMapping("/Manufacturer/{id}")
public Manufacturer update(@RequestBody Manufacturer data,@PathVariable Integer id ) {
Manufacturer update = Service.update(data,id);
System.out.println("data update..." + update);
return update;
}
// get all with pagination
@GetMapping("/Manufacturer/getall/page")
public Page<Manufacturer> getall(@RequestParam(value = "page", required = false) Integer page,
@RequestParam(value = "size", required = false) Integer size) {
Pageable paging = PageRequest.of(page, size);
Page<Manufacturer> get = Service.getAllWithPagination(paging);
return get;
}
@GetMapping("/Manufacturer")
public List<Manufacturer> getdetails() {
List<Manufacturer> get = Service.getdetails();
return get;
}
// get all without authentication
@GetMapping("/token/Manufacturer")
public List<Manufacturer> getallwioutsec() {
List<Manufacturer> get = Service.getdetails();
return get;
}
@GetMapping("/Manufacturer/{id}")
public Manufacturer getdetailsbyId(@PathVariable Integer id ) {
Manufacturer get = Service.getdetailsbyId(id);
return get;
}
@DeleteMapping("/Manufacturer/{id}")
public ResponseEntity<?> delete_by_id(@PathVariable Integer id ) {
Service.delete_by_id(id);
return new ResponseEntity<>(new EntityResponse("Deleted"), HttpStatus.OK);
}
}

View File

@ -0,0 +1,24 @@
package com.realnet.order_estimation.Controllers;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import com.realnet.order_estimation.Entity.Manufacturer_ListFilter1;
import com.realnet.order_estimation.Services.Manufacturer_ListFilter1Service ;
@RequestMapping(value = "/Manufacturer_ListFilter1")
@RestController
public class Manufacturer_ListFilter1Controller {
@Autowired
private Manufacturer_ListFilter1Service Service;
@GetMapping("/Manufacturer_ListFilter1")
public List<Manufacturer_ListFilter1> getlist() {
List<Manufacturer_ListFilter1> get = Service.getlistbuilder();
return get;
}
@GetMapping("/Manufacturer_ListFilter11")
public List<Manufacturer_ListFilter1> getlistwithparam( ) {
List<Manufacturer_ListFilter1> get = Service.getlistbuilderparam( );
return get;
}
}

View File

@ -0,0 +1,91 @@
package com.realnet.order_estimation.Controllers;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import com.fasterxml.jackson.core.JsonProcessingException;
import org.springframework.web.bind.annotation.CrossOrigin;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.realnet.config.EmailService;
import com.realnet.users.entity1.AppUser;
import com.realnet.users.service1.AppUserServiceImpl;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.data.domain.*;
import com.realnet.fnd.response.EntityResponse;
import org.springframework.http.*;
import org.springframework.beans.factory.annotation.*;
import com.realnet.order_estimation.Entity.Notes_and_terms;
import com.realnet.order_estimation.Services.Notes_and_termsService ;
@RequestMapping(value = "/Notes_and_terms")
@CrossOrigin("*")
@RestController
public class Notes_and_termsController {
@Autowired
private Notes_and_termsService Service;
@Value("${projectPath}")
private String projectPath;
@PostMapping("/Notes_and_terms")
public Notes_and_terms Savedata(@RequestBody Notes_and_terms data) {
Notes_and_terms save = Service.Savedata(data) ;
System.out.println("data saved..." + save);
return save;
}
@PutMapping("/Notes_and_terms/{id}")
public Notes_and_terms update(@RequestBody Notes_and_terms data,@PathVariable Integer id ) {
Notes_and_terms update = Service.update(data,id);
System.out.println("data update..." + update);
return update;
}
// get all with pagination
@GetMapping("/Notes_and_terms/getall/page")
public Page<Notes_and_terms> getall(@RequestParam(value = "page", required = false) Integer page,
@RequestParam(value = "size", required = false) Integer size) {
Pageable paging = PageRequest.of(page, size);
Page<Notes_and_terms> get = Service.getAllWithPagination(paging);
return get;
}
@GetMapping("/Notes_and_terms")
public List<Notes_and_terms> getdetails() {
List<Notes_and_terms> get = Service.getdetails();
return get;
}
// get all without authentication
@GetMapping("/token/Notes_and_terms")
public List<Notes_and_terms> getallwioutsec() {
List<Notes_and_terms> get = Service.getdetails();
return get;
}
@GetMapping("/Notes_and_terms/{id}")
public Notes_and_terms getdetailsbyId(@PathVariable Integer id ) {
Notes_and_terms get = Service.getdetailsbyId(id);
return get;
}
@DeleteMapping("/Notes_and_terms/{id}")
public ResponseEntity<?> delete_by_id(@PathVariable Integer id ) {
Service.delete_by_id(id);
return new ResponseEntity<>(new EntityResponse("Deleted"), HttpStatus.OK);
}
}

View File

@ -0,0 +1,139 @@
package com.realnet.order_estimation.Controllers;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import com.fasterxml.jackson.core.JsonProcessingException;
import org.springframework.web.bind.annotation.CrossOrigin;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.realnet.config.EmailService;
import com.realnet.users.entity1.AppUser;
import com.realnet.users.service1.AppUserServiceImpl;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.data.domain.*;
import com.realnet.fnd.response.EntityResponse;
import org.springframework.http.*;
import org.springframework.beans.factory.annotation.*;
import com.realnet.order_estimation.Entity.Order_summary;
import com.realnet.order_estimation.Services.Order_summaryService ;
@RequestMapping(value = "/Order_summary")
@CrossOrigin("*")
@RestController
public class Order_summaryController {
@Autowired
private Order_summaryService Service;
@Value("${projectPath}")
private String projectPath;
@PostMapping("/Order_summary")
public Order_summary Savedata(@RequestBody Order_summary data) {
Order_summary save = Service.Savedata(data) ;
System.out.println("data saved..." + save);
return save;
}
@PutMapping("/Order_summary/{id}")
public Order_summary update(@RequestBody Order_summary data,@PathVariable Integer id ) {
Order_summary update = Service.update(data,id);
System.out.println("data update..." + update);
return update;
}
// get all with pagination
@GetMapping("/Order_summary/getall/page")
public Page<Order_summary> getall(@RequestParam(value = "page", required = false) Integer page,
@RequestParam(value = "size", required = false) Integer size) {
Pageable paging = PageRequest.of(page, size);
Page<Order_summary> get = Service.getAllWithPagination(paging);
return get;
}
@GetMapping("/Order_summary")
public List<Order_summary> getdetails() {
List<Order_summary> get = Service.getdetails();
return get;
}
// get all without authentication
@GetMapping("/token/Order_summary")
public List<Order_summary> getallwioutsec() {
List<Order_summary> get = Service.getdetails();
return get;
}
@GetMapping("/Order_summary/{id}")
public Order_summary getdetailsbyId(@PathVariable Integer id ) {
Order_summary get = Service.getdetailsbyId(id);
return get;
}
@DeleteMapping("/Order_summary/{id}")
public ResponseEntity<?> delete_by_id(@PathVariable Integer id ) {
Service.delete_by_id(id);
return new ResponseEntity<>(new EntityResponse("Deleted"), HttpStatus.OK);
}
}

View File

@ -0,0 +1,138 @@
package com.realnet.order_estimation.Controllers;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import com.fasterxml.jackson.core.JsonProcessingException;
import org.springframework.web.bind.annotation.CrossOrigin;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.realnet.config.EmailService;
import com.realnet.users.entity1.AppUser;
import com.realnet.users.service1.AppUserServiceImpl;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.data.domain.*;
import com.realnet.fnd.response.EntityResponse;
import org.springframework.http.*;
import org.springframework.beans.factory.annotation.*;
import com.realnet.order_estimation.Entity.Product_selection;
import com.realnet.order_estimation.Services.Product_selectionService ;
import com.realnet.order_estimation.Entity.Product_selection;
@RequestMapping(value = "/Product_selection")
@CrossOrigin("*")
@RestController
public class Product_selectionController {
@Autowired
private Product_selectionService Service;
@Value("${projectPath}")
private String projectPath;
@PostMapping("/Product_selection")
public Product_selection Savedata(@RequestBody Product_selection data) {
Product_selection save = Service.Savedata(data) ;
System.out.println("data saved..." + save);
return save;
}
@PutMapping("/Product_selection/{id}")
public Product_selection update(@RequestBody Product_selection data,@PathVariable Integer id ) {
Product_selection update = Service.update(data,id);
System.out.println("data update..." + update);
return update;
}
// get all with pagination
@GetMapping("/Product_selection/getall/page")
public Page<Product_selection> getall(@RequestParam(value = "page", required = false) Integer page,
@RequestParam(value = "size", required = false) Integer size) {
Pageable paging = PageRequest.of(page, size);
Page<Product_selection> get = Service.getAllWithPagination(paging);
return get;
}
@GetMapping("/Product_selection")
public List<Product_selection> getdetails() {
List<Product_selection> get = Service.getdetails();
return get;
}
// get all without authentication
@GetMapping("/token/Product_selection")
public List<Product_selection> getallwioutsec() {
List<Product_selection> get = Service.getdetails();
return get;
}
@GetMapping("/Product_selection/{id}")
public Product_selection getdetailsbyId(@PathVariable Integer id ) {
Product_selection get = Service.getdetailsbyId(id);
return get;
}
@DeleteMapping("/Product_selection/{id}")
public ResponseEntity<?> delete_by_id(@PathVariable Integer id ) {
Service.delete_by_id(id);
return new ResponseEntity<>(new EntityResponse("Deleted"), HttpStatus.OK);
}
@PostMapping("/Product_selection/Product_selection_insert")
public Product_selection insertProduct_selection(@RequestBody Product_selection data) {
Product_selection insertaction = Service.insertProduct_selection(data);
return insertaction;
}
}

View File

@ -0,0 +1,21 @@
package com.realnet.order_estimation.Controllers;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.http.*;
import com.realnet.order_estimation.Entity.Product_selection;
import com.realnet.order_estimation.Services.Product_selectionInsertService1;
@RequestMapping(value = "/Product_selection")
@RestController
public class Product_selectionInsertController1{
@Autowired
private Product_selectionInsertService1 Service;
@PostMapping("/Product_selection_insert")
public ResponseEntity<?> insert(@RequestBody Product_selection product_selection) {
Product_selection insertaction = Service.insertaction(product_selection);
return new ResponseEntity<>(insertaction, HttpStatus.OK);
}
}

View File

@ -0,0 +1,83 @@
package com.realnet.order_estimation.Controllers;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import com.fasterxml.jackson.core.JsonProcessingException;
import org.springframework.web.bind.annotation.CrossOrigin;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.realnet.config.EmailService;
import com.realnet.users.entity1.AppUser;
import com.realnet.users.service1.AppUserServiceImpl;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.data.domain.*;
import com.realnet.fnd.response.EntityResponse;
import org.springframework.http.*;
import org.springframework.beans.factory.annotation.*;
import com.realnet.order_estimation.Entity.Productss;
import com.realnet.order_estimation.Services.ProductssService ;
@RequestMapping(value = "/Productss")
@CrossOrigin("*")
@RestController
public class ProductssController {
@Autowired
private ProductssService Service;
@Value("${projectPath}")
private String projectPath;
@PostMapping("/Productss")
public Productss Savedata(@RequestBody Productss data) {
Productss save = Service.Savedata(data) ;
System.out.println("data saved..." + save);
return save;
}
@PutMapping("/Productss/{id}")
public Productss update(@RequestBody Productss data,@PathVariable Integer id ) {
Productss update = Service.update(data,id);
System.out.println("data update..." + update);
return update;
}
// get all with pagination
@GetMapping("/Productss/getall/page")
public Page<Productss> getall(@RequestParam(value = "page", required = false) Integer page,
@RequestParam(value = "size", required = false) Integer size) {
Pageable paging = PageRequest.of(page, size);
Page<Productss> get = Service.getAllWithPagination(paging);
return get;
}
@GetMapping("/Productss")
public List<Productss> getdetails() {
List<Productss> get = Service.getdetails();
return get;
}
// get all without authentication
@GetMapping("/token/Productss")
public List<Productss> getallwioutsec() {
List<Productss> get = Service.getdetails();
return get;
}
@GetMapping("/Productss/{id}")
public Productss getdetailsbyId(@PathVariable Integer id ) {
Productss get = Service.getdetailsbyId(id);
return get;
}
@DeleteMapping("/Productss/{id}")
public ResponseEntity<?> delete_by_id(@PathVariable Integer id ) {
Service.delete_by_id(id);
return new ResponseEntity<>(new EntityResponse("Deleted"), HttpStatus.OK);
}
}

View File

@ -0,0 +1,24 @@
package com.realnet.order_estimation.Controllers;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import com.realnet.order_estimation.Entity.Productss_ListFilter1;
import com.realnet.order_estimation.Services.Productss_ListFilter1Service ;
@RequestMapping(value = "/Productss_ListFilter1")
@RestController
public class Productss_ListFilter1Controller {
@Autowired
private Productss_ListFilter1Service Service;
@GetMapping("/Productss_ListFilter1")
public List<Productss_ListFilter1> getlist() {
List<Productss_ListFilter1> get = Service.getlistbuilder();
return get;
}
@GetMapping("/Productss_ListFilter11")
public List<Productss_ListFilter1> getlistwithparam( ) {
List<Productss_ListFilter1> get = Service.getlistbuilderparam( );
return get;
}
}

View File

@ -0,0 +1,83 @@
package com.realnet.order_estimation.Controllers;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import com.fasterxml.jackson.core.JsonProcessingException;
import org.springframework.web.bind.annotation.CrossOrigin;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.realnet.config.EmailService;
import com.realnet.users.entity1.AppUser;
import com.realnet.users.service1.AppUserServiceImpl;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.data.domain.*;
import com.realnet.fnd.response.EntityResponse;
import org.springframework.http.*;
import org.springframework.beans.factory.annotation.*;
import com.realnet.order_estimation.Entity.Type;
import com.realnet.order_estimation.Services.TypeService ;
@RequestMapping(value = "/Type")
@CrossOrigin("*")
@RestController
public class TypeController {
@Autowired
private TypeService Service;
@Value("${projectPath}")
private String projectPath;
@PostMapping("/Type")
public Type Savedata(@RequestBody Type data) {
Type save = Service.Savedata(data) ;
System.out.println("data saved..." + save);
return save;
}
@PutMapping("/Type/{id}")
public Type update(@RequestBody Type data,@PathVariable Integer id ) {
Type update = Service.update(data,id);
System.out.println("data update..." + update);
return update;
}
// get all with pagination
@GetMapping("/Type/getall/page")
public Page<Type> getall(@RequestParam(value = "page", required = false) Integer page,
@RequestParam(value = "size", required = false) Integer size) {
Pageable paging = PageRequest.of(page, size);
Page<Type> get = Service.getAllWithPagination(paging);
return get;
}
@GetMapping("/Type")
public List<Type> getdetails() {
List<Type> get = Service.getdetails();
return get;
}
// get all without authentication
@GetMapping("/token/Type")
public List<Type> getallwioutsec() {
List<Type> get = Service.getdetails();
return get;
}
@GetMapping("/Type/{id}")
public Type getdetailsbyId(@PathVariable Integer id ) {
Type get = Service.getdetailsbyId(id);
return get;
}
@DeleteMapping("/Type/{id}")
public ResponseEntity<?> delete_by_id(@PathVariable Integer id ) {
Service.delete_by_id(id);
return new ResponseEntity<>(new EntityResponse("Deleted"), HttpStatus.OK);
}
}

View File

@ -0,0 +1,24 @@
package com.realnet.order_estimation.Controllers;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import com.realnet.order_estimation.Entity.Type_ListFilter1;
import com.realnet.order_estimation.Services.Type_ListFilter1Service ;
@RequestMapping(value = "/Type_ListFilter1")
@RestController
public class Type_ListFilter1Controller {
@Autowired
private Type_ListFilter1Service Service;
@GetMapping("/Type_ListFilter1")
public List<Type_ListFilter1> getlist() {
List<Type_ListFilter1> get = Service.getlistbuilder();
return get;
}
@GetMapping("/Type_ListFilter11")
public List<Type_ListFilter1> getlistwithparam( ) {
List<Type_ListFilter1> get = Service.getlistbuilderparam( );
return get;
}
}

View File

@ -0,0 +1,146 @@
package com.realnet.order_estimation.Controllers;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import com.fasterxml.jackson.core.JsonProcessingException;
import org.springframework.web.bind.annotation.CrossOrigin;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.realnet.config.EmailService;
import com.realnet.users.entity1.AppUser;
import com.realnet.users.service1.AppUserServiceImpl;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.data.domain.*;
import com.realnet.fnd.response.EntityResponse;
import org.springframework.http.*;
import org.springframework.beans.factory.annotation.*;
import com.realnet.order_estimation.Entity.Customer_information;
import com.realnet.order_estimation.Services.Customer_informationService ;
import com.realnet.order_estimation.Entity.Customer_information;
@RequestMapping(value = "/token/Customer_information")
@CrossOrigin("*")
@RestController
public class tokenFree_Customer_informationController {
@Autowired
private Customer_informationService Service;
@Value("${projectPath}")
private String projectPath;
@PostMapping("/Customer_information")
public Customer_information Savedata(@RequestBody Customer_information data) {
Customer_information save = Service.Savedata(data) ;
System.out.println("data saved..." + save);
return save;
}
@PutMapping("/Customer_information/{id}")
public Customer_information update(@RequestBody Customer_information data,@PathVariable Integer id ) {
Customer_information update = Service.update(data,id);
System.out.println("data update..." + update);
return update;
}
// get all with pagination
@GetMapping("/Customer_information/getall/page")
public Page<Customer_information> getall(@RequestParam(value = "page", required = false) Integer page,
@RequestParam(value = "size", required = false) Integer size) {
Pageable paging = PageRequest.of(page, size);
Page<Customer_information> get = Service.getAllWithPagination(paging);
return get;
}
@GetMapping("/Customer_information")
public List<Customer_information> getdetails() {
List<Customer_information> get = Service.getdetails();
return get;
}
// get all without authentication
@GetMapping("/token/Customer_information")
public List<Customer_information> getallwioutsec() {
List<Customer_information> get = Service.getdetails();
return get;
}
@GetMapping("/Customer_information/{id}")
public Customer_information getdetailsbyId(@PathVariable Integer id ) {
Customer_information get = Service.getdetailsbyId(id);
return get;
}
@DeleteMapping("/Customer_information/{id}")
public ResponseEntity<?> delete_by_id(@PathVariable Integer id ) {
Service.delete_by_id(id);
return new ResponseEntity<>(new EntityResponse("Deleted"), HttpStatus.OK);
}
@PostMapping("/Customer_information/Customer_information_insert")
public Customer_information insertCustomer_information(@RequestBody Customer_information data) {
Customer_information insertaction = Service.insertCustomer_information(data);
return insertaction;
}
}

View File

@ -0,0 +1,107 @@
package com.realnet.order_estimation.Controllers;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import com.fasterxml.jackson.core.JsonProcessingException;
import org.springframework.web.bind.annotation.CrossOrigin;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.realnet.config.EmailService;
import com.realnet.users.entity1.AppUser;
import com.realnet.users.service1.AppUserServiceImpl;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.data.domain.*;
import com.realnet.fnd.response.EntityResponse;
import org.springframework.http.*;
import org.springframework.beans.factory.annotation.*;
import com.realnet.order_estimation.Entity.Generate_quote;
import com.realnet.order_estimation.Services.Generate_quoteService ;
@RequestMapping(value = "/token/Generate_quote")
@CrossOrigin("*")
@RestController
public class tokenFree_Generate_quoteController {
@Autowired
private Generate_quoteService Service;
@Value("${projectPath}")
private String projectPath;
@PostMapping("/Generate_quote")
public Generate_quote Savedata(@RequestBody Generate_quote data) {
Generate_quote save = Service.Savedata(data) ;
System.out.println("data saved..." + save);
return save;
}
@PutMapping("/Generate_quote/{id}")
public Generate_quote update(@RequestBody Generate_quote data,@PathVariable Integer id ) {
Generate_quote update = Service.update(data,id);
System.out.println("data update..." + update);
return update;
}
// get all with pagination
@GetMapping("/Generate_quote/getall/page")
public Page<Generate_quote> getall(@RequestParam(value = "page", required = false) Integer page,
@RequestParam(value = "size", required = false) Integer size) {
Pageable paging = PageRequest.of(page, size);
Page<Generate_quote> get = Service.getAllWithPagination(paging);
return get;
}
@GetMapping("/Generate_quote")
public List<Generate_quote> getdetails() {
List<Generate_quote> get = Service.getdetails();
return get;
}
// get all without authentication
@GetMapping("/token/Generate_quote")
public List<Generate_quote> getallwioutsec() {
List<Generate_quote> get = Service.getdetails();
return get;
}
@GetMapping("/Generate_quote/{id}")
public Generate_quote getdetailsbyId(@PathVariable Integer id ) {
Generate_quote get = Service.getdetailsbyId(id);
return get;
}
@DeleteMapping("/Generate_quote/{id}")
public ResponseEntity<?> delete_by_id(@PathVariable Integer id ) {
Service.delete_by_id(id);
return new ResponseEntity<>(new EntityResponse("Deleted"), HttpStatus.OK);
}
}

View File

@ -0,0 +1,83 @@
package com.realnet.order_estimation.Controllers;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import com.fasterxml.jackson.core.JsonProcessingException;
import org.springframework.web.bind.annotation.CrossOrigin;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.realnet.config.EmailService;
import com.realnet.users.entity1.AppUser;
import com.realnet.users.service1.AppUserServiceImpl;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.data.domain.*;
import com.realnet.fnd.response.EntityResponse;
import org.springframework.http.*;
import org.springframework.beans.factory.annotation.*;
import com.realnet.order_estimation.Entity.Manufacturer;
import com.realnet.order_estimation.Services.ManufacturerService ;
@RequestMapping(value = "/token/Manufacturer")
@CrossOrigin("*")
@RestController
public class tokenFree_ManufacturerController {
@Autowired
private ManufacturerService Service;
@Value("${projectPath}")
private String projectPath;
@PostMapping("/Manufacturer")
public Manufacturer Savedata(@RequestBody Manufacturer data) {
Manufacturer save = Service.Savedata(data) ;
System.out.println("data saved..." + save);
return save;
}
@PutMapping("/Manufacturer/{id}")
public Manufacturer update(@RequestBody Manufacturer data,@PathVariable Integer id ) {
Manufacturer update = Service.update(data,id);
System.out.println("data update..." + update);
return update;
}
// get all with pagination
@GetMapping("/Manufacturer/getall/page")
public Page<Manufacturer> getall(@RequestParam(value = "page", required = false) Integer page,
@RequestParam(value = "size", required = false) Integer size) {
Pageable paging = PageRequest.of(page, size);
Page<Manufacturer> get = Service.getAllWithPagination(paging);
return get;
}
@GetMapping("/Manufacturer")
public List<Manufacturer> getdetails() {
List<Manufacturer> get = Service.getdetails();
return get;
}
// get all without authentication
@GetMapping("/token/Manufacturer")
public List<Manufacturer> getallwioutsec() {
List<Manufacturer> get = Service.getdetails();
return get;
}
@GetMapping("/Manufacturer/{id}")
public Manufacturer getdetailsbyId(@PathVariable Integer id ) {
Manufacturer get = Service.getdetailsbyId(id);
return get;
}
@DeleteMapping("/Manufacturer/{id}")
public ResponseEntity<?> delete_by_id(@PathVariable Integer id ) {
Service.delete_by_id(id);
return new ResponseEntity<>(new EntityResponse("Deleted"), HttpStatus.OK);
}
}

View File

@ -0,0 +1,24 @@
package com.realnet.order_estimation.Controllers;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import com.realnet.order_estimation.Entity.Manufacturer_ListFilter1;
import com.realnet.order_estimation.Services.Manufacturer_ListFilter1Service ;
@RequestMapping(value = "/token/Manufacturer_ListFilter1")
@RestController
public class tokenFree_Manufacturer_ListFilter1Controller {
@Autowired
private Manufacturer_ListFilter1Service Service;
@GetMapping("/Manufacturer_ListFilter1")
public List<Manufacturer_ListFilter1> getlist() {
List<Manufacturer_ListFilter1> get = Service.getlistbuilder();
return get;
}
@GetMapping("/Manufacturer_ListFilter11")
public List<Manufacturer_ListFilter1> getlistwithparam( ) {
List<Manufacturer_ListFilter1> get = Service.getlistbuilderparam( );
return get;
}
}

View File

@ -0,0 +1,91 @@
package com.realnet.order_estimation.Controllers;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import com.fasterxml.jackson.core.JsonProcessingException;
import org.springframework.web.bind.annotation.CrossOrigin;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.realnet.config.EmailService;
import com.realnet.users.entity1.AppUser;
import com.realnet.users.service1.AppUserServiceImpl;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.data.domain.*;
import com.realnet.fnd.response.EntityResponse;
import org.springframework.http.*;
import org.springframework.beans.factory.annotation.*;
import com.realnet.order_estimation.Entity.Notes_and_terms;
import com.realnet.order_estimation.Services.Notes_and_termsService ;
@RequestMapping(value = "/token/Notes_and_terms")
@CrossOrigin("*")
@RestController
public class tokenFree_Notes_and_termsController {
@Autowired
private Notes_and_termsService Service;
@Value("${projectPath}")
private String projectPath;
@PostMapping("/Notes_and_terms")
public Notes_and_terms Savedata(@RequestBody Notes_and_terms data) {
Notes_and_terms save = Service.Savedata(data) ;
System.out.println("data saved..." + save);
return save;
}
@PutMapping("/Notes_and_terms/{id}")
public Notes_and_terms update(@RequestBody Notes_and_terms data,@PathVariable Integer id ) {
Notes_and_terms update = Service.update(data,id);
System.out.println("data update..." + update);
return update;
}
// get all with pagination
@GetMapping("/Notes_and_terms/getall/page")
public Page<Notes_and_terms> getall(@RequestParam(value = "page", required = false) Integer page,
@RequestParam(value = "size", required = false) Integer size) {
Pageable paging = PageRequest.of(page, size);
Page<Notes_and_terms> get = Service.getAllWithPagination(paging);
return get;
}
@GetMapping("/Notes_and_terms")
public List<Notes_and_terms> getdetails() {
List<Notes_and_terms> get = Service.getdetails();
return get;
}
// get all without authentication
@GetMapping("/token/Notes_and_terms")
public List<Notes_and_terms> getallwioutsec() {
List<Notes_and_terms> get = Service.getdetails();
return get;
}
@GetMapping("/Notes_and_terms/{id}")
public Notes_and_terms getdetailsbyId(@PathVariable Integer id ) {
Notes_and_terms get = Service.getdetailsbyId(id);
return get;
}
@DeleteMapping("/Notes_and_terms/{id}")
public ResponseEntity<?> delete_by_id(@PathVariable Integer id ) {
Service.delete_by_id(id);
return new ResponseEntity<>(new EntityResponse("Deleted"), HttpStatus.OK);
}
}

View File

@ -0,0 +1,139 @@
package com.realnet.order_estimation.Controllers;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import com.fasterxml.jackson.core.JsonProcessingException;
import org.springframework.web.bind.annotation.CrossOrigin;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.realnet.config.EmailService;
import com.realnet.users.entity1.AppUser;
import com.realnet.users.service1.AppUserServiceImpl;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.data.domain.*;
import com.realnet.fnd.response.EntityResponse;
import org.springframework.http.*;
import org.springframework.beans.factory.annotation.*;
import com.realnet.order_estimation.Entity.Order_summary;
import com.realnet.order_estimation.Services.Order_summaryService ;
@RequestMapping(value = "/token/Order_summary")
@CrossOrigin("*")
@RestController
public class tokenFree_Order_summaryController {
@Autowired
private Order_summaryService Service;
@Value("${projectPath}")
private String projectPath;
@PostMapping("/Order_summary")
public Order_summary Savedata(@RequestBody Order_summary data) {
Order_summary save = Service.Savedata(data) ;
System.out.println("data saved..." + save);
return save;
}
@PutMapping("/Order_summary/{id}")
public Order_summary update(@RequestBody Order_summary data,@PathVariable Integer id ) {
Order_summary update = Service.update(data,id);
System.out.println("data update..." + update);
return update;
}
// get all with pagination
@GetMapping("/Order_summary/getall/page")
public Page<Order_summary> getall(@RequestParam(value = "page", required = false) Integer page,
@RequestParam(value = "size", required = false) Integer size) {
Pageable paging = PageRequest.of(page, size);
Page<Order_summary> get = Service.getAllWithPagination(paging);
return get;
}
@GetMapping("/Order_summary")
public List<Order_summary> getdetails() {
List<Order_summary> get = Service.getdetails();
return get;
}
// get all without authentication
@GetMapping("/token/Order_summary")
public List<Order_summary> getallwioutsec() {
List<Order_summary> get = Service.getdetails();
return get;
}
@GetMapping("/Order_summary/{id}")
public Order_summary getdetailsbyId(@PathVariable Integer id ) {
Order_summary get = Service.getdetailsbyId(id);
return get;
}
@DeleteMapping("/Order_summary/{id}")
public ResponseEntity<?> delete_by_id(@PathVariable Integer id ) {
Service.delete_by_id(id);
return new ResponseEntity<>(new EntityResponse("Deleted"), HttpStatus.OK);
}
}

View File

@ -0,0 +1,138 @@
package com.realnet.order_estimation.Controllers;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import com.fasterxml.jackson.core.JsonProcessingException;
import org.springframework.web.bind.annotation.CrossOrigin;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.realnet.config.EmailService;
import com.realnet.users.entity1.AppUser;
import com.realnet.users.service1.AppUserServiceImpl;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.data.domain.*;
import com.realnet.fnd.response.EntityResponse;
import org.springframework.http.*;
import org.springframework.beans.factory.annotation.*;
import com.realnet.order_estimation.Entity.Product_selection;
import com.realnet.order_estimation.Services.Product_selectionService ;
import com.realnet.order_estimation.Entity.Product_selection;
@RequestMapping(value = "/token/Product_selection")
@CrossOrigin("*")
@RestController
public class tokenFree_Product_selectionController {
@Autowired
private Product_selectionService Service;
@Value("${projectPath}")
private String projectPath;
@PostMapping("/Product_selection")
public Product_selection Savedata(@RequestBody Product_selection data) {
Product_selection save = Service.Savedata(data) ;
System.out.println("data saved..." + save);
return save;
}
@PutMapping("/Product_selection/{id}")
public Product_selection update(@RequestBody Product_selection data,@PathVariable Integer id ) {
Product_selection update = Service.update(data,id);
System.out.println("data update..." + update);
return update;
}
// get all with pagination
@GetMapping("/Product_selection/getall/page")
public Page<Product_selection> getall(@RequestParam(value = "page", required = false) Integer page,
@RequestParam(value = "size", required = false) Integer size) {
Pageable paging = PageRequest.of(page, size);
Page<Product_selection> get = Service.getAllWithPagination(paging);
return get;
}
@GetMapping("/Product_selection")
public List<Product_selection> getdetails() {
List<Product_selection> get = Service.getdetails();
return get;
}
// get all without authentication
@GetMapping("/token/Product_selection")
public List<Product_selection> getallwioutsec() {
List<Product_selection> get = Service.getdetails();
return get;
}
@GetMapping("/Product_selection/{id}")
public Product_selection getdetailsbyId(@PathVariable Integer id ) {
Product_selection get = Service.getdetailsbyId(id);
return get;
}
@DeleteMapping("/Product_selection/{id}")
public ResponseEntity<?> delete_by_id(@PathVariable Integer id ) {
Service.delete_by_id(id);
return new ResponseEntity<>(new EntityResponse("Deleted"), HttpStatus.OK);
}
@PostMapping("/Product_selection/Product_selection_insert")
public Product_selection insertProduct_selection(@RequestBody Product_selection data) {
Product_selection insertaction = Service.insertProduct_selection(data);
return insertaction;
}
}

View File

@ -0,0 +1,83 @@
package com.realnet.order_estimation.Controllers;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import com.fasterxml.jackson.core.JsonProcessingException;
import org.springframework.web.bind.annotation.CrossOrigin;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.realnet.config.EmailService;
import com.realnet.users.entity1.AppUser;
import com.realnet.users.service1.AppUserServiceImpl;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.data.domain.*;
import com.realnet.fnd.response.EntityResponse;
import org.springframework.http.*;
import org.springframework.beans.factory.annotation.*;
import com.realnet.order_estimation.Entity.Productss;
import com.realnet.order_estimation.Services.ProductssService ;
@RequestMapping(value = "/token/Productss")
@CrossOrigin("*")
@RestController
public class tokenFree_ProductssController {
@Autowired
private ProductssService Service;
@Value("${projectPath}")
private String projectPath;
@PostMapping("/Productss")
public Productss Savedata(@RequestBody Productss data) {
Productss save = Service.Savedata(data) ;
System.out.println("data saved..." + save);
return save;
}
@PutMapping("/Productss/{id}")
public Productss update(@RequestBody Productss data,@PathVariable Integer id ) {
Productss update = Service.update(data,id);
System.out.println("data update..." + update);
return update;
}
// get all with pagination
@GetMapping("/Productss/getall/page")
public Page<Productss> getall(@RequestParam(value = "page", required = false) Integer page,
@RequestParam(value = "size", required = false) Integer size) {
Pageable paging = PageRequest.of(page, size);
Page<Productss> get = Service.getAllWithPagination(paging);
return get;
}
@GetMapping("/Productss")
public List<Productss> getdetails() {
List<Productss> get = Service.getdetails();
return get;
}
// get all without authentication
@GetMapping("/token/Productss")
public List<Productss> getallwioutsec() {
List<Productss> get = Service.getdetails();
return get;
}
@GetMapping("/Productss/{id}")
public Productss getdetailsbyId(@PathVariable Integer id ) {
Productss get = Service.getdetailsbyId(id);
return get;
}
@DeleteMapping("/Productss/{id}")
public ResponseEntity<?> delete_by_id(@PathVariable Integer id ) {
Service.delete_by_id(id);
return new ResponseEntity<>(new EntityResponse("Deleted"), HttpStatus.OK);
}
}

View File

@ -0,0 +1,24 @@
package com.realnet.order_estimation.Controllers;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import com.realnet.order_estimation.Entity.Productss_ListFilter1;
import com.realnet.order_estimation.Services.Productss_ListFilter1Service ;
@RequestMapping(value = "/token/Productss_ListFilter1")
@RestController
public class tokenFree_Productss_ListFilter1Controller {
@Autowired
private Productss_ListFilter1Service Service;
@GetMapping("/Productss_ListFilter1")
public List<Productss_ListFilter1> getlist() {
List<Productss_ListFilter1> get = Service.getlistbuilder();
return get;
}
@GetMapping("/Productss_ListFilter11")
public List<Productss_ListFilter1> getlistwithparam( ) {
List<Productss_ListFilter1> get = Service.getlistbuilderparam( );
return get;
}
}

View File

@ -0,0 +1,83 @@
package com.realnet.order_estimation.Controllers;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import com.fasterxml.jackson.core.JsonProcessingException;
import org.springframework.web.bind.annotation.CrossOrigin;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.realnet.config.EmailService;
import com.realnet.users.entity1.AppUser;
import com.realnet.users.service1.AppUserServiceImpl;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.data.domain.*;
import com.realnet.fnd.response.EntityResponse;
import org.springframework.http.*;
import org.springframework.beans.factory.annotation.*;
import com.realnet.order_estimation.Entity.Type;
import com.realnet.order_estimation.Services.TypeService ;
@RequestMapping(value = "/token/Type")
@CrossOrigin("*")
@RestController
public class tokenFree_TypeController {
@Autowired
private TypeService Service;
@Value("${projectPath}")
private String projectPath;
@PostMapping("/Type")
public Type Savedata(@RequestBody Type data) {
Type save = Service.Savedata(data) ;
System.out.println("data saved..." + save);
return save;
}
@PutMapping("/Type/{id}")
public Type update(@RequestBody Type data,@PathVariable Integer id ) {
Type update = Service.update(data,id);
System.out.println("data update..." + update);
return update;
}
// get all with pagination
@GetMapping("/Type/getall/page")
public Page<Type> getall(@RequestParam(value = "page", required = false) Integer page,
@RequestParam(value = "size", required = false) Integer size) {
Pageable paging = PageRequest.of(page, size);
Page<Type> get = Service.getAllWithPagination(paging);
return get;
}
@GetMapping("/Type")
public List<Type> getdetails() {
List<Type> get = Service.getdetails();
return get;
}
// get all without authentication
@GetMapping("/token/Type")
public List<Type> getallwioutsec() {
List<Type> get = Service.getdetails();
return get;
}
@GetMapping("/Type/{id}")
public Type getdetailsbyId(@PathVariable Integer id ) {
Type get = Service.getdetailsbyId(id);
return get;
}
@DeleteMapping("/Type/{id}")
public ResponseEntity<?> delete_by_id(@PathVariable Integer id ) {
Service.delete_by_id(id);
return new ResponseEntity<>(new EntityResponse("Deleted"), HttpStatus.OK);
}
}

View File

@ -0,0 +1,24 @@
package com.realnet.order_estimation.Controllers;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import com.realnet.order_estimation.Entity.Type_ListFilter1;
import com.realnet.order_estimation.Services.Type_ListFilter1Service ;
@RequestMapping(value = "/token/Type_ListFilter1")
@RestController
public class tokenFree_Type_ListFilter1Controller {
@Autowired
private Type_ListFilter1Service Service;
@GetMapping("/Type_ListFilter1")
public List<Type_ListFilter1> getlist() {
List<Type_ListFilter1> get = Service.getlistbuilder();
return get;
}
@GetMapping("/Type_ListFilter11")
public List<Type_ListFilter1> getlistwithparam( ) {
List<Type_ListFilter1> get = Service.getlistbuilderparam( );
return get;
}
}

View File

@ -0,0 +1,103 @@
package com.realnet.order_estimation.Entity;
import lombok.*;
import com.realnet.WhoColumn.Entity.Extension;
import javax.persistence.*;
import java.time.LocalDateTime;
import java.util.*;
@Entity
@Data
public class Customer_information extends Extension {
/**
*
*/
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private String customer_name;
private String contact_person;
private String email_address;
private String phone_number;
@Column(length = 2000)
private String customer_address;
private String deployment_type;
private boolean dg_monitoring_without_fuel;
private boolean active_energy;
private boolean dg_monitoring_with_fuel;
private boolean ups_monitoring;
private boolean apfc_panel_monitoring;
private boolean busbar_monitoring;
private boolean lt_panel_monitoring;
private boolean ht_panel_monitoring;
private boolean compressed_air__gas_monitoring;
private boolean compressed_air_lpg_o2_n2_co2;
private boolean water_management_water_monitoring;
private boolean water_management_stp_etp;
}

View File

@ -0,0 +1,36 @@
package com.realnet.order_estimation.Entity;
import lombok.*;
import com.realnet.WhoColumn.Entity.Extension;
import javax.persistence.*;
import java.time.LocalDateTime;
import java.util.*;
@Entity
@Data
public class Generate_quote extends Extension {
/**
*
*/
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private String genrate_quote;
private String package_300k;
private String package_400k;
private String package_500k;
}

View File

@ -0,0 +1,24 @@
package com.realnet.order_estimation.Entity;
import lombok.*;
import com.realnet.WhoColumn.Entity.Extension;
import javax.persistence.*;
import java.time.LocalDateTime;
import java.util.*;
@Entity
@Data
public class Manufacturer extends Extension {
/**
*
*/
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private String manufacturer_name;
}

View File

@ -0,0 +1,14 @@
package com.realnet.order_estimation.Entity;
import lombok.*;
import javax.persistence.*;
import java.time.LocalDateTime;
import java.util.*;
@Data
public class Manufacturer_ListFilter1 {
private Integer id;
private String manufacturer_name;
}

View File

@ -0,0 +1,30 @@
package com.realnet.order_estimation.Entity;
import lombok.*;
import com.realnet.WhoColumn.Entity.Extension;
import javax.persistence.*;
import java.time.LocalDateTime;
import java.util.*;
@Entity
@Data
public class Notes_and_terms extends Extension {
/**
*
*/
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private String additional_notes;
@Column(length = 2000)
private String terms_and_conditions;
}

View File

@ -0,0 +1,54 @@
package com.realnet.order_estimation.Entity;
import lombok.*;
import com.realnet.WhoColumn.Entity.Extension;
import javax.persistence.*;
import java.time.LocalDateTime;
import java.util.*;
@Entity
@Data
public class Order_summary extends Extension {
/**
*
*/
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private int line;
private String product;
@Column(length = 2000)
private String description;
private String unit_price;
private int quantity;
private String total;
private int gst;
private int final_total;
}

View File

@ -0,0 +1,51 @@
package com.realnet.order_estimation.Entity;
import lombok.*;
import com.realnet.WhoColumn.Entity.Extension;
import javax.persistence.*;
import java.time.LocalDateTime;
import java.util.*;
@Entity
@Data
public class Product_selection extends Extension {
/**
*
*/
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private String name;
private Integer manufacturer;
private String manufacturername;
private Integer type;
private String typename;
private Integer product;
private String productname;
private String price;
private int quantity;
}

View File

@ -0,0 +1,24 @@
package com.realnet.order_estimation.Entity;
import lombok.*;
import com.realnet.WhoColumn.Entity.Extension;
import javax.persistence.*;
import java.time.LocalDateTime;
import java.util.*;
@Entity
@Data
public class Productss extends Extension {
/**
*
*/
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private String product_name;
}

View File

@ -0,0 +1,14 @@
package com.realnet.order_estimation.Entity;
import lombok.*;
import javax.persistence.*;
import java.time.LocalDateTime;
import java.util.*;
@Data
public class Productss_ListFilter1 {
private Integer id;
private String product_name;
}

View File

@ -0,0 +1,24 @@
package com.realnet.order_estimation.Entity;
import lombok.*;
import com.realnet.WhoColumn.Entity.Extension;
import javax.persistence.*;
import java.time.LocalDateTime;
import java.util.*;
@Entity
@Data
public class Type extends Extension {
/**
*
*/
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private String type_name;
}

View File

@ -0,0 +1,14 @@
package com.realnet.order_estimation.Entity;
import lombok.*;
import javax.persistence.*;
import java.time.LocalDateTime;
import java.util.*;
@Data
public class Type_ListFilter1 {
private Integer id;
private String type_name;
}

View File

@ -0,0 +1,40 @@
package com.realnet.order_estimation.Repository;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;
import java.util.*;
import com.realnet.order_estimation.Entity.Customer_information;
@Repository
public interface Customer_informationRepository extends JpaRepository<Customer_information, Integer> {
@Query(value = "select * from customer_information where created_by=?1", nativeQuery = true)
List<Customer_information> findAll(Long creayedBy);
@Query(value = "select * from customer_information where created_by=?1", nativeQuery = true)
Page<Customer_information> findAll(Pageable page, Long creayedBy);
}

View File

@ -0,0 +1,32 @@
package com.realnet.order_estimation.Repository;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;
import java.util.*;
import com.realnet.order_estimation.Entity.Generate_quote;
@Repository
public interface Generate_quoteRepository extends JpaRepository<Generate_quote, Integer> {
@Query(value = "select * from generate_quote where created_by=?1", nativeQuery = true)
List<Generate_quote> findAll(Long creayedBy);
@Query(value = "select * from generate_quote where created_by=?1", nativeQuery = true)
Page<Generate_quote> findAll(Pageable page, Long creayedBy);
}

View File

@ -0,0 +1,26 @@
package com.realnet.order_estimation.Repository;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;
import java.util.*;
import com.realnet.order_estimation.Entity.Manufacturer;
@Repository
public interface ManufacturerRepository extends JpaRepository<Manufacturer, Integer> {
@Query(value = "select * from manufacturer where created_by=?1", nativeQuery = true)
List<Manufacturer> findAll(Long creayedBy);
@Query(value = "select * from manufacturer where created_by=?1", nativeQuery = true)
Page<Manufacturer> findAll(Pageable page, Long creayedBy);
}

View File

@ -0,0 +1,28 @@
package com.realnet.order_estimation.Repository;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;
import java.util.*;
import com.realnet.order_estimation.Entity.Notes_and_terms;
@Repository
public interface Notes_and_termsRepository extends JpaRepository<Notes_and_terms, Integer> {
@Query(value = "select * from notes_and_terms where created_by=?1", nativeQuery = true)
List<Notes_and_terms> findAll(Long creayedBy);
@Query(value = "select * from notes_and_terms where created_by=?1", nativeQuery = true)
Page<Notes_and_terms> findAll(Pageable page, Long creayedBy);
}

View File

@ -0,0 +1,40 @@
package com.realnet.order_estimation.Repository;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;
import java.util.*;
import com.realnet.order_estimation.Entity.Order_summary;
@Repository
public interface Order_summaryRepository extends JpaRepository<Order_summary, Integer> {
@Query(value = "select * from order_summary where created_by=?1", nativeQuery = true)
List<Order_summary> findAll(Long creayedBy);
@Query(value = "select * from order_summary where created_by=?1", nativeQuery = true)
Page<Order_summary> findAll(Pageable page, Long creayedBy);
}

View File

@ -0,0 +1,38 @@
package com.realnet.order_estimation.Repository;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;
import java.util.*;
import com.realnet.order_estimation.Entity.Product_selection;
@Repository
public interface Product_selectionRepository extends JpaRepository<Product_selection, Integer> {
@Query(value = "select * from product_selection where created_by=?1", nativeQuery = true)
List<Product_selection> findAll(Long creayedBy);
@Query(value = "select * from product_selection where created_by=?1", nativeQuery = true)
Page<Product_selection> findAll(Pageable page, Long creayedBy);
}

View File

@ -0,0 +1,26 @@
package com.realnet.order_estimation.Repository;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;
import java.util.*;
import com.realnet.order_estimation.Entity.Productss;
@Repository
public interface ProductssRepository extends JpaRepository<Productss, Integer> {
@Query(value = "select * from productss where created_by=?1", nativeQuery = true)
List<Productss> findAll(Long creayedBy);
@Query(value = "select * from productss where created_by=?1", nativeQuery = true)
Page<Productss> findAll(Pageable page, Long creayedBy);
}

View File

@ -0,0 +1,26 @@
package com.realnet.order_estimation.Repository;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;
import java.util.*;
import com.realnet.order_estimation.Entity.Type;
@Repository
public interface TypeRepository extends JpaRepository<Type, Integer> {
@Query(value = "select * from type where created_by=?1", nativeQuery = true)
List<Type> findAll(Long creayedBy);
@Query(value = "select * from type where created_by=?1", nativeQuery = true)
Page<Type> findAll(Pageable page, Long creayedBy);
}

View File

@ -0,0 +1,39 @@
package com.realnet.order_estimation.Services;
import com.realnet.order_estimation.Repository.Customer_informationRepository;
import com.realnet.order_estimation.Entity.Customer_information;
import java.util.List;
import com.realnet.users.entity1.AppUser;
import com.realnet.users.service1.AppUserServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class Customer_informationInsertService1 {
@Autowired
private Customer_informationRepository Repository;
@Autowired
private AppUserServiceImpl userService;
public Customer_information insertaction(Customer_information customer_information ) {
customer_information.setUpdatedBy(getUser().getUserId());
customer_information.setCreatedBy(getUser().getUserId());
customer_information.setAccountId(getUser().getAccount().getAccount_id());
customer_information.setCustomer_name("text");
customer_information.setEmail_address("email");
customer_information.setContact_person("text");
customer_information.setPhone_number("phone");
customer_information.setSelect_objective("checkbox");
customer_information.setReset_btn("text");
customer_information.setCustomer_address("Paragraph");
customer_information.setDeployment_type("select");
final Customer_information save = Repository.save(customer_information);
return save;
}
public AppUser getUser() {
AppUser user = userService.getLoggedInUser();
return user;
}}

View File

@ -0,0 +1,211 @@
package com.realnet.order_estimation.Services;
import com.realnet.order_estimation.Repository.Customer_informationRepository;
import com.realnet.order_estimation.Entity.Customer_information
;import java.util.*;
import org.springframework.beans.factory.annotation.Autowired;
import com.realnet.SequenceGenerator.Service.SequenceService;
import org.springframework.data.domain.Page;
import com.realnet.realm.Entity.Realm;
import com.realnet.realm.Services.RealmService;
import org.springframework.data.domain.Pageable;
import org.springframework.http.*;
import com.realnet.users.service1.AppUserServiceImpl;
import com.realnet.users.entity1.AppUser;
import com.realnet.order_estimation.Entity.Customer_information;
import com.realnet.order_estimation.Repository.Customer_informationRepository;
import org.springframework.stereotype.Service;
@Service
public class Customer_informationService {
@Autowired
private Customer_informationRepository Repository;
@Autowired
private AppUserServiceImpl userService;
@Autowired
private RealmService realmService;
public Customer_information Savedata(Customer_information data) {
data.setUpdatedBy(getUser().getUserId());
data.setCreatedBy(getUser().getUserId());
data.setAccountId(getUser().getAccount().getAccount_id());
Customer_information save = Repository.save(data);
return save;
}
// get all with pagination
public Page<Customer_information> getAllWithPagination(Pageable page) {
return Repository.findAll(page, getUser().getUserId());
}
public List<Customer_information> getdetails() {
List<Realm> realm = realmService.findByUserId(getUser().getUserId());
List<Customer_information> all = Repository.findAll(getUser().getUserId());
return all ; }
public Customer_information getdetailsbyId(Integer id) {
return Repository.findById(id).get();
}
public void delete_by_id(Integer id) {
Repository.deleteById(id);
}
public Customer_information update(Customer_information data,Integer id) {
Customer_information old = Repository.findById(id).get();
old.setCustomer_name(data.getCustomer_name());
old.setContact_person(data.getContact_person());
old.setEmail_address(data.getEmail_address());
old.setPhone_number(data.getPhone_number());
old.setCustomer_address(data.getCustomer_address());
old.setDeployment_type(data.getDeployment_type());
old.setActive_energy(data.isActive_energy());
old.setDg_monitoring_with_fuel(data.isDg_monitoring_with_fuel());
old.setDg_monitoring_without_fuel(data.isDg_monitoring_without_fuel());
old.setUps_monitoring(data.isUps_monitoring());
old.setApfc_panel_monitoring(data.isApfc_panel_monitoring());
old.setWater_management_stp_etp(data.isWater_management_stp_etp());
old.setBusbar_monitoring(data.isBusbar_monitoring());
old.setLt_panel_monitoring(data.isLt_panel_monitoring());
old.setHt_panel_monitoring(data.isHt_panel_monitoring());
old.setCompressed_air__gas_monitoring(data.isCompressed_air__gas_monitoring());
old.setCompressed_air_lpg_o2_n2_co2(data.isCompressed_air_lpg_o2_n2_co2());
old.setWater_management_water_monitoring(data.isWater_management_water_monitoring());
final Customer_information test = Repository.save(old);
data.setUpdatedBy(getUser().getUserId());
return test;}
// Insert Action
@Autowired
private Customer_informationRepository customer_informationinsertrepository;
public Customer_information insertCustomer_information(Customer_information data) {
data.setUpdatedBy(getUser().getUserId());
data.setCreatedBy(getUser().getUserId());
data.setAccountId(getUser().getAccount().getAccount_id());
final Customer_information save = customer_informationinsertrepository.save(data);
return save;
}
public AppUser getUser() {
AppUser user = userService.getLoggedInUser();
return user;
}}

View File

@ -0,0 +1,103 @@
package com.realnet.order_estimation.Services;
import com.realnet.order_estimation.Repository.Generate_quoteRepository;
import com.realnet.order_estimation.Entity.Generate_quote
;import java.util.*;
import org.springframework.beans.factory.annotation.Autowired;
import com.realnet.SequenceGenerator.Service.SequenceService;
import org.springframework.data.domain.Page;
import com.realnet.realm.Entity.Realm;
import com.realnet.realm.Services.RealmService;
import org.springframework.data.domain.Pageable;
import org.springframework.http.*;
import com.realnet.users.service1.AppUserServiceImpl;
import com.realnet.users.entity1.AppUser;
import org.springframework.stereotype.Service;
@Service
public class Generate_quoteService {
@Autowired
private Generate_quoteRepository Repository;
@Autowired
private AppUserServiceImpl userService;
@Autowired
private RealmService realmService;
public Generate_quote Savedata(Generate_quote data) {
data.setUpdatedBy(getUser().getUserId());
data.setCreatedBy(getUser().getUserId());
data.setAccountId(getUser().getAccount().getAccount_id());
Generate_quote save = Repository.save(data);
return save;
}
// get all with pagination
public Page<Generate_quote> getAllWithPagination(Pageable page) {
return Repository.findAll(page, getUser().getUserId());
}
public List<Generate_quote> getdetails() {
List<Realm> realm = realmService.findByUserId(getUser().getUserId());
List<Generate_quote> all = Repository.findAll(getUser().getUserId());
return all ; }
public Generate_quote getdetailsbyId(Integer id) {
return Repository.findById(id).get();
}
public void delete_by_id(Integer id) {
Repository.deleteById(id);
}
public Generate_quote update(Generate_quote data,Integer id) {
Generate_quote old = Repository.findById(id).get();
old.setGenrate_quote(data.getGenrate_quote());
old.setPackage_300k(data.getPackage_300k());
old.setPackage_400k(data.getPackage_400k());
old.setPackage_500k(data.getPackage_500k());
final Generate_quote test = Repository.save(old);
data.setUpdatedBy(getUser().getUserId());
return test;}
public AppUser getUser() {
AppUser user = userService.getLoggedInUser();
return user;
}}

View File

@ -0,0 +1,73 @@
package com.realnet.order_estimation.Services;
import com.realnet.order_estimation.Repository.ManufacturerRepository;
import com.realnet.order_estimation.Entity.Manufacturer
;import java.util.*;
import org.springframework.beans.factory.annotation.Autowired;
import com.realnet.SequenceGenerator.Service.SequenceService;
import org.springframework.data.domain.Page;
import com.realnet.realm.Entity.Realm;
import com.realnet.realm.Services.RealmService;
import org.springframework.data.domain.Pageable;
import org.springframework.http.*;
import com.realnet.users.service1.AppUserServiceImpl;
import com.realnet.users.entity1.AppUser;
import org.springframework.stereotype.Service;
@Service
public class ManufacturerService {
@Autowired
private ManufacturerRepository Repository;
@Autowired
private AppUserServiceImpl userService;
@Autowired
private RealmService realmService;
public Manufacturer Savedata(Manufacturer data) {
data.setUpdatedBy(getUser().getUserId());
data.setCreatedBy(getUser().getUserId());
data.setAccountId(getUser().getAccount().getAccount_id());
Manufacturer save = Repository.save(data);
return save;
}
// get all with pagination
public Page<Manufacturer> getAllWithPagination(Pageable page) {
return Repository.findAll(page, getUser().getUserId());
}
public List<Manufacturer> getdetails() {
List<Realm> realm = realmService.findByUserId(getUser().getUserId());
List<Manufacturer> all = Repository.findAll(getUser().getUserId());
return all ; }
public Manufacturer getdetailsbyId(Integer id) {
return Repository.findById(id).get();
}
public void delete_by_id(Integer id) {
Repository.deleteById(id);
}
public Manufacturer update(Manufacturer data,Integer id) {
Manufacturer old = Repository.findById(id).get();
old.setManufacturer_name(data.getManufacturer_name());
final Manufacturer test = Repository.save(old);
data.setUpdatedBy(getUser().getUserId());
return test;}
public AppUser getUser() {
AppUser user = userService.getLoggedInUser();
return user;
}}

View File

@ -0,0 +1,47 @@
package com.realnet.order_estimation.Services;
import java.util.*;
import com.realnet.order_estimation.Repository.ManufacturerRepository;
import com.realnet.order_estimation.Entity.Manufacturer;
import com.realnet.order_estimation.Entity.Manufacturer_ListFilter1;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class Manufacturer_ListFilter1Service {
@Autowired
private ManufacturerRepository Repository;
public List<Manufacturer_ListFilter1> getlistbuilder() {
List<Manufacturer> list= Repository.findAll();
ArrayList<Manufacturer_ListFilter1> l = new ArrayList<>();
for (Manufacturer data : list) {
{
Manufacturer_ListFilter1 dummy = new Manufacturer_ListFilter1();
dummy.setId(data.getId());
dummy.setManufacturer_name(data.getManufacturer_name());
l.add(dummy);
}
}
return l;}
public List<Manufacturer_ListFilter1> getlistbuilderparam( ) {
List<Manufacturer> list= Repository.findAll();
ArrayList<Manufacturer_ListFilter1> l = new ArrayList<>();
for (Manufacturer data : list) {
{
Manufacturer_ListFilter1 dummy = new Manufacturer_ListFilter1();
dummy.setId(data.getId());
dummy.setManufacturer_name(data.getManufacturer_name());
l.add(dummy);
}
}
return l;}
}

View File

@ -0,0 +1,83 @@
package com.realnet.order_estimation.Services;
import com.realnet.order_estimation.Repository.Notes_and_termsRepository;
import com.realnet.order_estimation.Entity.Notes_and_terms
;import java.util.*;
import org.springframework.beans.factory.annotation.Autowired;
import com.realnet.SequenceGenerator.Service.SequenceService;
import org.springframework.data.domain.Page;
import com.realnet.realm.Entity.Realm;
import com.realnet.realm.Services.RealmService;
import org.springframework.data.domain.Pageable;
import org.springframework.http.*;
import com.realnet.users.service1.AppUserServiceImpl;
import com.realnet.users.entity1.AppUser;
import org.springframework.stereotype.Service;
@Service
public class Notes_and_termsService {
@Autowired
private Notes_and_termsRepository Repository;
@Autowired
private AppUserServiceImpl userService;
@Autowired
private RealmService realmService;
public Notes_and_terms Savedata(Notes_and_terms data) {
data.setUpdatedBy(getUser().getUserId());
data.setCreatedBy(getUser().getUserId());
data.setAccountId(getUser().getAccount().getAccount_id());
Notes_and_terms save = Repository.save(data);
return save;
}
// get all with pagination
public Page<Notes_and_terms> getAllWithPagination(Pageable page) {
return Repository.findAll(page, getUser().getUserId());
}
public List<Notes_and_terms> getdetails() {
List<Realm> realm = realmService.findByUserId(getUser().getUserId());
List<Notes_and_terms> all = Repository.findAll(getUser().getUserId());
return all ; }
public Notes_and_terms getdetailsbyId(Integer id) {
return Repository.findById(id).get();
}
public void delete_by_id(Integer id) {
Repository.deleteById(id);
}
public Notes_and_terms update(Notes_and_terms data,Integer id) {
Notes_and_terms old = Repository.findById(id).get();
old.setAdditional_notes(data.getAdditional_notes());
old.setTerms_and_conditions(data.getTerms_and_conditions());
final Notes_and_terms test = Repository.save(old);
data.setUpdatedBy(getUser().getUserId());
return test;}
public AppUser getUser() {
AppUser user = userService.getLoggedInUser();
return user;
}}

View File

@ -0,0 +1,143 @@
package com.realnet.order_estimation.Services;
import com.realnet.order_estimation.Repository.Order_summaryRepository;
import com.realnet.order_estimation.Entity.Order_summary
;import java.util.*;
import org.springframework.beans.factory.annotation.Autowired;
import com.realnet.SequenceGenerator.Service.SequenceService;
import org.springframework.data.domain.Page;
import com.realnet.realm.Entity.Realm;
import com.realnet.realm.Services.RealmService;
import org.springframework.data.domain.Pageable;
import org.springframework.http.*;
import com.realnet.users.service1.AppUserServiceImpl;
import com.realnet.users.entity1.AppUser;
import org.springframework.stereotype.Service;
@Service
public class Order_summaryService {
@Autowired
private Order_summaryRepository Repository;
@Autowired
private AppUserServiceImpl userService;
@Autowired
private RealmService realmService;
public Order_summary Savedata(Order_summary data) {
data.setUpdatedBy(getUser().getUserId());
data.setCreatedBy(getUser().getUserId());
data.setAccountId(getUser().getAccount().getAccount_id());
Order_summary save = Repository.save(data);
return save;
}
// get all with pagination
public Page<Order_summary> getAllWithPagination(Pageable page) {
return Repository.findAll(page, getUser().getUserId());
}
public List<Order_summary> getdetails() {
List<Realm> realm = realmService.findByUserId(getUser().getUserId());
List<Order_summary> all = Repository.findAll(getUser().getUserId());
return all ; }
public Order_summary getdetailsbyId(Integer id) {
return Repository.findById(id).get();
}
public void delete_by_id(Integer id) {
Repository.deleteById(id);
}
public Order_summary update(Order_summary data,Integer id) {
Order_summary old = Repository.findById(id).get();
old.setLine(data.getLine());
old.setProduct(data.getProduct());
old.setDescription(data.getDescription());
old.setUnit_price(data.getUnit_price());
old.setQuantity(data.getQuantity());
old.setTotal(data.getTotal());
old.setGst(data.getGst());
old.setFinal_total(data.getFinal_total());
final Order_summary test = Repository.save(old);
data.setUpdatedBy(getUser().getUserId());
return test;}
public AppUser getUser() {
AppUser user = userService.getLoggedInUser();
return user;
}}

View File

@ -0,0 +1,31 @@
package com.realnet.order_estimation.Services;
import com.realnet.order_estimation.Repository.Product_selectionRepository;
import com.realnet.order_estimation.Entity.Product_selection;
import java.util.List;
import com.realnet.users.entity1.AppUser;
import com.realnet.users.service1.AppUserServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class Product_selectionInsertService1 {
@Autowired
private Product_selectionRepository Repository;
@Autowired
private AppUserServiceImpl userService;
public Product_selection insertaction(Product_selection product_selection ) {
product_selection.setUpdatedBy(getUser().getUserId());
product_selection.setCreatedBy(getUser().getUserId());
product_selection.setAccountId(getUser().getAccount().getAccount_id());
final Product_selection save = Repository.save(product_selection);
return save;
}
public AppUser getUser() {
AppUser user = userService.getLoggedInUser();
return user;
}}

View File

@ -0,0 +1,190 @@
package com.realnet.order_estimation.Services;
import com.realnet.order_estimation.Repository.Product_selectionRepository;
import com.realnet.order_estimation.Entity.Product_selection
;import java.util.*;
import org.springframework.beans.factory.annotation.Autowired;
import com.realnet.SequenceGenerator.Service.SequenceService;
import org.springframework.data.domain.Page;
import com.realnet.realm.Entity.Realm;
import com.realnet.realm.Services.RealmService;
import org.springframework.data.domain.Pageable;
import org.springframework.http.*;
import com.realnet.users.service1.AppUserServiceImpl;
import com.realnet.users.entity1.AppUser;
import com.realnet.order_estimation.Entity.Manufacturer;
import com.realnet.order_estimation.Services.ManufacturerService;
import com.realnet.order_estimation.Entity.Type;
import com.realnet.order_estimation.Services.TypeService;
import com.realnet.order_estimation.Entity.Productss;
import com.realnet.order_estimation.Services.ProductssService;
import com.realnet.order_estimation.Entity.Product_selection;
import com.realnet.order_estimation.Repository.Product_selectionRepository;
import org.springframework.stereotype.Service;
@Service
public class Product_selectionService {
@Autowired
private Product_selectionRepository Repository;
@Autowired
private AppUserServiceImpl userService;
@Autowired
private RealmService realmService;
@Autowired
private ManufacturerService manufacturerserv;
@Autowired
private TypeService typeserv;
@Autowired
private ProductssService productserv;
public Product_selection Savedata(Product_selection data) {
if (data.getManufacturer() != null) {
Manufacturer get = manufacturerserv.getdetailsbyId(data.getManufacturer());
data.setManufacturername(get.getManufacturer_Name());
}
if (data.getType() != null) {
Type get = typeserv.getdetailsbyId(data.getType());
data.setTypename(get.getType_name());
}
if (data.getProduct() != null) {
Productss get = productserv.getdetailsbyId(data.getProduct());
data.setProductname(get.getProduct_Name());
}
data.setUpdatedBy(getUser().getUserId());
data.setCreatedBy(getUser().getUserId());
data.setAccountId(getUser().getAccount().getAccount_id());
Product_selection save = Repository.save(data);
return save;
}
// get all with pagination
public Page<Product_selection> getAllWithPagination(Pageable page) {
return Repository.findAll(page, getUser().getUserId());
}
public List<Product_selection> getdetails() {
List<Realm> realm = realmService.findByUserId(getUser().getUserId());
List<Product_selection> all = Repository.findAll(getUser().getUserId());
return all ; }
public Product_selection getdetailsbyId(Integer id) {
return Repository.findById(id).get();
}
public void delete_by_id(Integer id) {
Repository.deleteById(id);
}
public Product_selection update(Product_selection data,Integer id) {
Product_selection old = Repository.findById(id).get();
old.setName(data.getName());
old.setManufacturer(data.getManufacturer());
old.setType(data.getType());
old.setProduct(data.getProduct());
old.setPrice(data.getPrice());
old.setQuantity(data.getQuantity());
final Product_selection test = Repository.save(old);
data.setUpdatedBy(getUser().getUserId());
return test;}
// Insert Action
@Autowired
private Product_selectionRepository product_selectioninsertrepository;
public Product_selection insertProduct_selection(Product_selection data) {
data.setUpdatedBy(getUser().getUserId());
data.setCreatedBy(getUser().getUserId());
data.setAccountId(getUser().getAccount().getAccount_id());
final Product_selection save = product_selectioninsertrepository.save(data);
return save;
}
public AppUser getUser() {
AppUser user = userService.getLoggedInUser();
return user;
}}

View File

@ -0,0 +1,73 @@
package com.realnet.order_estimation.Services;
import com.realnet.order_estimation.Repository.ProductssRepository;
import com.realnet.order_estimation.Entity.Productss
;import java.util.*;
import org.springframework.beans.factory.annotation.Autowired;
import com.realnet.SequenceGenerator.Service.SequenceService;
import org.springframework.data.domain.Page;
import com.realnet.realm.Entity.Realm;
import com.realnet.realm.Services.RealmService;
import org.springframework.data.domain.Pageable;
import org.springframework.http.*;
import com.realnet.users.service1.AppUserServiceImpl;
import com.realnet.users.entity1.AppUser;
import org.springframework.stereotype.Service;
@Service
public class ProductssService {
@Autowired
private ProductssRepository Repository;
@Autowired
private AppUserServiceImpl userService;
@Autowired
private RealmService realmService;
public Productss Savedata(Productss data) {
data.setUpdatedBy(getUser().getUserId());
data.setCreatedBy(getUser().getUserId());
data.setAccountId(getUser().getAccount().getAccount_id());
Productss save = Repository.save(data);
return save;
}
// get all with pagination
public Page<Productss> getAllWithPagination(Pageable page) {
return Repository.findAll(page, getUser().getUserId());
}
public List<Productss> getdetails() {
List<Realm> realm = realmService.findByUserId(getUser().getUserId());
List<Productss> all = Repository.findAll(getUser().getUserId());
return all ; }
public Productss getdetailsbyId(Integer id) {
return Repository.findById(id).get();
}
public void delete_by_id(Integer id) {
Repository.deleteById(id);
}
public Productss update(Productss data,Integer id) {
Productss old = Repository.findById(id).get();
old.setProduct_name(data.getProduct_name());
final Productss test = Repository.save(old);
data.setUpdatedBy(getUser().getUserId());
return test;}
public AppUser getUser() {
AppUser user = userService.getLoggedInUser();
return user;
}}

View File

@ -0,0 +1,47 @@
package com.realnet.order_estimation.Services;
import java.util.*;
import com.realnet.order_estimation.Repository.ProductssRepository;
import com.realnet.order_estimation.Entity.Productss;
import com.realnet.order_estimation.Entity.Productss_ListFilter1;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class Productss_ListFilter1Service {
@Autowired
private ProductssRepository Repository;
public List<Productss_ListFilter1> getlistbuilder() {
List<Productss> list= Repository.findAll();
ArrayList<Productss_ListFilter1> l = new ArrayList<>();
for (Productss data : list) {
{
Productss_ListFilter1 dummy = new Productss_ListFilter1();
dummy.setId(data.getId());
dummy.setProduct_name(data.getProduct_name());
l.add(dummy);
}
}
return l;}
public List<Productss_ListFilter1> getlistbuilderparam( ) {
List<Productss> list= Repository.findAll();
ArrayList<Productss_ListFilter1> l = new ArrayList<>();
for (Productss data : list) {
{
Productss_ListFilter1 dummy = new Productss_ListFilter1();
dummy.setId(data.getId());
dummy.setProduct_name(data.getProduct_name());
l.add(dummy);
}
}
return l;}
}

View File

@ -0,0 +1,73 @@
package com.realnet.order_estimation.Services;
import com.realnet.order_estimation.Repository.TypeRepository;
import com.realnet.order_estimation.Entity.Type
;import java.util.*;
import org.springframework.beans.factory.annotation.Autowired;
import com.realnet.SequenceGenerator.Service.SequenceService;
import org.springframework.data.domain.Page;
import com.realnet.realm.Entity.Realm;
import com.realnet.realm.Services.RealmService;
import org.springframework.data.domain.Pageable;
import org.springframework.http.*;
import com.realnet.users.service1.AppUserServiceImpl;
import com.realnet.users.entity1.AppUser;
import org.springframework.stereotype.Service;
@Service
public class TypeService {
@Autowired
private TypeRepository Repository;
@Autowired
private AppUserServiceImpl userService;
@Autowired
private RealmService realmService;
public Type Savedata(Type data) {
data.setUpdatedBy(getUser().getUserId());
data.setCreatedBy(getUser().getUserId());
data.setAccountId(getUser().getAccount().getAccount_id());
Type save = Repository.save(data);
return save;
}
// get all with pagination
public Page<Type> getAllWithPagination(Pageable page) {
return Repository.findAll(page, getUser().getUserId());
}
public List<Type> getdetails() {
List<Realm> realm = realmService.findByUserId(getUser().getUserId());
List<Type> all = Repository.findAll(getUser().getUserId());
return all ; }
public Type getdetailsbyId(Integer id) {
return Repository.findById(id).get();
}
public void delete_by_id(Integer id) {
Repository.deleteById(id);
}
public Type update(Type data,Integer id) {
Type old = Repository.findById(id).get();
old.setType_name(data.getType_name());
final Type test = Repository.save(old);
data.setUpdatedBy(getUser().getUserId());
return test;}
public AppUser getUser() {
AppUser user = userService.getLoggedInUser();
return user;
}}

View File

@ -0,0 +1,47 @@
package com.realnet.order_estimation.Services;
import java.util.*;
import com.realnet.order_estimation.Repository.TypeRepository;
import com.realnet.order_estimation.Entity.Type;
import com.realnet.order_estimation.Entity.Type_ListFilter1;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class Type_ListFilter1Service {
@Autowired
private TypeRepository Repository;
public List<Type_ListFilter1> getlistbuilder() {
List<Type> list= Repository.findAll();
ArrayList<Type_ListFilter1> l = new ArrayList<>();
for (Type data : list) {
{
Type_ListFilter1 dummy = new Type_ListFilter1();
dummy.setId(data.getId());
dummy.setType_name(data.getType_name());
l.add(dummy);
}
}
return l;}
public List<Type_ListFilter1> getlistbuilderparam( ) {
List<Type> list= Repository.findAll();
ArrayList<Type_ListFilter1> l = new ArrayList<>();
for (Type data : list) {
{
Type_ListFilter1 dummy = new Type_ListFilter1();
dummy.setId(data.getId());
dummy.setType_name(data.getType_name());
l.add(dummy);
}
}
return l;}
}

View File

@ -0,0 +1,16 @@
CREATE TABLE orderestimationdb.Customer_information(id BIGINT NOT NULL AUTO_INCREMENT, dg_monitoring-with_fuel_ bit(1), apfc_panel_monitoring bit(1), lt_panel_monitoring bit(1), customer_name VARCHAR(400), active_energy bit(1), ht_panel_monitoring bit(1), email_address VARCHAR(400), contact_person VARCHAR(400), phone_number VARCHAR(400), compressed_air-_gas_monitoring bit(1), dg_monitoring-without_fuel_ bit(1), ups_monitoring bit(1), water_management-water_monitoring bit(1), water_management-stp/etp bit(1), busbar_monitoring bit(1), reset_btn VARCHAR(400), customer_address VARCHAR(400), deployment_type VARCHAR(400), compressed_air-lpg/o2/n2/co2 bit(1), PRIMARY KEY (id));
CREATE TABLE orderestimationdb.Product_selection(id BIGINT NOT NULL AUTO_INCREMENT, type int, add_to_order_btn VARCHAR(400), price VARCHAR(400), name VARCHAR(400), manufacturer int, product int, quantity int, PRIMARY KEY (id));
CREATE TABLE orderestimationdb.Type(id BIGINT NOT NULL AUTO_INCREMENT, type_name VARCHAR(400), PRIMARY KEY (id));
CREATE TABLE orderestimationdb.Productss(id BIGINT NOT NULL AUTO_INCREMENT, product_name VARCHAR(400), PRIMARY KEY (id));
CREATE TABLE orderestimationdb.Manufacturer(id BIGINT NOT NULL AUTO_INCREMENT, manufacturer_name VARCHAR(400), PRIMARY KEY (id));
CREATE TABLE orderestimationdb.Order_summary(id BIGINT NOT NULL AUTO_INCREMENT, line int, final_total int, description VARCHAR(400), total VARCHAR(400), product VARCHAR(400), quantity int, gst int, unit_price VARCHAR(400), PRIMARY KEY (id));
CREATE TABLE orderestimationdb.Notes_and_terms(id BIGINT NOT NULL AUTO_INCREMENT, additional_notes VARCHAR(400), terms_and_conditions VARCHAR(400), PRIMARY KEY (id));
CREATE TABLE orderestimationdb.Generate_quote(id BIGINT NOT NULL AUTO_INCREMENT, package_500k VARCHAR(400), genrate_quote VARCHAR(400), package_400k VARCHAR(400), package_300k VARCHAR(400), PRIMARY KEY (id));

View File

@ -2,14 +2,14 @@
export const LoginEnvironment = {
"templateNo": "<templateNo>",
"loginHeading": "<loginHeading>",
"loginHeading2": "<loginHeading2>",
"isSignup": "<isSignup>",
"loginSignup": "<loginSignup> ",
"loginSignup2": "<loginSignup2>",
"loginForgotpass": "<loginForgotpass>",
"loginImage": "<loginImage>",
"loginImageURL": "<loginImageURL>"
"templateNo": "Template 1",
"loginHeading": "Welcome to",
"loginHeading2": "io8.dev",
"isSignup": "true",
"loginSignup": "Use your ID to sign in OR ",
"loginSignup2": "create one now",
"loginForgotpass": "FORGOT PASSWORD?",
"loginImage": "[]",
"loginImageURL": "null"
}

View File

@ -0,0 +1,880 @@
<ol class="breadcrumb breadcrumb-arrow font-trirong">
<li><a href="javascript://"> Customer Information</a></li>
</ol>
<div class="dg-wrapper">
<div class="clr-row">
<div class="clr-col-8">
<h3>Customer Information </h3>
</div>
<div class="clr-col-4" style="text-align: right;">
<button *ngIf="cardButton" id="add" class="btn btn-primary btn-icon" (click)="changeView()" >
<clr-icon *ngIf="!isCardview" shape="grid-view"></clr-icon> <clr-icon *ngIf="isCardview" shape="bars"></clr-icon>
</button>
<!-- button -->
<!-- insert button -->
<button id="insert" class="btn btn-primary" (click)="goToInsertReset_btn()">
<clr-icon shape="plus"></clr-icon>Insert Reset_btn
</button>
<!-- insert end -->
<button id="add" class="btn btn-primary" (click)="goToAdd(product)" >
<clr-icon shape="plus"></clr-icon>ADD
</button>
</div></div>
<ng-container *ngIf="!isCardview"> <!-- GET ALL --> <clr-datagrid [clrDgLoading]="loading" [(clrDgSelected)]="selected">
<clr-dg-placeholder>
<ng-template #loadingSpinner>
<clr-spinner>Loading ... </clr-spinner>
</ng-template>
<div *ngIf="error;else loadingSpinner">{{error}}</div>
</clr-dg-placeholder>
<clr-dg-column [clrDgField]="' customer_name'"> <ng-container *clrDgHideableColumn="{hidden: false}"> Customer Name
</ng-container></clr-dg-column>
<clr-dg-column [clrDgField]="' contact_person'"> <ng-container *clrDgHideableColumn="{hidden: false}"> Contact Person
</ng-container></clr-dg-column>
<clr-dg-column [clrDgField]="' email_address'"> <ng-container *clrDgHideableColumn="{hidden: false}"> Email Address
</ng-container></clr-dg-column>
<clr-dg-column [clrDgField]="' phone_number'"> <ng-container *clrDgHideableColumn="{hidden: false}"> Phone Number
</ng-container></clr-dg-column>
<clr-dg-column [clrDgField]="' customer_address'"> <ng-container *clrDgHideableColumn="{hidden: false}"> Customer Address
</ng-container></clr-dg-column>
<clr-dg-column [clrDgField]="' deployment_type'"> <ng-container *clrDgHideableColumn="{hidden: false}"> Deployment Type
</ng-container></clr-dg-column>
<clr-dg-column [clrDgField]="' dg_monitoring_with_fuel'"> <ng-container *clrDgHideableColumn="{hidden: false}"> dg_monitoring_with_fuel
</ng-container></clr-dg-column>
<clr-dg-column [clrDgField]="' active_energy'"> <ng-container *clrDgHideableColumn="{hidden: false}"> active_energy
</ng-container></clr-dg-column>
<clr-dg-column [clrDgField]="' dg_monitoring_without_fuel'"> <ng-container *clrDgHideableColumn="{hidden: false}"> dg_monitoring_without_fuel
</ng-container></clr-dg-column>
<clr-dg-column [clrDgField]="' ups_monitoring'"> <ng-container *clrDgHideableColumn="{hidden: false}"> ups_monitoring
</ng-container></clr-dg-column>
<clr-dg-column [clrDgField]="' apfc_panel_monitoring'"> <ng-container *clrDgHideableColumn="{hidden: false}"> apfc_panel_monitoring
</ng-container></clr-dg-column>
<clr-dg-column [clrDgField]="' busbar_monitoring'"> <ng-container *clrDgHideableColumn="{hidden: false}"> busbar_monitoring
</ng-container></clr-dg-column>
<clr-dg-column [clrDgField]="' lt_panel_monitoring'"> <ng-container *clrDgHideableColumn="{hidden: false}"> lt_panel_monitoring
</ng-container></clr-dg-column>
<clr-dg-column [clrDgField]="' ht_panel_monitoring'"> <ng-container *clrDgHideableColumn="{hidden: false}"> ht_panel_monitoring
</ng-container></clr-dg-column>
<clr-dg-column [clrDgField]="' compressed_air__gas_monitoring'"> <ng-container *clrDgHideableColumn="{hidden: false}"> compressed_air__gas_monitoring
</ng-container></clr-dg-column>
<clr-dg-column [clrDgField]="' compressed_air_lpg_o2_n2_co2'"> <ng-container *clrDgHideableColumn="{hidden: false}"> compressed_air_lpg_o2_n2_co2
</ng-container></clr-dg-column>
<clr-dg-column [clrDgField]="' water_management_stp_etp'"> <ng-container *clrDgHideableColumn="{hidden: false}"> water_management_stp_etp
</ng-container></clr-dg-column>
<clr-dg-column [clrDgField]="' water_management_water_monitoring'"> <ng-container *clrDgHideableColumn="{hidden: false}"> water_management_water_monitoring
</ng-container></clr-dg-column>
<!-- who column -->
<clr-dg-column> <ng-container *clrDgHideableColumn="{hidden: false}">
<clr-icon shape="bars"></clr-icon> Action
</ng-container></clr-dg-column>
<!-- end -->
<clr-dg-row *clrDgItems="let user of product" [clrDgItem]="user">
<clr-dg-cell>{{user. customer_name }}</clr-dg-cell>
<clr-dg-cell>{{user. contact_person }}</clr-dg-cell>
<clr-dg-cell>{{user. email_address }}</clr-dg-cell>
<clr-dg-cell>{{user. phone_number }}</clr-dg-cell>
<clr-dg-cell (click)="goToReplaceStringcustomer_address(user.customer_address)" style="cursor: pointer; align-items: center;"><clr-icon shape="details"></clr-icon></clr-dg-cell>
<clr-dg-cell>{{user. deployment_type }}</clr-dg-cell>
<clr-dg-cell>{{user. dg_monitoring_without_fuel}}</clr-dg-cell>
<clr-dg-cell>{{user. active_energy}}</clr-dg-cell>
<clr-dg-cell>{{user. dg_monitoring_with_fuel}}</clr-dg-cell>
<clr-dg-cell>{{user. ups_monitoring}}</clr-dg-cell>
<clr-dg-cell>{{user. apfc_panel_monitoring}}</clr-dg-cell>
<clr-dg-cell>{{user. busbar_monitoring}}</clr-dg-cell>
<clr-dg-cell>{{user. lt_panel_monitoring}}</clr-dg-cell>
<clr-dg-cell>{{user. ht_panel_monitoring}}</clr-dg-cell>
<clr-dg-cell>{{user. water_management_stp_etp}}</clr-dg-cell>
<clr-dg-cell>{{user. compressed_air__gas_monitoring}}</clr-dg-cell>
<clr-dg-cell>{{user. compressed_air_lpg_o2_n2_co2}}</clr-dg-cell>
<clr-dg-cell>{{user. water_management_water_monitoring}}</clr-dg-cell>
<!-- who column -->
<clr-dg-cell>
<clr-signpost>
<span style="cursor: pointer;" clrSignpostTrigger><clr-icon shape="help" class="success" style="color: rgb(0, 130, 236);"></clr-icon></span>
<clr-signpost-content [clrPosition]="'left-middle'" *clrIfOpen>
<h5 style="margin-top: 0">Who Column</h5>
<div>Account ID: <code class="clr-code">{{user.accountId}}</code></div>
<div>Created At: <code class="clr-code">{{user.createdAt| date}}</code></div>
<div>Created By: <code class="clr-code">{{user.createdBy}}</code></div>
<div>Updated At: <code class="clr-code">{{user.updatedAt | date}}</code></div>
<div>Updated By: <code class="clr-code">{{user.updatedBy}}</code></div>
</clr-signpost-content>
</clr-signpost>
</clr-dg-cell>
<!-- who colmn -->
<clr-dg-action-overflow>
<button class="action-item" (click)="onEdit(user)">Edit</button>
<button class="action-item" (click)="onDelete(user)">Delete</button>
</clr-dg-action-overflow>
</clr-dg-row>
<clr-dg-footer>
<clr-dg-pagination #pagination [clrDgPageSize]="10">
<clr-dg-page-size [clrPageSizeOptions]="[10,20,50,100]">Users per page</clr-dg-page-size>
{{pagination.firstItem + 1}} - {{pagination.lastItem + 1}}
of {{pagination.totalItems}} users
</clr-dg-pagination>
</clr-dg-footer>
</clr-datagrid> </ng-container>
<ng-template #showInfo>
<div class="alert alert-info" role="alert">
<div class="alert-items">
<div class="alert-item static">
<span class="alert-text">
<clr-icon class="alert-icon" shape="info-circle"></clr-icon>
Data could be found. Loading..
<clr-spinner [clrMedium]="true">Loading ...</clr-spinner>
</span>
</div>
</div>
</div>
</ng-template><ng-container *ngIf="isCardview">
<div *ngIf="product; else showInfo" class="clr-row clr-align-items-start clr-justify-content-start">
<div *ngFor="let app of product| filter:search; let index = i" class="clr-col-auto" >
<div class="clr-row">
<div class="clr-col-lg-12 clr-col-md-4 clr-col-sm-4 clr-col-12" style="width: 410px;">
<div class="card" style="padding: 10px; "[style.background-color]="cardmodal.cardColor !== '' ? cardmodal.cardColor : 'white'">
<div class="card-body" style="display: grid; grid-template-columns: repeat(13, 1fr); grid-template-rows: repeat(7, 1fr); gap: 5px;">
<ng-container *ngFor="let item of dashboardArray">
<div [style.gridColumn]="item.x + 1" [style.gridRow]="item.y + 1" [style.gridColumnEnd]="item.x + item.cols + 1"
[style.gridRowEnd]="item.y + item.rows + 1">
<div *ngIf="item.name === 'textField'" class="title-card card-title"
[style.text-align]="item.alignment !== '' ? item.alignment : 'left'"
[style.line-height]="item.textlineheight !== '' ? item.textlineheight : '1'"
[style.font-family]="item.fontName !== '' ? item.fontName : 'Metropolis'"
[style.font-size]="item.fontSize !== '' ? item.fontSize : '100%'"
[style.font-style]="item.italic == true ? 'Italic' : 'normal'"
[style.font-weight]="item.bold == true ? 'bold' : 'normal'" [style.text-decoration]="(item.underline && item.strikethough) ? 'underline line-through' :
(item.underline ? 'underline' : (item.strikethough ? 'line-through' : 'none'))"
[style.background-color]="item.backgroundcolor !== '' ? item.backgroundcolor : 'white'"
[style.color]="item.textcolor !== '' ? item.textcolor : 'black'" [style.background-color]="item.conditionValue == app[transform(item.fieldtext) ] ? item.conditionbackgroundcolor : item.backgroundcolor"
[style.color]="item.conditionValue == app[transform(item.fieldtext) ] ? item.conditiontextcolor : item.textcolor">
{{beforeText(item.fieldtext)}}
{{ app[transform(item.fieldtext) ] }}
{{afterText(item.fieldtext)}}
</div>
<div *ngIf="item.name === 'dateField'" class="title-card card-title"
[style.text-align]="item.alignment !== '' ? item.alignment : 'left'"
[style.line-height]="item.textlineheight !== '' ? item.textlineheight : '1'"
[style.font-family]="item.fontName !== '' ? item.fontName : 'Metropolis'"
[style.font-size]="item.fontSize !== '' ? item.fontSize : '100%'"
[style.font-style]="item.italic == true ? 'Italic' : 'normal'"
[style.font-weight]="item.bold == true ? 'bold' : 'normal'" [style.text-decoration]="(item.underline && item.strikethough) ? 'underline line-through' :
(item.underline ? 'underline' : (item.strikethough ? 'line-through' : 'none'))"
[style.background-color]="item.backgroundcolor !== '' ? item.backgroundcolor : 'white'"
[style.color]="item.textcolor !== '' ? item.textcolor : 'black'" [style.background-color]="item.conditionValue == app[transform(item.fieldtext) ] ? item.conditionbackgroundcolor : item.backgroundcolor"
[style.color]="item.conditionValue == app[transform(item.fieldtext) ] ? item.conditiontextcolor : item.textcolor">
{{beforeText(item.fieldtext)}}
{{ app[transform(item.fieldtext) ] | date}}
{{afterText(item.fieldtext)}}
</div>
<div *ngIf="item.name === 'numberField'" class="title-card card-title"
[style.text-align]="item.alignment !== '' ? item.alignment : 'left'"
[style.line-height]="item.textlineheight !== '' ? item.textlineheight : '1'"
[style.font-family]="item.fontName !== '' ? item.fontName : 'Metropolis'"
[style.font-size]="item.fontSize !== '' ? item.fontSize : '100%'"
[style.font-style]="item.italic == true ? 'Italic' : 'normal'"
[style.font-weight]="item.bold == true ? 'bold' : 'normal'" [style.text-decoration]="(item.underline && item.strikethough) ? 'underline line-through' :
(item.underline ? 'underline' : (item.strikethough ? 'line-through' : 'none'))"
[style.background-color]="item.backgroundcolor !== '' ? item.backgroundcolor : 'white'"
[style.color]="item.textcolor !== '' ? item.textcolor : 'black'" [style.background-color]="item.conditionValue == app[transform(item.fieldtext) ] ? item.conditionbackgroundcolor : item.backgroundcolor"
[style.color]="item.conditionValue == app[transform(item.fieldtext) ] ? item.conditiontextcolor : item.textcolor">
{{beforeText(item.fieldtext)}}
{{ app[transform(item.fieldtext) ]}}
{{afterText(item.fieldtext)}}
</div>
<div *ngIf="item.name === 'Line'" class="title-card card-title"
[style.text-align]="item.alignment !== '' ? item.alignment : 'left'"
[style.line-height]="item.textlineheight !== '' ? item.textlineheight : '1'"
[style.font-family]="item.fontName !== '' ? item.fontName : 'Metropolis'"
[style.font-size]="item.fontSize !== '' ? item.fontSize : '100%'"
[style.font-style]="item.italic == true ? 'Italic' : 'normal'"
[style.font-weight]="item.bold == true ? 'bold' : 'normal'" [style.text-decoration]="(item.underline && item.strikethough) ? 'underline line-through' :
(item.underline ? 'underline' : (item.strikethough ? 'line-through' : 'none'))"
[style.background-color]="item.backgroundcolor !== '' ? item.backgroundcolor : 'white'"
[style.color]="item.textcolor !== '' ? item.textcolor : 'black'">
<hr>
</div>
<div *ngIf="item.name === 'Icon'" class="icon-card"
[style.text-align]="item.alignment !== '' ? item.alignment : 'left'"
[style.line-height]="item.textlineheight !== '' ? item.textlineheight : '1'"
[style.font-family]="item.fontName !== '' ? item.fontName : 'Metropolis'"
[style.font-size]="item.fontSize !== '' ? item.fontSize : '100%'"
[style.font-style]="item.italic == true ? 'Italic' : 'normal'"
[style.font-weight]="item.bold == true ? 'bold' : 'normal'" [style.text-decoration]="(item.underline && item.strikethough) ? 'underline line-through' :
(item.underline ? 'underline' : (item.strikethough ? 'line-through' : 'none'))"
[style.background-color]="item.backgroundcolor !== '' ? item.backgroundcolor : 'white'"
[style.color]="item.textcolor !== '' ? item.textcolor : 'black'"
>
<clr-icon [attr.shape]="item.iconName"></clr-icon>
</div>
<div *ngIf="item.name == 'Image'"
[style.text-align]="item.alignment !== '' ? item.alignment : 'left'"
[style.line-height]="item.textlineheight !== '' ? item.textlineheight : '1'"
[style.font-family]="item.fontName !== '' ? item.fontName : 'Metropolis'"
[style.font-size]="item.fontSize !== '' ? item.fontSize : '100%'"
[style.font-style]="item.italic == true ? 'Italic' : 'normal'"
[style.font-weight]="item.bold == true ? 'bold' : 'normal'" [style.text-decoration]="(item.underline && item.strikethough) ? 'underline line-through' :
(item.underline ? 'underline' : (item.strikethough ? 'line-through' : 'none'))"
[style.background-color]="item.backgroundcolor !== '' ? item.backgroundcolor : 'white'"
[style.color]="item.textcolor !== '' ? item.textcolor : 'black'"
[style.background-color]="item.conditionValue == app[transform(item.fieldtext) ] ? item.conditionbackgroundcolor : item.backgroundcolor"
[style.color]="item.conditionValue == app[transform(item.fieldtext) ] ? item.conditiontextcolor : item.textcolor"> <img id="filePreview" [src]="item.imageURL" alt="File Preview"
[style.width]="item.imagewidth !== '' ? item.imagewidth + 'px' : '100px'"
[style.height]="item.imagewidth !== '' ? item.imagewidth + 'px' : '100px'"></div>
</div>
</ng-container>
</div>
</div>
</div>
</div>
</div>
</div>
</ng-container>
</div>
<clr-modal [(clrModalOpen)]="rsModalcustomer_address" [clrModalSize]="'xl'" [clrModalStaticBackdrop]="true">
<div class="modal-body">
<textarea class="form-control" style="width:100%; height: 400px;" readonly>{{rowSelected}}</textarea>
</div></clr-modal>
<!-- // EDIT DATA......... -->
<clr-modal [(clrModalOpen)]="modalEdit" [clrModalSize]="'lg'" [clrModalStaticBackdrop]="true">
<h3 class="modal-title">Update Customer Information
<!--update button -->
</h3>
<div class="modal-body" *ngIf="rowSelected.id">
<h2 class="heading">{{rowSelected.id}}</h2>
<!-- button -->
<form >
<div class="clr-row">
<div class="clr-col-sm-12">
<label>Customer Name</label>
<input class="clr-input" type="text" [(ngModel)]="rowSelected.customer_name" name="customer_name" />
</div>
<div class="clr-col-sm-12">
<label>Contact Person</label>
<input class="clr-input" type="text" [(ngModel)]="rowSelected.contact_person" name="contact_person" />
</div>
<div class="clr-col-sm-12">
<label> Email Address</label>
<input id="name" class="clr-input" type="email"
[(ngModel)]="rowSelected.email_address " name="email_address" pattern="[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$">
<div *ngIf="rowSelected.email_address && !isValidemail_address(rowSelected.email_address )" class="error_mess">
* Email must be a valid email address.
</div> </div>
<div class="clr-col-sm-12">
<label> Phone Number</label>
<input id="name" class="clr-input" type="Text" [(ngModel)]="rowSelected.phone_number " name="phone_number" pattern="((\\+)?([1-9]{2}))?[1-9]{1}[0-9]{9}$" />
<div *ngIf="rowSelected.phone_number && !isValidPhone_number(rowSelected.phone_number)" class="error_mess">
* Please Follow your pattern,+91 Enter 10 digit Mobile Number.
</div> </div>
<div class="clr-col-sm-12">
<label> Customer Address</label>
<input id="name" type="Text" class="form-control" style="border: none; outline: none; height:33px !important;" [(ngModel)]="rowSelected.customer_address" name=" customer_address " /> </div>
<div class="clr-col-sm-12">
<label> Deployment Type</label>
<select name="deployment_type" [(ngModel)]="rowSelected.deployment_type">
<option [value]="null">Selectdeployment_type
</option>
<option> Demo_could </option>
<option> On_premise </option>
</select> </div>
<!-- multiselect checkbox field start -->
<div class="clr-col-sm-12">
<label> Select Objective</label>
<div class="clr-form-control" style="margin-top: 5px;margin-bottom: 10px;">
<div class="clr-control-container">
<div class="clr-checkbox-wrapper"> <input type="checkbox" id="busbar_monitoring" name="busbar_monitoring" [(ngModel)]="rowSelected.busbar_monitoring" class="clr-checkbox" />
<label for="busbar_monitoring" class="clr-control-label"> busbar_monitoring</label> </div>
<div class="clr-checkbox-wrapper"> <input type="checkbox" id="active_energy" name="active_energy" [(ngModel)]="rowSelected.active_energy" class="clr-checkbox" />
<label for="active_energy" class="clr-control-label"> active_energy</label> </div>
<div class="clr-checkbox-wrapper"> <input type="checkbox" id="dg_monitoring_with_fuel" name="dg_monitoring_with_fuel" [(ngModel)]="rowSelected.dg_monitoring_with_fuel" class="clr-checkbox" />
<label for="dg_monitoring_with_fuel" class="clr-control-label"> dg_monitoring_with_fuel</label> </div>
<div class="clr-checkbox-wrapper"> <input type="checkbox" id="dg_monitoring_without_fuel" name="dg_monitoring_without_fuel" [(ngModel)]="rowSelected.dg_monitoring_without_fuel" class="clr-checkbox" />
<label for="dg_monitoring_without_fuel" class="clr-control-label"> dg_monitoring_without_fuel</label> </div>
<div class="clr-checkbox-wrapper"> <input type="checkbox" id="ups_monitoring" name="ups_monitoring" [(ngModel)]="rowSelected.ups_monitoring" class="clr-checkbox" />
<label for="ups_monitoring" class="clr-control-label"> ups_monitoring</label> </div>
<div class="clr-checkbox-wrapper"> <input type="checkbox" id="apfc_panel_monitoring" name="apfc_panel_monitoring" [(ngModel)]="rowSelected.apfc_panel_monitoring" class="clr-checkbox" />
<label for="apfc_panel_monitoring" class="clr-control-label"> apfc_panel_monitoring</label> </div>
<div class="clr-checkbox-wrapper"> <input type="checkbox" id="lt_panel_monitoring" name="lt_panel_monitoring" [(ngModel)]="rowSelected.lt_panel_monitoring" class="clr-checkbox" />
<label for="lt_panel_monitoring" class="clr-control-label"> lt_panel_monitoring</label> </div>
<div class="clr-checkbox-wrapper"> <input type="checkbox" id="ht_panel_monitoring" name="ht_panel_monitoring" [(ngModel)]="rowSelected.ht_panel_monitoring" class="clr-checkbox" />
<label for="ht_panel_monitoring" class="clr-control-label"> ht_panel_monitoring</label> </div>
<div class="clr-checkbox-wrapper"> <input type="checkbox" id="compressed_air__gas_monitoring" name="compressed_air__gas_monitoring" [(ngModel)]="rowSelected.compressed_air__gas_monitoring" class="clr-checkbox" />
<label for="compressed_air__gas_monitoring" class="clr-control-label"> compressed_air__gas_monitoring</label> </div>
<div class="clr-checkbox-wrapper"> <input type="checkbox" id="compressed_air_lpg_o2_n2_co2" name="compressed_air_lpg_o2_n2_co2" [(ngModel)]="rowSelected.compressed_air_lpg_o2_n2_co2" class="clr-checkbox" />
<label for="compressed_air_lpg_o2_n2_co2" class="clr-control-label"> compressed_air_lpg_o2_n2_co2</label> </div>
<div class="clr-checkbox-wrapper"> <input type="checkbox" id="water_management_water_monitoring" name="water_management_water_monitoring" [(ngModel)]="rowSelected.water_management_water_monitoring" class="clr-checkbox" />
<label for="water_management_water_monitoring" class="clr-control-label"> water_management_water_monitoring</label> </div>
<div class="clr-checkbox-wrapper"> <input type="checkbox" id="water_management_stp_etp" name="water_management_stp_etp" [(ngModel)]="rowSelected.water_management_stp_etp" class="clr-checkbox" />
<label for="water_management_stp_etp" class="clr-control-label"> water_management_stp_etp</label> </div>
</div>
</div>
</div>
<!-- multiselect checkbox field end -->
</div>
<!-- form code start -->
<div *ngIf="checkFormCode">
<h4 style="font-weight: 300;display: inline;">Extension</h4>
<br>
<hr>
<div class="clr-row">
<div class="clr-col-4" *ngFor="let field of additionalFieldsFromBackend">
<ng-container *ngIf="field.formCode === formcode" [ngSwitch]="field.fieldType">
<!-- Text Input --> <label *ngSwitchCase="'text'">{{ field.fieldName }}</label>
<input *ngSwitchCase="'text'" [type]="field.fieldType" name="{{ field.extValue }}" [(ngModel)]="rowSelected[field.extValue]" class="clr-input" />
<!-- Date Input --> <label *ngSwitchCase="'date'">{{ field.fieldName }}</label>
<input *ngSwitchCase="'date'" [type]="field.fieldType" name="{{ field.extValue }}" [(ngModel)]="rowSelected[field.extValue]" class="clr-input" />
<!-- Textarea --> <label *ngSwitchCase="'textarea'">{{ field.fieldName }}</label>
<textarea *ngSwitchCase="'textarea'" name="{{ field.extValue }}" [(ngModel)]="rowSelected[field.extValue]" col="10" row="2"></textarea>
<!-- Checkbox --> <label *ngSwitchCase="'checkbox'">{{ field.fieldName }}</label><br>
<input *ngSwitchCase="'checkbox'" [type]="field.fieldType" name="{{ field.extValue }}" [(ngModel)]="rowSelected[field.extValue]" class="clr-checkbox" />
</ng-container>
</div>
</div>
</div>
<!-- form code end --> <div class="modal-footer">
<button type="button" class="btn btn-outline" (click)="modalEdit = false">Cancel</button>
<button type="submit" class="btn btn-primary" (click)="onUpdate(rowSelected.id)">Update</button>
</div>
</form>
</div>
</clr-modal>
<clr-modal [(clrModalOpen)]="modaldelete" [clrModalSize]="'lg'" [clrModalStaticBackdrop]="true">
<div class="modal-body" *ngIf="rowSelected.id">
<h1 class="delete">Are You Sure Want to delete?</h1>
<h2 class="heading">{{rowSelected.id}}</h2>
<div class="modal-footer">
<button type="button" class="btn btn-outline" (click)="modaldelete = false">Cancel</button>
<button type="button" (click)="delete(rowSelected.id)" class="btn btn-primary" >Delete</button>
</div>
</div>
</clr-modal>
<!-- ADD FORM ..... -->
<clr-modal [(clrModalOpen)]="modalAdd" [clrModalSize]="'lg'" [clrModalStaticBackdrop]="true">
<h3 class="modal-title">Add Customer Information
<!-- aeroplane icon -->
&nbsp; &nbsp; &nbsp; &nbsp;
<a *ngIf="userrole?.includes('ADMIN')" style="float: right;" href="javascript:void(0)" role="tooltip" aria-haspopup="true"
class="tooltip tooltip-sm tooltip-bottom-left">
<a id="build_extension" [routerLink]="['../extension/all']" [queryParams]="{ formCode: 'Customer_information_formCode' }">
<clr-icon shape="airplane" size="32"></clr-icon>
</a>
<span class="tooltip-content">Form Extension</span>
</a> </h3>
<div class="modal-body">
<form [formGroup]="entryForm" >
<div class="clr-row" style="height: fit-content;">
<div class="clr-col-sm-12">
<label> Customer Name</label>
<input class="clr-input" type="text" formControlName="customer_name" />
</div>
<div class="clr-col-sm-12">
<label> Contact Person</label>
<input class="clr-input" type="text" formControlName="contact_person" />
</div>
<div class="clr-col-sm-12">
<label> Email Address</label>
<input class="clr-input" type="email" formControlName="email_address" pattern="[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$">
<div *ngIf="entryForm.controls['email_address'].errors" class="error_mess">
<div *ngIf="entryForm.controls['email_address'].hasError('pattern')" class="error_mess">* Email must be a valid email address
</div> </div>
</div>
<div class="clr-col-sm-12">
<label> Phone Number</label>
<input class="clr-input" type="text" formControlName="phone_number" pattern="((\+)?([1-9]{2}))?[1-9]{1}[0-9]{9}$" />
<div *ngIf="submitted && entryForm.controls['phone_number'].errors" class="error_mess">
<div *ngIf="submitted && entryForm.controls['phone_number'].hasError('pattern')" class="error_mess">* Please Follow your pattern,+91 Enter 10 digit Mobile Number.
</div> </div> </div>
<div class="clr-col-sm-12">
<label>Customer Address</label>
<input class="form-control" type="Text" formControlName="customer_address" style="border: none; outline: none; height:33px !important;" />
</div>
<div class="clr-col-sm-12">
<label>Deployment Type</label>
<select formControlName="deployment_type">
<option [value]="null">Select Deployment Type </option>
<option> Demo_could </option>
<option> On_premise </option>
</select></div>
<!-- multiselect checkbox field start -->
<div class="clr-col-sm-12">
<label> Select Objective</label>
<div class="clr-form-control" style="margin-top: 5px;margin-bottom: 10px;">
<div class="clr-control-container">
<div class="clr-checkbox-wrapper">
<input type="checkbox" id="active_energy" formControlName="active_energy" class="clr-checkbox" />
<label for="active_energy" class="clr-control-label">active_energy</label> </div>
<div class="clr-checkbox-wrapper">
<input type="checkbox" id="dg_monitoring_with_fuel" formControlName="dg_monitoring_with_fuel" class="clr-checkbox" />
<label for="dg_monitoring_with_fuel" class="clr-control-label">dg_monitoring_with_fuel</label> </div>
<div class="clr-checkbox-wrapper">
<input type="checkbox" id="water_management_stp_etp" formControlName="water_management_stp_etp" class="clr-checkbox" />
<label for="water_management_stp_etp" class="clr-control-label">water_management_stp_etp</label> </div>
<div class="clr-checkbox-wrapper">
<input type="checkbox" id="dg_monitoring_without_fuel" formControlName="dg_monitoring_without_fuel" class="clr-checkbox" />
<label for="dg_monitoring_without_fuel" class="clr-control-label">dg_monitoring_without_fuel</label> </div>
<div class="clr-checkbox-wrapper">
<input type="checkbox" id="ups_monitoring" formControlName="ups_monitoring" class="clr-checkbox" />
<label for="ups_monitoring" class="clr-control-label">ups_monitoring</label> </div>
<div class="clr-checkbox-wrapper">
<input type="checkbox" id="apfc_panel_monitoring" formControlName="apfc_panel_monitoring" class="clr-checkbox" />
<label for="apfc_panel_monitoring" class="clr-control-label">apfc_panel_monitoring</label> </div>
<div class="clr-checkbox-wrapper">
<input type="checkbox" id="busbar_monitoring" formControlName="busbar_monitoring" class="clr-checkbox" />
<label for="busbar_monitoring" class="clr-control-label">busbar_monitoring</label> </div>
<div class="clr-checkbox-wrapper">
<input type="checkbox" id="lt_panel_monitoring" formControlName="lt_panel_monitoring" class="clr-checkbox" />
<label for="lt_panel_monitoring" class="clr-control-label">lt_panel_monitoring</label> </div>
<div class="clr-checkbox-wrapper">
<input type="checkbox" id="ht_panel_monitoring" formControlName="ht_panel_monitoring" class="clr-checkbox" />
<label for="ht_panel_monitoring" class="clr-control-label">ht_panel_monitoring</label> </div>
<div class="clr-checkbox-wrapper">
<input type="checkbox" id="compressed_air__gas_monitoring" formControlName="compressed_air__gas_monitoring" class="clr-checkbox" />
<label for="compressed_air__gas_monitoring" class="clr-control-label">compressed_air__gas_monitoring</label> </div>
<div class="clr-checkbox-wrapper">
<input type="checkbox" id="compressed_air_lpg_o2_n2_co2" formControlName="compressed_air_lpg_o2_n2_co2" class="clr-checkbox" />
<label for="compressed_air_lpg_o2_n2_co2" class="clr-control-label">compressed_air_lpg_o2_n2_co2</label> </div>
<div class="clr-checkbox-wrapper">
<input type="checkbox" id="water_management_water_monitoring" formControlName="water_management_water_monitoring" class="clr-checkbox" />
<label for="water_management_water_monitoring" class="clr-control-label">water_management_water_monitoring</label> </div>
</div> </div> </div>
<!-- multiselect checkbox field end -->
</div>
<!-- form code start -->
<div *ngIf="checkFormCode">
<h4 style="font-weight: 300;display: inline;">Extension</h4>
<br>
<hr>
<div class="clr-row">
<div class="clr-col-4" *ngFor="let field of additionalFieldsFromBackend">
<ng-container *ngIf="field.formCode === formcode" [ngSwitch]="field.fieldType">
<!-- Text Input --> <label *ngSwitchCase="'text'">{{ field.fieldName }}</label>
<input *ngSwitchCase="'text'" [type]="field.fieldType" [formControlName]="field.extValue"
class="clr-input" />
<!-- Date Input --> <label *ngSwitchCase="'date'">{{ field.fieldName }}</label>
<input *ngSwitchCase="'date'" [type]="field.fieldType" [formControlName]="field.extValue"
class="clr-input" />
<!-- Textarea --> <label *ngSwitchCase="'textarea'">{{ field.fieldName }}</label>
<textarea *ngSwitchCase="'textarea'" [formControlName]="field.extValue" col="10" row="2"></textarea>
<!-- Checkbox --> <label *ngSwitchCase="'checkbox'">{{ field.fieldName }}</label><br>
<input *ngSwitchCase="'checkbox'" [type]="field.fieldType" [formControlName]="field.extValue"
class="clr-checkbox" />
</ng-container>
</div>
</div>
</div>
<!-- form code end --> <div class="modal-footer">
<button type="button" class="btn btn-outline" (click)="modalAdd = false">Cancel</button>
<button type="submit" class="btn btn-primary" (click)="onSubmit()">ADD</button>
</div>
</form>
</div>
</clr-modal>
<!-- htmlpopup -->
<clr-modal [(clrModalOpen)]="modalInsertReset_btn" [clrModalSize]="'xl'" [clrModalStaticBackdrop]="true">
<h3 class="modal-title">Insert Reset_btn</h3>
<div class="modal-body">
<form [formGroup]="insertFormReset_btn" (ngSubmit)="onSubmitInsertReset_btn()">
<div class="clr-row">
<div class="clr-col-md-4 clr-col-sm-12">
<label for="customer_name">Customer_Name:</label>
<input type="text" id="customer_name" formControlName="customer_name" name="customer_name" readonly class="clr-input">
</div>
<div class="clr-col-md-4 clr-col-sm-12">
<label for="email_address">Email_Address:</label>
<input type="text" id="email_address" formControlName="email_address" name="email_address" readonly class="clr-input">
</div>
<div class="clr-col-md-4 clr-col-sm-12">
<label for="contact_person">Contact_Person:</label>
<input type="text" id="contact_person" formControlName="contact_person" name="contact_person" readonly class="clr-input">
</div>
<div class="clr-col-md-4 clr-col-sm-12">
<label for="phone_number">Phone_Number:</label>
<input type="text" id="phone_number" formControlName="phone_number" name="phone_number" readonly class="clr-input">
</div>
<div class="clr-col-md-4 clr-col-sm-12">
<label for="select_objective">Select_Objective:</label>
<input type="text" id="select_objective" formControlName="select_objective" name="select_objective" readonly class="clr-input">
</div>
<div class="clr-col-md-4 clr-col-sm-12">
<label for="reset_btn">Reset_btn:</label>
<input type="text" id="reset_btn" formControlName="reset_btn" name="reset_btn" readonly class="clr-input">
</div>
<div class="clr-col-md-4 clr-col-sm-12">
<label for="customer_address">Customer_Address:</label>
<input type="text" id="customer_address" formControlName="customer_address" name="customer_address" readonly class="clr-input">
</div>
<div class="clr-col-md-4 clr-col-sm-12">
<label for="deployment_type">Deployment_Type:</label>
<input type="text" id="deployment_type" formControlName="deployment_type" name="deployment_type" readonly class="clr-input">
</div>
</div>
<br>
<div class="modal-footer">
<button type="button" class="btn btn-outline" (click)="modalInsertReset_btn = false">Cancel</button>
<button type="submit" class="btn btn-primary" >Insert</button>
</div>
</form>
</div>
</clr-modal>

View File

@ -0,0 +1,78 @@
//@import "../../../../assets/scss/var";
.s-info-bar {
display: flex;
flex-direction: row;
justify-content: space-between;
button {
outline: none;
}
}
.delete,.heading{
text-align: center;
color: red;
}
.entry-pg {
width: 750px;
}
.button1::after {
content: none;
}
.button1:hover::after {
content: "ADD ROWS";
}
.section {
background-color: #dddddd;
height: 40px;
}
.section p {
//color: white;
padding: 10px;
font-size: 18px;
}
.clr-input {
color: #212529;
border: 1px solid #ced4da;
border-radius: 0.25rem;
padding: 0.75rem 0.75rem;
margin-top: 3px;
width: 100%;
margin-bottom: 10px;
}
.clr-file {
color: #212529;
border: 1px solid #ced4da;
border-radius: 0.25rem;
//padding: 0.6rem 0.75rem;
margin-top: 3px;
width: 100%;
margin-bottom: 10px;
}
.center {
text-align: center;
}
select{
width: 100%;
margin-top: 3px;
padding: 5px 5px;
border: 1px solid #ccc;
border-radius: 4px;
}
input[type=text],[type=date],[type=number],textarea {
width: 100%;
padding: 15px 15px;
background-color:rgb(255, 255, 255);
// margin: 8px 0;
display: inline-block;
border: 1px solid #ccc;
border-radius: 4px;
box-sizing: border-box;
}
.error_mess {
color: red;
}

View File

@ -0,0 +1,501 @@
import { Component, OnInit } from '@angular/core';
import { ToastrService } from 'ngx-toastr';
import { AlertService } from 'src/app/services/alert.service';
import { Customer_informationservice} from './Customer_information.service';
import { AbstractControl, FormArray, FormBuilder, FormGroup, Validators, ValidationErrors } from '@angular/forms';
import { ExtensionService } from 'src/app/services/fnd/extension.service';
import { DashboardContentModel2 } from 'src/app/models/builder/dashboard';
import { Customer_informationcardvariable } from './Customer_information_cardvariable';
import { UserInfoService } from 'src/app/services/user-info.service';
declare var JsBarcode: any;
@Component({
selector: 'app-Customer_information',
templateUrl: './Customer_information.component.html',
styleUrls: ['./Customer_information.component.scss']
})
export class Customer_informationComponent implements OnInit {
cardButton = Customer_informationcardvariable.cardButton;
cardmodeldata = Customer_informationcardvariable.cardmodeldata;
public dashboardArray: DashboardContentModel2[];
isCardview = Customer_informationcardvariable.cardButton;
cardmodal; changeView(){
this.isCardview = !this.isCardview;
}
beforeText(fieldtext: string): string { // Extract the text before the first '<'
const index = fieldtext.indexOf('<');
return index !== -1 ? fieldtext.substring(0, index) : fieldtext;
}
afterText(fieldtext: string): string { // Extract the text after the last '>'
const index = fieldtext.lastIndexOf('>');
return index !== -1 ? fieldtext.substring(index + 1) : '';
}
transform(fieldtext: string): string {
const match = fieldtext.match(/<([^>]*)>/);
return match ? match[1] : ''; // Extract the text between '<' and '>'
}
userrole;
rowSelected :any= {};
modaldelete=false;
modalEdit=false;
modalAdd= false;
public entryForm: FormGroup;
loading = false;
product;
modalOpenedforNewLine = false;
newLine:any;
additionalFieldsFromBackend: any[] = [];
formcode = 'Customer_information_formCode'
tableName = 'Customer_information'; checkFormCode; selected: any[] = []; constructor(
private extensionService: ExtensionService,
private userInfoService:UserInfoService,
private mainService:Customer_informationservice,
private alertService: AlertService,
private toastr: ToastrService,
private _fb: FormBuilder,
) { }
// component button
public insertFormReset_btn: FormGroup;
ngOnInit(): void {
if(this.cardmodeldata !== ''){
this.cardmodal = JSON.parse(this.cardmodeldata);
this.dashboardArray = this.cardmodal.dashboard.slice();
console.log(this.dashboardArray)
}
this.userrole=this.userInfoService.getRoles();
this.getData();
this.entryForm = this._fb.group({
customer_name : [null],
contact_person : [null],
email_address : [null],
phone_number: ['+91'],
customer_address : [null],
deployment_type : [null],
apfc_panel_monitoring:[false],
active_energy:[false],
dg_monitoring_with_fuel:[false],
dg_monitoring_without_fuel:[false],
water_management_stp_etp:[false],
ups_monitoring:[false],
busbar_monitoring:[false],
lt_panel_monitoring:[false],
ht_panel_monitoring:[false],
compressed_air__gas_monitoring:[false],
compressed_air_lpg_o2_n2_co2:[false],
water_management_water_monitoring:[false],
}); // component_button200
// inser code start
this.insertFormReset_btn = this._fb.group({
customer_name: 'text',
email_address: 'email',
contact_person: 'text',
phone_number: 'phone',
select_objective: 'checkbox',
reset_btn: 'text',
customer_address: 'Paragraph',
deployment_type: 'select',
});
// insert code end
// form code start
this.extensionService.getJsonObjectsByFormCodeList(this.formcode).subscribe(data => {
console.log(data);
const jsonArray = data.map((str) => JSON.parse(str));
this.additionalFieldsFromBackend = jsonArray;
this.checkFormCode = this.additionalFieldsFromBackend.some(field => field.formCode === "Customer_information_formCode");
console.log(this.checkFormCode);
console.log(this.additionalFieldsFromBackend);
if (this.additionalFieldsFromBackend && this.additionalFieldsFromBackend.length > 0) {
this.additionalFieldsFromBackend.forEach(field => {
if (field.formCode === this.formcode) {
if (!this.entryForm.contains(field.extValue)) {
// Add the control only if it doesn't exist in the form
this.entryForm.addControl(field.extValue, this._fb.control(field.fieldValue));
}
}
});
}
});
console.log(this.entryForm.value);
// form code end
}
error;
getData() {
this.mainService.getAll().subscribe((data) => {
console.log(data);
this.product = data;
if(this.product.length==0){
this.error="No Data Available"
}
},(error) => {
console.log(error);
if(error){
this.error="Server Error";
}
});
}
onEdit(row) {
this.rowSelected = row;
this.modalEdit = true;
}
onDelete(row) {
this.rowSelected = row;
this.modaldelete=true;
}
delete(id)
{
this.modaldelete = false;
console.log("in delete "+id);
this.mainService.delete(id).subscribe(
(data) => {
console.log(data);
this.ngOnInit();
if (data) { this.toastr.success('Deleted successfully'); }
});
}
onUpdate(id) {
this.modalEdit = false;
//console.log("in update");
console.log("id " + id);
console.log(this.rowSelected);
//console.log("out update");
this.mainService.update(id, this.rowSelected).subscribe(
(data) => {
console.log(data);
if (data || data.status >= 200 && data.status <= 299) {
this.toastr.success("Update Successfully");
}
setTimeout(() => {
this.ngOnInit();
}, 500);
}, (error) => {
console.log(error);
if (error.status >= 200 && error.status <= 299) {
// this.toastr.success("update Succesfully");
}
if (error.status >= 400 && error.status <= 499) {
this.toastr.error("Not Updated");
}
if (error.status >= 500 && error.status <= 599) {
this.toastr.error("Not Updated");
}
});
setTimeout(() => {
this.ngOnInit();
}, 500);
}
onCreate() {
this.modalAdd=false;
this.mainService.create(this.entryForm.value).subscribe(
(data) => {
console.log(data);
if (data || data.status >= 200 && data.status <= 299) {
this.toastr.success("Added Successfully");
}
setTimeout(() => {
this.ngOnInit();
}, 500);
}, (error) => {
console.log(error);
if (error.status >= 200 && error.status <= 299) {
// this.toastr.success("Added Succesfully");
}
if (error.status >= 400 && error.status <= 499) {
this.toastr.error("Not Added");
}
if (error.status >= 500 && error.status <= 599) {
this.toastr.error("Not Added");
}
});
setTimeout(() => {
this.ngOnInit();
}, 500);
}
goToAdd(row) {
this.modalAdd = true; this.submitted = false;
}
submitted = false;
onSubmit() {
console.log(this.entryForm.value);
this.submitted = true;
if (this.entryForm.invalid) {
return;
}this.onCreate();
}
isValidemail_address(email: string): boolean {
const emailPattern = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
return emailPattern.test(email); }
isValidPhone_number(phone: string): boolean {
const phonePattern = /^(\+[1-9][0-9]{0,2})?[1-9][0-9]{9}$/;
return phonePattern.test(phone);
}
rsModalcustomer_address = false;
goToReplaceStringcustomer_address (row){
this.rowSelected = row; this.rsModalcustomer_address =true; }
// updateaction
// insert button
modalInsertReset_btn = false;
goToInsertReset_btn() {
this.modalInsertReset_btn=true;
}
onSubmitInsertReset_btn() {
console.log(this.insertFormReset_btn.value);
this.submitted=true;
if (this.insertFormReset_btn.invalid) {
return;
}
this.onInsertReset_btn();
}
onInsertReset_btn() {
this.modalInsertReset_btn=false;
this.mainService.insertReset_btnCustomer_information(this.insertFormReset_btn.value).subscribe(data => {
console.log('After add',data)
if (data.status >=200 && data.status <=209) {
this.toastr.success('Added successfully');
}
if (data && data.id != null) {
this.toastr.success('Added successfully');
} this.ngOnInit();
},(error) => {
console.error(error);
if ( error.status >= 200 && error.status <= 299) {
this.toastr.success("Update Successfully");
}
if ( error.status >= 400 && error.status <= 499) {
this.toastr.error("Update Failed");
}
if ( error.status >= 500 && error.status <= 599) {
this.toastr.error("Server Error");
}
this.ngOnInit();
});
this.insertFormReset_btn.reset();
}
// insert buuton code end
}

View File

@ -0,0 +1,54 @@
import { Injectable } from '@angular/core';
import { Observable } from "rxjs";
import { HttpClient, HttpHeaders, HttpParams, } from "@angular/common/http";
import { ApiRequestService } from "src/app/services/api/api-request.service";
import { environment } from 'src/environments/environment';
@Injectable({
providedIn: 'root'
})
export class Customer_informationservice{
private baseURL = "Customer_information/Customer_information" ; constructor(
private http: HttpClient,
private apiRequest: ApiRequestService,
) { }
getAll(page?: number, size?: number): Observable<any> {
return this.apiRequest.get(this.baseURL);
}
getById(id: number): Observable<any> {
const _http = this.baseURL + "/" + id;
return this.apiRequest.get(_http);
}
create(data: any): Observable<any> {
return this.apiRequest.post(this.baseURL, data);
}
update(id: number, data: any): Observable<any> {
const _http = this.baseURL + "/" + id;
return this.apiRequest.put(_http, data);
}
delete(id: number): Observable<any> {
const _http = this.baseURL + "/" + id;
return this.apiRequest.delete(_http);
}
// updateaction
// insert button code start
insertReset_btnCustomer_information(Customer_information: any): Observable<any> {
return this.apiRequest.post(`Customer_information/Customer_information/Customer_information_insert`, Customer_information);
}
}

View File

@ -0,0 +1,4 @@
export const Customer_informationcardvariable = {
"cardButton": false,
"cardmodeldata": ``
}

View File

@ -0,0 +1,402 @@
<ol class="breadcrumb breadcrumb-arrow font-trirong">
<li><a href="javascript://"> Generate Quote</a></li>
</ol>
<div class="dg-wrapper">
<div class="clr-row">
<div class="clr-col-8">
<h3>Generate Quote </h3>
</div>
<div class="clr-col-4" style="text-align: right;">
<button *ngIf="cardButton" id="add" class="btn btn-primary btn-icon" (click)="changeView()" >
<clr-icon *ngIf="!isCardview" shape="grid-view"></clr-icon> <clr-icon *ngIf="isCardview" shape="bars"></clr-icon>
</button>
<!-- button -->
<button id="add" class="btn btn-primary" (click)="goToAdd(product)" >
<clr-icon shape="plus"></clr-icon>ADD
</button>
</div></div>
<ng-container *ngIf="!isCardview"> <!-- GET ALL --> <clr-datagrid [clrDgLoading]="loading" [(clrDgSelected)]="selected">
<clr-dg-placeholder>
<ng-template #loadingSpinner>
<clr-spinner>Loading ... </clr-spinner>
</ng-template>
<div *ngIf="error;else loadingSpinner">{{error}}</div>
</clr-dg-placeholder>
<clr-dg-column [clrDgField]="' genrate_quote'"> <ng-container *clrDgHideableColumn="{hidden: false}"> Genrate Quote
</ng-container></clr-dg-column>
<clr-dg-column [clrDgField]="' package_300k'"> <ng-container *clrDgHideableColumn="{hidden: false}"> Package 300k
</ng-container></clr-dg-column>
<clr-dg-column [clrDgField]="' package_400k'"> <ng-container *clrDgHideableColumn="{hidden: false}"> Package 400k
</ng-container></clr-dg-column>
<clr-dg-column [clrDgField]="' package_500k'"> <ng-container *clrDgHideableColumn="{hidden: false}"> Package 500k
</ng-container></clr-dg-column>
<!-- who column -->
<clr-dg-column> <ng-container *clrDgHideableColumn="{hidden: false}">
<clr-icon shape="bars"></clr-icon> Action
</ng-container></clr-dg-column>
<!-- end -->
<clr-dg-row *clrDgItems="let user of product" [clrDgItem]="user">
<clr-dg-cell>{{user. genrate_quote }}</clr-dg-cell>
<clr-dg-cell>{{user. package_300k }}</clr-dg-cell>
<clr-dg-cell>{{user. package_400k }}</clr-dg-cell>
<clr-dg-cell>{{user. package_500k }}</clr-dg-cell>
<!-- who column -->
<clr-dg-cell>
<clr-signpost>
<span style="cursor: pointer;" clrSignpostTrigger><clr-icon shape="help" class="success" style="color: rgb(0, 130, 236);"></clr-icon></span>
<clr-signpost-content [clrPosition]="'left-middle'" *clrIfOpen>
<h5 style="margin-top: 0">Who Column</h5>
<div>Account ID: <code class="clr-code">{{user.accountId}}</code></div>
<div>Created At: <code class="clr-code">{{user.createdAt| date}}</code></div>
<div>Created By: <code class="clr-code">{{user.createdBy}}</code></div>
<div>Updated At: <code class="clr-code">{{user.updatedAt | date}}</code></div>
<div>Updated By: <code class="clr-code">{{user.updatedBy}}</code></div>
</clr-signpost-content>
</clr-signpost>
</clr-dg-cell>
<!-- who colmn -->
<clr-dg-action-overflow>
<button class="action-item" (click)="onEdit(user)">Edit</button>
<button class="action-item" (click)="onDelete(user)">Delete</button>
</clr-dg-action-overflow>
</clr-dg-row>
<clr-dg-footer>
<clr-dg-pagination #pagination [clrDgPageSize]="10">
<clr-dg-page-size [clrPageSizeOptions]="[10,20,50,100]">Users per page</clr-dg-page-size>
{{pagination.firstItem + 1}} - {{pagination.lastItem + 1}}
of {{pagination.totalItems}} users
</clr-dg-pagination>
</clr-dg-footer>
</clr-datagrid> </ng-container>
<ng-template #showInfo>
<div class="alert alert-info" role="alert">
<div class="alert-items">
<div class="alert-item static">
<span class="alert-text">
<clr-icon class="alert-icon" shape="info-circle"></clr-icon>
Data could be found. Loading..
<clr-spinner [clrMedium]="true">Loading ...</clr-spinner>
</span>
</div>
</div>
</div>
</ng-template><ng-container *ngIf="isCardview">
<div *ngIf="product; else showInfo" class="clr-row clr-align-items-start clr-justify-content-start">
<div *ngFor="let app of product| filter:search; let index = i" class="clr-col-auto" >
<div class="clr-row">
<div class="clr-col-lg-12 clr-col-md-4 clr-col-sm-4 clr-col-12" style="width: 410px;">
<div class="card" style="padding: 10px; "[style.background-color]="cardmodal.cardColor !== '' ? cardmodal.cardColor : 'white'">
<div class="card-body" style="display: grid; grid-template-columns: repeat(13, 1fr); grid-template-rows: repeat(7, 1fr); gap: 5px;">
<ng-container *ngFor="let item of dashboardArray">
<div [style.gridColumn]="item.x + 1" [style.gridRow]="item.y + 1" [style.gridColumnEnd]="item.x + item.cols + 1"
[style.gridRowEnd]="item.y + item.rows + 1">
<div *ngIf="item.name === 'textField'" class="title-card card-title"
[style.text-align]="item.alignment !== '' ? item.alignment : 'left'"
[style.line-height]="item.textlineheight !== '' ? item.textlineheight : '1'"
[style.font-family]="item.fontName !== '' ? item.fontName : 'Metropolis'"
[style.font-size]="item.fontSize !== '' ? item.fontSize : '100%'"
[style.font-style]="item.italic == true ? 'Italic' : 'normal'"
[style.font-weight]="item.bold == true ? 'bold' : 'normal'" [style.text-decoration]="(item.underline && item.strikethough) ? 'underline line-through' :
(item.underline ? 'underline' : (item.strikethough ? 'line-through' : 'none'))"
[style.background-color]="item.backgroundcolor !== '' ? item.backgroundcolor : 'white'"
[style.color]="item.textcolor !== '' ? item.textcolor : 'black'" [style.background-color]="item.conditionValue == app[transform(item.fieldtext) ] ? item.conditionbackgroundcolor : item.backgroundcolor"
[style.color]="item.conditionValue == app[transform(item.fieldtext) ] ? item.conditiontextcolor : item.textcolor">
{{beforeText(item.fieldtext)}}
{{ app[transform(item.fieldtext) ] }}
{{afterText(item.fieldtext)}}
</div>
<div *ngIf="item.name === 'dateField'" class="title-card card-title"
[style.text-align]="item.alignment !== '' ? item.alignment : 'left'"
[style.line-height]="item.textlineheight !== '' ? item.textlineheight : '1'"
[style.font-family]="item.fontName !== '' ? item.fontName : 'Metropolis'"
[style.font-size]="item.fontSize !== '' ? item.fontSize : '100%'"
[style.font-style]="item.italic == true ? 'Italic' : 'normal'"
[style.font-weight]="item.bold == true ? 'bold' : 'normal'" [style.text-decoration]="(item.underline && item.strikethough) ? 'underline line-through' :
(item.underline ? 'underline' : (item.strikethough ? 'line-through' : 'none'))"
[style.background-color]="item.backgroundcolor !== '' ? item.backgroundcolor : 'white'"
[style.color]="item.textcolor !== '' ? item.textcolor : 'black'" [style.background-color]="item.conditionValue == app[transform(item.fieldtext) ] ? item.conditionbackgroundcolor : item.backgroundcolor"
[style.color]="item.conditionValue == app[transform(item.fieldtext) ] ? item.conditiontextcolor : item.textcolor">
{{beforeText(item.fieldtext)}}
{{ app[transform(item.fieldtext) ] | date}}
{{afterText(item.fieldtext)}}
</div>
<div *ngIf="item.name === 'numberField'" class="title-card card-title"
[style.text-align]="item.alignment !== '' ? item.alignment : 'left'"
[style.line-height]="item.textlineheight !== '' ? item.textlineheight : '1'"
[style.font-family]="item.fontName !== '' ? item.fontName : 'Metropolis'"
[style.font-size]="item.fontSize !== '' ? item.fontSize : '100%'"
[style.font-style]="item.italic == true ? 'Italic' : 'normal'"
[style.font-weight]="item.bold == true ? 'bold' : 'normal'" [style.text-decoration]="(item.underline && item.strikethough) ? 'underline line-through' :
(item.underline ? 'underline' : (item.strikethough ? 'line-through' : 'none'))"
[style.background-color]="item.backgroundcolor !== '' ? item.backgroundcolor : 'white'"
[style.color]="item.textcolor !== '' ? item.textcolor : 'black'" [style.background-color]="item.conditionValue == app[transform(item.fieldtext) ] ? item.conditionbackgroundcolor : item.backgroundcolor"
[style.color]="item.conditionValue == app[transform(item.fieldtext) ] ? item.conditiontextcolor : item.textcolor">
{{beforeText(item.fieldtext)}}
{{ app[transform(item.fieldtext) ]}}
{{afterText(item.fieldtext)}}
</div>
<div *ngIf="item.name === 'Line'" class="title-card card-title"
[style.text-align]="item.alignment !== '' ? item.alignment : 'left'"
[style.line-height]="item.textlineheight !== '' ? item.textlineheight : '1'"
[style.font-family]="item.fontName !== '' ? item.fontName : 'Metropolis'"
[style.font-size]="item.fontSize !== '' ? item.fontSize : '100%'"
[style.font-style]="item.italic == true ? 'Italic' : 'normal'"
[style.font-weight]="item.bold == true ? 'bold' : 'normal'" [style.text-decoration]="(item.underline && item.strikethough) ? 'underline line-through' :
(item.underline ? 'underline' : (item.strikethough ? 'line-through' : 'none'))"
[style.background-color]="item.backgroundcolor !== '' ? item.backgroundcolor : 'white'"
[style.color]="item.textcolor !== '' ? item.textcolor : 'black'">
<hr>
</div>
<div *ngIf="item.name === 'Icon'" class="icon-card"
[style.text-align]="item.alignment !== '' ? item.alignment : 'left'"
[style.line-height]="item.textlineheight !== '' ? item.textlineheight : '1'"
[style.font-family]="item.fontName !== '' ? item.fontName : 'Metropolis'"
[style.font-size]="item.fontSize !== '' ? item.fontSize : '100%'"
[style.font-style]="item.italic == true ? 'Italic' : 'normal'"
[style.font-weight]="item.bold == true ? 'bold' : 'normal'" [style.text-decoration]="(item.underline && item.strikethough) ? 'underline line-through' :
(item.underline ? 'underline' : (item.strikethough ? 'line-through' : 'none'))"
[style.background-color]="item.backgroundcolor !== '' ? item.backgroundcolor : 'white'"
[style.color]="item.textcolor !== '' ? item.textcolor : 'black'"
>
<clr-icon [attr.shape]="item.iconName"></clr-icon>
</div>
<div *ngIf="item.name == 'Image'"
[style.text-align]="item.alignment !== '' ? item.alignment : 'left'"
[style.line-height]="item.textlineheight !== '' ? item.textlineheight : '1'"
[style.font-family]="item.fontName !== '' ? item.fontName : 'Metropolis'"
[style.font-size]="item.fontSize !== '' ? item.fontSize : '100%'"
[style.font-style]="item.italic == true ? 'Italic' : 'normal'"
[style.font-weight]="item.bold == true ? 'bold' : 'normal'" [style.text-decoration]="(item.underline && item.strikethough) ? 'underline line-through' :
(item.underline ? 'underline' : (item.strikethough ? 'line-through' : 'none'))"
[style.background-color]="item.backgroundcolor !== '' ? item.backgroundcolor : 'white'"
[style.color]="item.textcolor !== '' ? item.textcolor : 'black'"
[style.background-color]="item.conditionValue == app[transform(item.fieldtext) ] ? item.conditionbackgroundcolor : item.backgroundcolor"
[style.color]="item.conditionValue == app[transform(item.fieldtext) ] ? item.conditiontextcolor : item.textcolor"> <img id="filePreview" [src]="item.imageURL" alt="File Preview"
[style.width]="item.imagewidth !== '' ? item.imagewidth + 'px' : '100px'"
[style.height]="item.imagewidth !== '' ? item.imagewidth + 'px' : '100px'"></div>
</div>
</ng-container>
</div>
</div>
</div>
</div>
</div>
</div>
</ng-container>
</div>
<!-- // EDIT DATA......... -->
<clr-modal [(clrModalOpen)]="modalEdit" [clrModalSize]="'lg'" [clrModalStaticBackdrop]="true">
<h3 class="modal-title">Update Generate Quote
<!--update button -->
</h3>
<div class="modal-body" *ngIf="rowSelected.id">
<h2 class="heading">{{rowSelected.id}}</h2>
<!-- button -->
<form >
<div class="clr-row">
<div class="clr-col-sm-12">
<label>Genrate Quote</label>
<input class="clr-input" type="text" [(ngModel)]="rowSelected.genrate_quote" name="genrate_quote" />
</div>
<div class="clr-col-sm-12">
<label>Package 300k</label>
<input class="clr-input" type="text" [(ngModel)]="rowSelected.package_300k" name="package_300k" />
</div>
<div class="clr-col-sm-12">
<label>Package 400k</label>
<input class="clr-input" type="text" [(ngModel)]="rowSelected.package_400k" name="package_400k" />
</div>
<div class="clr-col-sm-12">
<label>Package 500k</label>
<input class="clr-input" type="text" [(ngModel)]="rowSelected.package_500k" name="package_500k" />
</div>
</div>
<!-- form code start -->
<div *ngIf="checkFormCode">
<h4 style="font-weight: 300;display: inline;">Extension</h4>
<br>
<hr>
<div class="clr-row">
<div class="clr-col-4" *ngFor="let field of additionalFieldsFromBackend">
<ng-container *ngIf="field.formCode === formcode" [ngSwitch]="field.fieldType">
<!-- Text Input --> <label *ngSwitchCase="'text'">{{ field.fieldName }}</label>
<input *ngSwitchCase="'text'" [type]="field.fieldType" name="{{ field.extValue }}" [(ngModel)]="rowSelected[field.extValue]" class="clr-input" />
<!-- Date Input --> <label *ngSwitchCase="'date'">{{ field.fieldName }}</label>
<input *ngSwitchCase="'date'" [type]="field.fieldType" name="{{ field.extValue }}" [(ngModel)]="rowSelected[field.extValue]" class="clr-input" />
<!-- Textarea --> <label *ngSwitchCase="'textarea'">{{ field.fieldName }}</label>
<textarea *ngSwitchCase="'textarea'" name="{{ field.extValue }}" [(ngModel)]="rowSelected[field.extValue]" col="10" row="2"></textarea>
<!-- Checkbox --> <label *ngSwitchCase="'checkbox'">{{ field.fieldName }}</label><br>
<input *ngSwitchCase="'checkbox'" [type]="field.fieldType" name="{{ field.extValue }}" [(ngModel)]="rowSelected[field.extValue]" class="clr-checkbox" />
</ng-container>
</div>
</div>
</div>
<!-- form code end --> <div class="modal-footer">
<button type="button" class="btn btn-outline" (click)="modalEdit = false">Cancel</button>
<button type="submit" class="btn btn-primary" (click)="onUpdate(rowSelected.id)">Update</button>
</div>
</form>
</div>
</clr-modal>
<clr-modal [(clrModalOpen)]="modaldelete" [clrModalSize]="'lg'" [clrModalStaticBackdrop]="true">
<div class="modal-body" *ngIf="rowSelected.id">
<h1 class="delete">Are You Sure Want to delete?</h1>
<h2 class="heading">{{rowSelected.id}}</h2>
<div class="modal-footer">
<button type="button" class="btn btn-outline" (click)="modaldelete = false">Cancel</button>
<button type="button" (click)="delete(rowSelected.id)" class="btn btn-primary" >Delete</button>
</div>
</div>
</clr-modal>
<!-- ADD FORM ..... -->
<clr-modal [(clrModalOpen)]="modalAdd" [clrModalSize]="'lg'" [clrModalStaticBackdrop]="true">
<h3 class="modal-title">Add Generate Quote
<!-- aeroplane icon -->
&nbsp; &nbsp; &nbsp; &nbsp;
<a *ngIf="userrole?.includes('ADMIN')" style="float: right;" href="javascript:void(0)" role="tooltip" aria-haspopup="true"
class="tooltip tooltip-sm tooltip-bottom-left">
<a id="build_extension" [routerLink]="['../extension/all']" [queryParams]="{ formCode: 'Generate_quote_formCode' }">
<clr-icon shape="airplane" size="32"></clr-icon>
</a>
<span class="tooltip-content">Form Extension</span>
</a> </h3>
<div class="modal-body">
<form [formGroup]="entryForm" >
<div class="clr-row" style="height: fit-content;">
<div class="clr-col-sm-12">
<label> Genrate Quote</label>
<input class="clr-input" type="text" formControlName="genrate_quote" />
</div>
<div class="clr-col-sm-12">
<label> Package 300k</label>
<input class="clr-input" type="text" formControlName="package_300k" />
</div>
<div class="clr-col-sm-12">
<label> Package 400k</label>
<input class="clr-input" type="text" formControlName="package_400k" />
</div>
<div class="clr-col-sm-12">
<label> Package 500k</label>
<input class="clr-input" type="text" formControlName="package_500k" />
</div>
</div>
<!-- form code start -->
<div *ngIf="checkFormCode">
<h4 style="font-weight: 300;display: inline;">Extension</h4>
<br>
<hr>
<div class="clr-row">
<div class="clr-col-4" *ngFor="let field of additionalFieldsFromBackend">
<ng-container *ngIf="field.formCode === formcode" [ngSwitch]="field.fieldType">
<!-- Text Input --> <label *ngSwitchCase="'text'">{{ field.fieldName }}</label>
<input *ngSwitchCase="'text'" [type]="field.fieldType" [formControlName]="field.extValue"
class="clr-input" />
<!-- Date Input --> <label *ngSwitchCase="'date'">{{ field.fieldName }}</label>
<input *ngSwitchCase="'date'" [type]="field.fieldType" [formControlName]="field.extValue"
class="clr-input" />
<!-- Textarea --> <label *ngSwitchCase="'textarea'">{{ field.fieldName }}</label>
<textarea *ngSwitchCase="'textarea'" [formControlName]="field.extValue" col="10" row="2"></textarea>
<!-- Checkbox --> <label *ngSwitchCase="'checkbox'">{{ field.fieldName }}</label><br>
<input *ngSwitchCase="'checkbox'" [type]="field.fieldType" [formControlName]="field.extValue"
class="clr-checkbox" />
</ng-container>
</div>
</div>
</div>
<!-- form code end --> <div class="modal-footer">
<button type="button" class="btn btn-outline" (click)="modalAdd = false">Cancel</button>
<button type="submit" class="btn btn-primary" (click)="onSubmit()">ADD</button>
</div>
</form>
</div>
</clr-modal>
<!-- htmlpopup -->

View File

@ -0,0 +1,78 @@
//@import "../../../../assets/scss/var";
.s-info-bar {
display: flex;
flex-direction: row;
justify-content: space-between;
button {
outline: none;
}
}
.delete,.heading{
text-align: center;
color: red;
}
.entry-pg {
width: 750px;
}
.button1::after {
content: none;
}
.button1:hover::after {
content: "ADD ROWS";
}
.section {
background-color: #dddddd;
height: 40px;
}
.section p {
//color: white;
padding: 10px;
font-size: 18px;
}
.clr-input {
color: #212529;
border: 1px solid #ced4da;
border-radius: 0.25rem;
padding: 0.75rem 0.75rem;
margin-top: 3px;
width: 100%;
margin-bottom: 10px;
}
.clr-file {
color: #212529;
border: 1px solid #ced4da;
border-radius: 0.25rem;
//padding: 0.6rem 0.75rem;
margin-top: 3px;
width: 100%;
margin-bottom: 10px;
}
.center {
text-align: center;
}
select{
width: 100%;
margin-top: 3px;
padding: 5px 5px;
border: 1px solid #ccc;
border-radius: 4px;
}
input[type=text],[type=date],[type=number],textarea {
width: 100%;
padding: 15px 15px;
background-color:rgb(255, 255, 255);
// margin: 8px 0;
display: inline-block;
border: 1px solid #ccc;
border-radius: 4px;
box-sizing: border-box;
}
.error_mess {
color: red;
}

View File

@ -0,0 +1,292 @@
import { Component, OnInit } from '@angular/core';
import { ToastrService } from 'ngx-toastr';
import { AlertService } from 'src/app/services/alert.service';
import { Generate_quoteservice} from './Generate_quote.service';
import { AbstractControl, FormArray, FormBuilder, FormGroup, Validators, ValidationErrors } from '@angular/forms';
import { ExtensionService } from 'src/app/services/fnd/extension.service';
import { DashboardContentModel2 } from 'src/app/models/builder/dashboard';
import { Generate_quotecardvariable } from './Generate_quote_cardvariable';
import { UserInfoService } from 'src/app/services/user-info.service';
declare var JsBarcode: any;
@Component({
selector: 'app-Generate_quote',
templateUrl: './Generate_quote.component.html',
styleUrls: ['./Generate_quote.component.scss']
})
export class Generate_quoteComponent implements OnInit {
cardButton = Generate_quotecardvariable.cardButton;
cardmodeldata = Generate_quotecardvariable.cardmodeldata;
public dashboardArray: DashboardContentModel2[];
isCardview = Generate_quotecardvariable.cardButton;
cardmodal; changeView(){
this.isCardview = !this.isCardview;
}
beforeText(fieldtext: string): string { // Extract the text before the first '<'
const index = fieldtext.indexOf('<');
return index !== -1 ? fieldtext.substring(0, index) : fieldtext;
}
afterText(fieldtext: string): string { // Extract the text after the last '>'
const index = fieldtext.lastIndexOf('>');
return index !== -1 ? fieldtext.substring(index + 1) : '';
}
transform(fieldtext: string): string {
const match = fieldtext.match(/<([^>]*)>/);
return match ? match[1] : ''; // Extract the text between '<' and '>'
}
userrole;
rowSelected :any= {};
modaldelete=false;
modalEdit=false;
modalAdd= false;
public entryForm: FormGroup;
loading = false;
product;
modalOpenedforNewLine = false;
newLine:any;
additionalFieldsFromBackend: any[] = [];
formcode = 'Generate_quote_formCode'
tableName = 'Generate_quote'; checkFormCode; selected: any[] = []; constructor(
private extensionService: ExtensionService,
private userInfoService:UserInfoService,
private mainService:Generate_quoteservice,
private alertService: AlertService,
private toastr: ToastrService,
private _fb: FormBuilder,
) { }
// component button
ngOnInit(): void {
if(this.cardmodeldata !== ''){
this.cardmodal = JSON.parse(this.cardmodeldata);
this.dashboardArray = this.cardmodal.dashboard.slice();
console.log(this.dashboardArray)
}
this.userrole=this.userInfoService.getRoles();
this.getData();
this.entryForm = this._fb.group({
genrate_quote : [null],
package_300k : [null],
package_400k : [null],
package_500k : [null],
}); // component_button200
// form code start
this.extensionService.getJsonObjectsByFormCodeList(this.formcode).subscribe(data => {
console.log(data);
const jsonArray = data.map((str) => JSON.parse(str));
this.additionalFieldsFromBackend = jsonArray;
this.checkFormCode = this.additionalFieldsFromBackend.some(field => field.formCode === "Generate_quote_formCode");
console.log(this.checkFormCode);
console.log(this.additionalFieldsFromBackend);
if (this.additionalFieldsFromBackend && this.additionalFieldsFromBackend.length > 0) {
this.additionalFieldsFromBackend.forEach(field => {
if (field.formCode === this.formcode) {
if (!this.entryForm.contains(field.extValue)) {
// Add the control only if it doesn't exist in the form
this.entryForm.addControl(field.extValue, this._fb.control(field.fieldValue));
}
}
});
}
});
console.log(this.entryForm.value);
// form code end
}
error;
getData() {
this.mainService.getAll().subscribe((data) => {
console.log(data);
this.product = data;
if(this.product.length==0){
this.error="No Data Available"
}
},(error) => {
console.log(error);
if(error){
this.error="Server Error";
}
});
}
onEdit(row) {
this.rowSelected = row;
this.modalEdit = true;
}
onDelete(row) {
this.rowSelected = row;
this.modaldelete=true;
}
delete(id)
{
this.modaldelete = false;
console.log("in delete "+id);
this.mainService.delete(id).subscribe(
(data) => {
console.log(data);
this.ngOnInit();
if (data) { this.toastr.success('Deleted successfully'); }
});
}
onUpdate(id) {
this.modalEdit = false;
//console.log("in update");
console.log("id " + id);
console.log(this.rowSelected);
//console.log("out update");
this.mainService.update(id, this.rowSelected).subscribe(
(data) => {
console.log(data);
if (data || data.status >= 200 && data.status <= 299) {
this.toastr.success("Update Successfully");
}
setTimeout(() => {
this.ngOnInit();
}, 500);
}, (error) => {
console.log(error);
if (error.status >= 200 && error.status <= 299) {
// this.toastr.success("update Succesfully");
}
if (error.status >= 400 && error.status <= 499) {
this.toastr.error("Not Updated");
}
if (error.status >= 500 && error.status <= 599) {
this.toastr.error("Not Updated");
}
});
setTimeout(() => {
this.ngOnInit();
}, 500);
}
onCreate() {
this.modalAdd=false;
this.mainService.create(this.entryForm.value).subscribe(
(data) => {
console.log(data);
if (data || data.status >= 200 && data.status <= 299) {
this.toastr.success("Added Successfully");
}
setTimeout(() => {
this.ngOnInit();
}, 500);
}, (error) => {
console.log(error);
if (error.status >= 200 && error.status <= 299) {
// this.toastr.success("Added Succesfully");
}
if (error.status >= 400 && error.status <= 499) {
this.toastr.error("Not Added");
}
if (error.status >= 500 && error.status <= 599) {
this.toastr.error("Not Added");
}
});
setTimeout(() => {
this.ngOnInit();
}, 500);
}
goToAdd(row) {
this.modalAdd = true; this.submitted = false;
}
submitted = false;
onSubmit() {
console.log(this.entryForm.value);
this.submitted = true;
if (this.entryForm.invalid) {
return;
}this.onCreate();
}
// updateaction
}

View File

@ -0,0 +1,41 @@
import { Injectable } from '@angular/core';
import { Observable } from "rxjs";
import { HttpClient, HttpHeaders, HttpParams, } from "@angular/common/http";
import { ApiRequestService } from "src/app/services/api/api-request.service";
import { environment } from 'src/environments/environment';
@Injectable({
providedIn: 'root'
})
export class Generate_quoteservice{
private baseURL = "Generate_quote/Generate_quote" ; constructor(
private http: HttpClient,
private apiRequest: ApiRequestService,
) { }
getAll(page?: number, size?: number): Observable<any> {
return this.apiRequest.get(this.baseURL);
}
getById(id: number): Observable<any> {
const _http = this.baseURL + "/" + id;
return this.apiRequest.get(_http);
}
create(data: any): Observable<any> {
return this.apiRequest.post(this.baseURL, data);
}
update(id: number, data: any): Observable<any> {
const _http = this.baseURL + "/" + id;
return this.apiRequest.put(_http, data);
}
delete(id: number): Observable<any> {
const _http = this.baseURL + "/" + id;
return this.apiRequest.delete(_http);
}
// updateaction
}

View File

@ -0,0 +1,4 @@
export const Generate_quotecardvariable = {
"cardButton": false,
"cardmodeldata": ``
}

View File

@ -0,0 +1,315 @@
<ol class="breadcrumb breadcrumb-arrow font-trirong">
<li><a href="javascript://"> Manufacturer</a></li>
</ol>
<div class="dg-wrapper">
<div class="clr-row">
<div class="clr-col-8">
<h3>Manufacturer </h3>
</div>
<div class="clr-col-4" style="text-align: right;">
<button *ngIf="cardButton" id="add" class="btn btn-primary btn-icon" (click)="changeView()" >
<clr-icon *ngIf="!isCardview" shape="grid-view"></clr-icon> <clr-icon *ngIf="isCardview" shape="bars"></clr-icon>
</button>
<!-- button -->
<button id="add" class="btn btn-primary" (click)="goToAdd(product)" >
<clr-icon shape="plus"></clr-icon>ADD
</button>
</div></div>
<ng-container *ngIf="!isCardview"> <!-- GET ALL --> <clr-datagrid [clrDgLoading]="loading" [(clrDgSelected)]="selected">
<clr-dg-placeholder>
<ng-template #loadingSpinner>
<clr-spinner>Loading ... </clr-spinner>
</ng-template>
<div *ngIf="error;else loadingSpinner">{{error}}</div>
</clr-dg-placeholder>
<clr-dg-column [clrDgField]="' manufacturer_name'"> <ng-container *clrDgHideableColumn="{hidden: false}"> Manufacturer Name
</ng-container></clr-dg-column>
<!-- who column -->
<clr-dg-column> <ng-container *clrDgHideableColumn="{hidden: false}">
<clr-icon shape="bars"></clr-icon> Action
</ng-container></clr-dg-column>
<!-- end -->
<clr-dg-row *clrDgItems="let user of product" [clrDgItem]="user">
<clr-dg-cell>{{user. manufacturer_name }}</clr-dg-cell>
<!-- who column -->
<clr-dg-cell>
<clr-signpost>
<span style="cursor: pointer;" clrSignpostTrigger><clr-icon shape="help" class="success" style="color: rgb(0, 130, 236);"></clr-icon></span>
<clr-signpost-content [clrPosition]="'left-middle'" *clrIfOpen>
<h5 style="margin-top: 0">Who Column</h5>
<div>Account ID: <code class="clr-code">{{user.accountId}}</code></div>
<div>Created At: <code class="clr-code">{{user.createdAt| date}}</code></div>
<div>Created By: <code class="clr-code">{{user.createdBy}}</code></div>
<div>Updated At: <code class="clr-code">{{user.updatedAt | date}}</code></div>
<div>Updated By: <code class="clr-code">{{user.updatedBy}}</code></div>
</clr-signpost-content>
</clr-signpost>
</clr-dg-cell>
<!-- who colmn -->
<clr-dg-action-overflow>
<button class="action-item" (click)="onEdit(user)">Edit</button>
<button class="action-item" (click)="onDelete(user)">Delete</button>
</clr-dg-action-overflow>
</clr-dg-row>
<clr-dg-footer>
<clr-dg-pagination #pagination [clrDgPageSize]="10">
<clr-dg-page-size [clrPageSizeOptions]="[10,20,50,100]">Users per page</clr-dg-page-size>
{{pagination.firstItem + 1}} - {{pagination.lastItem + 1}}
of {{pagination.totalItems}} users
</clr-dg-pagination>
</clr-dg-footer>
</clr-datagrid> </ng-container>
<ng-template #showInfo>
<div class="alert alert-info" role="alert">
<div class="alert-items">
<div class="alert-item static">
<span class="alert-text">
<clr-icon class="alert-icon" shape="info-circle"></clr-icon>
Data could be found. Loading..
<clr-spinner [clrMedium]="true">Loading ...</clr-spinner>
</span>
</div>
</div>
</div>
</ng-template><ng-container *ngIf="isCardview">
<div *ngIf="product; else showInfo" class="clr-row clr-align-items-start clr-justify-content-start">
<div *ngFor="let app of product| filter:search; let index = i" class="clr-col-auto" >
<div class="clr-row">
<div class="clr-col-lg-12 clr-col-md-4 clr-col-sm-4 clr-col-12" style="width: 410px;">
<div class="card" style="padding: 10px; "[style.background-color]="cardmodal.cardColor !== '' ? cardmodal.cardColor : 'white'">
<div class="card-body" style="display: grid; grid-template-columns: repeat(13, 1fr); grid-template-rows: repeat(7, 1fr); gap: 5px;">
<ng-container *ngFor="let item of dashboardArray">
<div [style.gridColumn]="item.x + 1" [style.gridRow]="item.y + 1" [style.gridColumnEnd]="item.x + item.cols + 1"
[style.gridRowEnd]="item.y + item.rows + 1">
<div *ngIf="item.name === 'textField'" class="title-card card-title"
[style.text-align]="item.alignment !== '' ? item.alignment : 'left'"
[style.line-height]="item.textlineheight !== '' ? item.textlineheight : '1'"
[style.font-family]="item.fontName !== '' ? item.fontName : 'Metropolis'"
[style.font-size]="item.fontSize !== '' ? item.fontSize : '100%'"
[style.font-style]="item.italic == true ? 'Italic' : 'normal'"
[style.font-weight]="item.bold == true ? 'bold' : 'normal'" [style.text-decoration]="(item.underline && item.strikethough) ? 'underline line-through' :
(item.underline ? 'underline' : (item.strikethough ? 'line-through' : 'none'))"
[style.background-color]="item.backgroundcolor !== '' ? item.backgroundcolor : 'white'"
[style.color]="item.textcolor !== '' ? item.textcolor : 'black'" [style.background-color]="item.conditionValue == app[transform(item.fieldtext) ] ? item.conditionbackgroundcolor : item.backgroundcolor"
[style.color]="item.conditionValue == app[transform(item.fieldtext) ] ? item.conditiontextcolor : item.textcolor">
{{beforeText(item.fieldtext)}}
{{ app[transform(item.fieldtext) ] }}
{{afterText(item.fieldtext)}}
</div>
<div *ngIf="item.name === 'dateField'" class="title-card card-title"
[style.text-align]="item.alignment !== '' ? item.alignment : 'left'"
[style.line-height]="item.textlineheight !== '' ? item.textlineheight : '1'"
[style.font-family]="item.fontName !== '' ? item.fontName : 'Metropolis'"
[style.font-size]="item.fontSize !== '' ? item.fontSize : '100%'"
[style.font-style]="item.italic == true ? 'Italic' : 'normal'"
[style.font-weight]="item.bold == true ? 'bold' : 'normal'" [style.text-decoration]="(item.underline && item.strikethough) ? 'underline line-through' :
(item.underline ? 'underline' : (item.strikethough ? 'line-through' : 'none'))"
[style.background-color]="item.backgroundcolor !== '' ? item.backgroundcolor : 'white'"
[style.color]="item.textcolor !== '' ? item.textcolor : 'black'" [style.background-color]="item.conditionValue == app[transform(item.fieldtext) ] ? item.conditionbackgroundcolor : item.backgroundcolor"
[style.color]="item.conditionValue == app[transform(item.fieldtext) ] ? item.conditiontextcolor : item.textcolor">
{{beforeText(item.fieldtext)}}
{{ app[transform(item.fieldtext) ] | date}}
{{afterText(item.fieldtext)}}
</div>
<div *ngIf="item.name === 'numberField'" class="title-card card-title"
[style.text-align]="item.alignment !== '' ? item.alignment : 'left'"
[style.line-height]="item.textlineheight !== '' ? item.textlineheight : '1'"
[style.font-family]="item.fontName !== '' ? item.fontName : 'Metropolis'"
[style.font-size]="item.fontSize !== '' ? item.fontSize : '100%'"
[style.font-style]="item.italic == true ? 'Italic' : 'normal'"
[style.font-weight]="item.bold == true ? 'bold' : 'normal'" [style.text-decoration]="(item.underline && item.strikethough) ? 'underline line-through' :
(item.underline ? 'underline' : (item.strikethough ? 'line-through' : 'none'))"
[style.background-color]="item.backgroundcolor !== '' ? item.backgroundcolor : 'white'"
[style.color]="item.textcolor !== '' ? item.textcolor : 'black'" [style.background-color]="item.conditionValue == app[transform(item.fieldtext) ] ? item.conditionbackgroundcolor : item.backgroundcolor"
[style.color]="item.conditionValue == app[transform(item.fieldtext) ] ? item.conditiontextcolor : item.textcolor">
{{beforeText(item.fieldtext)}}
{{ app[transform(item.fieldtext) ]}}
{{afterText(item.fieldtext)}}
</div>
<div *ngIf="item.name === 'Line'" class="title-card card-title"
[style.text-align]="item.alignment !== '' ? item.alignment : 'left'"
[style.line-height]="item.textlineheight !== '' ? item.textlineheight : '1'"
[style.font-family]="item.fontName !== '' ? item.fontName : 'Metropolis'"
[style.font-size]="item.fontSize !== '' ? item.fontSize : '100%'"
[style.font-style]="item.italic == true ? 'Italic' : 'normal'"
[style.font-weight]="item.bold == true ? 'bold' : 'normal'" [style.text-decoration]="(item.underline && item.strikethough) ? 'underline line-through' :
(item.underline ? 'underline' : (item.strikethough ? 'line-through' : 'none'))"
[style.background-color]="item.backgroundcolor !== '' ? item.backgroundcolor : 'white'"
[style.color]="item.textcolor !== '' ? item.textcolor : 'black'">
<hr>
</div>
<div *ngIf="item.name === 'Icon'" class="icon-card"
[style.text-align]="item.alignment !== '' ? item.alignment : 'left'"
[style.line-height]="item.textlineheight !== '' ? item.textlineheight : '1'"
[style.font-family]="item.fontName !== '' ? item.fontName : 'Metropolis'"
[style.font-size]="item.fontSize !== '' ? item.fontSize : '100%'"
[style.font-style]="item.italic == true ? 'Italic' : 'normal'"
[style.font-weight]="item.bold == true ? 'bold' : 'normal'" [style.text-decoration]="(item.underline && item.strikethough) ? 'underline line-through' :
(item.underline ? 'underline' : (item.strikethough ? 'line-through' : 'none'))"
[style.background-color]="item.backgroundcolor !== '' ? item.backgroundcolor : 'white'"
[style.color]="item.textcolor !== '' ? item.textcolor : 'black'"
>
<clr-icon [attr.shape]="item.iconName"></clr-icon>
</div>
<div *ngIf="item.name == 'Image'"
[style.text-align]="item.alignment !== '' ? item.alignment : 'left'"
[style.line-height]="item.textlineheight !== '' ? item.textlineheight : '1'"
[style.font-family]="item.fontName !== '' ? item.fontName : 'Metropolis'"
[style.font-size]="item.fontSize !== '' ? item.fontSize : '100%'"
[style.font-style]="item.italic == true ? 'Italic' : 'normal'"
[style.font-weight]="item.bold == true ? 'bold' : 'normal'" [style.text-decoration]="(item.underline && item.strikethough) ? 'underline line-through' :
(item.underline ? 'underline' : (item.strikethough ? 'line-through' : 'none'))"
[style.background-color]="item.backgroundcolor !== '' ? item.backgroundcolor : 'white'"
[style.color]="item.textcolor !== '' ? item.textcolor : 'black'"
[style.background-color]="item.conditionValue == app[transform(item.fieldtext) ] ? item.conditionbackgroundcolor : item.backgroundcolor"
[style.color]="item.conditionValue == app[transform(item.fieldtext) ] ? item.conditiontextcolor : item.textcolor"> <img id="filePreview" [src]="item.imageURL" alt="File Preview"
[style.width]="item.imagewidth !== '' ? item.imagewidth + 'px' : '100px'"
[style.height]="item.imagewidth !== '' ? item.imagewidth + 'px' : '100px'"></div>
</div>
</ng-container>
</div>
</div>
</div>
</div>
</div>
</div>
</ng-container>
</div>
<!-- // EDIT DATA......... -->
<clr-modal [(clrModalOpen)]="modalEdit" [clrModalSize]="'lg'" [clrModalStaticBackdrop]="true">
<h3 class="modal-title">Update Manufacturer
<!--update button -->
</h3>
<div class="modal-body" *ngIf="rowSelected.id">
<h2 class="heading">{{rowSelected.id}}</h2>
<!-- button -->
<form >
<div class="clr-row">
<div class="clr-col-sm-12">
<label>Manufacturer Name</label>
<input class="clr-input" type="text" [(ngModel)]="rowSelected.manufacturer_name" name="manufacturer_name" />
</div>
</div>
<!-- form code start -->
<div *ngIf="checkFormCode">
<h4 style="font-weight: 300;display: inline;">Extension</h4>
<br>
<hr>
<div class="clr-row">
<div class="clr-col-4" *ngFor="let field of additionalFieldsFromBackend">
<ng-container *ngIf="field.formCode === formcode" [ngSwitch]="field.fieldType">
<!-- Text Input --> <label *ngSwitchCase="'text'">{{ field.fieldName }}</label>
<input *ngSwitchCase="'text'" [type]="field.fieldType" name="{{ field.extValue }}" [(ngModel)]="rowSelected[field.extValue]" class="clr-input" />
<!-- Date Input --> <label *ngSwitchCase="'date'">{{ field.fieldName }}</label>
<input *ngSwitchCase="'date'" [type]="field.fieldType" name="{{ field.extValue }}" [(ngModel)]="rowSelected[field.extValue]" class="clr-input" />
<!-- Textarea --> <label *ngSwitchCase="'textarea'">{{ field.fieldName }}</label>
<textarea *ngSwitchCase="'textarea'" name="{{ field.extValue }}" [(ngModel)]="rowSelected[field.extValue]" col="10" row="2"></textarea>
<!-- Checkbox --> <label *ngSwitchCase="'checkbox'">{{ field.fieldName }}</label><br>
<input *ngSwitchCase="'checkbox'" [type]="field.fieldType" name="{{ field.extValue }}" [(ngModel)]="rowSelected[field.extValue]" class="clr-checkbox" />
</ng-container>
</div>
</div>
</div>
<!-- form code end --> <div class="modal-footer">
<button type="button" class="btn btn-outline" (click)="modalEdit = false">Cancel</button>
<button type="submit" class="btn btn-primary" (click)="onUpdate(rowSelected.id)">Update</button>
</div>
</form>
</div>
</clr-modal>
<clr-modal [(clrModalOpen)]="modaldelete" [clrModalSize]="'lg'" [clrModalStaticBackdrop]="true">
<div class="modal-body" *ngIf="rowSelected.id">
<h1 class="delete">Are You Sure Want to delete?</h1>
<h2 class="heading">{{rowSelected.id}}</h2>
<div class="modal-footer">
<button type="button" class="btn btn-outline" (click)="modaldelete = false">Cancel</button>
<button type="button" (click)="delete(rowSelected.id)" class="btn btn-primary" >Delete</button>
</div>
</div>
</clr-modal>
<!-- ADD FORM ..... -->
<clr-modal [(clrModalOpen)]="modalAdd" [clrModalSize]="'lg'" [clrModalStaticBackdrop]="true">
<h3 class="modal-title">Add Manufacturer
<!-- aeroplane icon -->
&nbsp; &nbsp; &nbsp; &nbsp;
<a *ngIf="userrole?.includes('ADMIN')" style="float: right;" href="javascript:void(0)" role="tooltip" aria-haspopup="true"
class="tooltip tooltip-sm tooltip-bottom-left">
<a id="build_extension" [routerLink]="['../extension/all']" [queryParams]="{ formCode: 'Manufacturer_formCode' }">
<clr-icon shape="airplane" size="32"></clr-icon>
</a>
<span class="tooltip-content">Form Extension</span>
</a> </h3>
<div class="modal-body">
<form [formGroup]="entryForm" >
<div class="clr-row" style="height: fit-content;">
<div class="clr-col-sm-12">
<label> Manufacturer Name</label>
<input class="clr-input" type="text" formControlName="manufacturer_name" />
</div>
</div>
<!-- form code start -->
<div *ngIf="checkFormCode">
<h4 style="font-weight: 300;display: inline;">Extension</h4>
<br>
<hr>
<div class="clr-row">
<div class="clr-col-4" *ngFor="let field of additionalFieldsFromBackend">
<ng-container *ngIf="field.formCode === formcode" [ngSwitch]="field.fieldType">
<!-- Text Input --> <label *ngSwitchCase="'text'">{{ field.fieldName }}</label>
<input *ngSwitchCase="'text'" [type]="field.fieldType" [formControlName]="field.extValue"
class="clr-input" />
<!-- Date Input --> <label *ngSwitchCase="'date'">{{ field.fieldName }}</label>
<input *ngSwitchCase="'date'" [type]="field.fieldType" [formControlName]="field.extValue"
class="clr-input" />
<!-- Textarea --> <label *ngSwitchCase="'textarea'">{{ field.fieldName }}</label>
<textarea *ngSwitchCase="'textarea'" [formControlName]="field.extValue" col="10" row="2"></textarea>
<!-- Checkbox --> <label *ngSwitchCase="'checkbox'">{{ field.fieldName }}</label><br>
<input *ngSwitchCase="'checkbox'" [type]="field.fieldType" [formControlName]="field.extValue"
class="clr-checkbox" />
</ng-container>
</div>
</div>
</div>
<!-- form code end --> <div class="modal-footer">
<button type="button" class="btn btn-outline" (click)="modalAdd = false">Cancel</button>
<button type="submit" class="btn btn-primary" (click)="onSubmit()">ADD</button>
</div>
</form>
</div>
</clr-modal>
<!-- htmlpopup -->

View File

@ -0,0 +1,78 @@
//@import "../../../../assets/scss/var";
.s-info-bar {
display: flex;
flex-direction: row;
justify-content: space-between;
button {
outline: none;
}
}
.delete,.heading{
text-align: center;
color: red;
}
.entry-pg {
width: 750px;
}
.button1::after {
content: none;
}
.button1:hover::after {
content: "ADD ROWS";
}
.section {
background-color: #dddddd;
height: 40px;
}
.section p {
//color: white;
padding: 10px;
font-size: 18px;
}
.clr-input {
color: #212529;
border: 1px solid #ced4da;
border-radius: 0.25rem;
padding: 0.75rem 0.75rem;
margin-top: 3px;
width: 100%;
margin-bottom: 10px;
}
.clr-file {
color: #212529;
border: 1px solid #ced4da;
border-radius: 0.25rem;
//padding: 0.6rem 0.75rem;
margin-top: 3px;
width: 100%;
margin-bottom: 10px;
}
.center {
text-align: center;
}
select{
width: 100%;
margin-top: 3px;
padding: 5px 5px;
border: 1px solid #ccc;
border-radius: 4px;
}
input[type=text],[type=date],[type=number],textarea {
width: 100%;
padding: 15px 15px;
background-color:rgb(255, 255, 255);
// margin: 8px 0;
display: inline-block;
border: 1px solid #ccc;
border-radius: 4px;
box-sizing: border-box;
}
.error_mess {
color: red;
}

View File

@ -0,0 +1,220 @@
import { Component, OnInit } from '@angular/core';
import { ToastrService } from 'ngx-toastr';
import { AlertService } from 'src/app/services/alert.service';
import { Manufacturerservice} from './Manufacturer.service';
import { AbstractControl, FormArray, FormBuilder, FormGroup, Validators, ValidationErrors } from '@angular/forms';
import { ExtensionService } from 'src/app/services/fnd/extension.service';
import { DashboardContentModel2 } from 'src/app/models/builder/dashboard';
import { Manufacturercardvariable } from './Manufacturer_cardvariable';
import { UserInfoService } from 'src/app/services/user-info.service';
declare var JsBarcode: any;
@Component({
selector: 'app-Manufacturer',
templateUrl: './Manufacturer.component.html',
styleUrls: ['./Manufacturer.component.scss']
})
export class ManufacturerComponent implements OnInit {
cardButton = Manufacturercardvariable.cardButton;
cardmodeldata = Manufacturercardvariable.cardmodeldata;
public dashboardArray: DashboardContentModel2[];
isCardview = Manufacturercardvariable.cardButton;
cardmodal; changeView(){
this.isCardview = !this.isCardview;
}
beforeText(fieldtext: string): string { // Extract the text before the first '<'
const index = fieldtext.indexOf('<');
return index !== -1 ? fieldtext.substring(0, index) : fieldtext;
}
afterText(fieldtext: string): string { // Extract the text after the last '>'
const index = fieldtext.lastIndexOf('>');
return index !== -1 ? fieldtext.substring(index + 1) : '';
}
transform(fieldtext: string): string {
const match = fieldtext.match(/<([^>]*)>/);
return match ? match[1] : ''; // Extract the text between '<' and '>'
}
userrole;
rowSelected :any= {};
modaldelete=false;
modalEdit=false;
modalAdd= false;
public entryForm: FormGroup;
loading = false;
product;
modalOpenedforNewLine = false;
newLine:any;
additionalFieldsFromBackend: any[] = [];
formcode = 'Manufacturer_formCode'
tableName = 'Manufacturer'; checkFormCode; selected: any[] = []; constructor(
private extensionService: ExtensionService,
private userInfoService:UserInfoService,
private mainService:Manufacturerservice,
private alertService: AlertService,
private toastr: ToastrService,
private _fb: FormBuilder,
) { }
// component button
ngOnInit(): void {
if(this.cardmodeldata !== ''){
this.cardmodal = JSON.parse(this.cardmodeldata);
this.dashboardArray = this.cardmodal.dashboard.slice();
console.log(this.dashboardArray)
}
this.userrole=this.userInfoService.getRoles();
this.getData();
this.entryForm = this._fb.group({
manufacturer_name : [null],
}); // component_button200
// form code start
this.extensionService.getJsonObjectsByFormCodeList(this.formcode).subscribe(data => {
console.log(data);
const jsonArray = data.map((str) => JSON.parse(str));
this.additionalFieldsFromBackend = jsonArray;
this.checkFormCode = this.additionalFieldsFromBackend.some(field => field.formCode === "Manufacturer_formCode");
console.log(this.checkFormCode);
console.log(this.additionalFieldsFromBackend);
if (this.additionalFieldsFromBackend && this.additionalFieldsFromBackend.length > 0) {
this.additionalFieldsFromBackend.forEach(field => {
if (field.formCode === this.formcode) {
if (!this.entryForm.contains(field.extValue)) {
// Add the control only if it doesn't exist in the form
this.entryForm.addControl(field.extValue, this._fb.control(field.fieldValue));
}
}
});
}
});
console.log(this.entryForm.value);
// form code end
}
error;
getData() {
this.mainService.getAll().subscribe((data) => {
console.log(data);
this.product = data;
if(this.product.length==0){
this.error="No Data Available"
}
},(error) => {
console.log(error);
if(error){
this.error="Server Error";
}
});
}
onEdit(row) {
this.rowSelected = row;
this.modalEdit = true;
}
onDelete(row) {
this.rowSelected = row;
this.modaldelete=true;
}
delete(id)
{
this.modaldelete = false;
console.log("in delete "+id);
this.mainService.delete(id).subscribe(
(data) => {
console.log(data);
this.ngOnInit();
if (data) { this.toastr.success('Deleted successfully'); }
});
}
onUpdate(id) {
this.modalEdit = false;
//console.log("in update");
console.log("id " + id);
console.log(this.rowSelected);
//console.log("out update");
this.mainService.update(id, this.rowSelected).subscribe(
(data) => {
console.log(data);
if (data || data.status >= 200 && data.status <= 299) {
this.toastr.success("Update Successfully");
}
setTimeout(() => {
this.ngOnInit();
}, 500);
}, (error) => {
console.log(error);
if (error.status >= 200 && error.status <= 299) {
// this.toastr.success("update Succesfully");
}
if (error.status >= 400 && error.status <= 499) {
this.toastr.error("Not Updated");
}
if (error.status >= 500 && error.status <= 599) {
this.toastr.error("Not Updated");
}
});
setTimeout(() => {
this.ngOnInit();
}, 500);
}
onCreate() {
this.modalAdd=false;
this.mainService.create(this.entryForm.value).subscribe(
(data) => {
console.log(data);
if (data || data.status >= 200 && data.status <= 299) {
this.toastr.success("Added Successfully");
}
setTimeout(() => {
this.ngOnInit();
}, 500);
}, (error) => {
console.log(error);
if (error.status >= 200 && error.status <= 299) {
// this.toastr.success("Added Succesfully");
}
if (error.status >= 400 && error.status <= 499) {
this.toastr.error("Not Added");
}
if (error.status >= 500 && error.status <= 599) {
this.toastr.error("Not Added");
}
});
setTimeout(() => {
this.ngOnInit();
}, 500);
}
goToAdd(row) {
this.modalAdd = true; this.submitted = false;
}
submitted = false;
onSubmit() {
console.log(this.entryForm.value);
this.submitted = true;
if (this.entryForm.invalid) {
return;
}this.onCreate();
}
// updateaction
}

View File

@ -0,0 +1,35 @@
import { Injectable } from '@angular/core';
import { Observable } from "rxjs";
import { HttpClient, HttpHeaders, HttpParams, } from "@angular/common/http";
import { ApiRequestService } from "src/app/services/api/api-request.service";
import { environment } from 'src/environments/environment';
@Injectable({
providedIn: 'root'
})
export class Manufacturerservice{
private baseURL = "Manufacturer/Manufacturer" ; constructor(
private http: HttpClient,
private apiRequest: ApiRequestService,
) { }
getAll(page?: number, size?: number): Observable<any> {
return this.apiRequest.get(this.baseURL);
}
getById(id: number): Observable<any> {
const _http = this.baseURL + "/" + id;
return this.apiRequest.get(_http);
}
create(data: any): Observable<any> {
return this.apiRequest.post(this.baseURL, data);
}
update(id: number, data: any): Observable<any> {
const _http = this.baseURL + "/" + id;
return this.apiRequest.put(_http, data);
}
delete(id: number): Observable<any> {
const _http = this.baseURL + "/" + id;
return this.apiRequest.delete(_http);
}
// updateaction
}

View File

@ -0,0 +1,4 @@
export const Manufacturercardvariable = {
"cardButton": false,
"cardmodeldata": ``
}

View File

@ -0,0 +1,347 @@
<ol class="breadcrumb breadcrumb-arrow font-trirong">
<li><a href="javascript://"> Notes and Terms</a></li>
</ol>
<div class="dg-wrapper">
<div class="clr-row">
<div class="clr-col-8">
<h3>Notes and Terms </h3>
</div>
<div class="clr-col-4" style="text-align: right;">
<button *ngIf="cardButton" id="add" class="btn btn-primary btn-icon" (click)="changeView()" >
<clr-icon *ngIf="!isCardview" shape="grid-view"></clr-icon> <clr-icon *ngIf="isCardview" shape="bars"></clr-icon>
</button>
<!-- button -->
<button id="add" class="btn btn-primary" (click)="goToAdd(product)" >
<clr-icon shape="plus"></clr-icon>ADD
</button>
</div></div>
<ng-container *ngIf="!isCardview"> <!-- GET ALL --> <clr-datagrid [clrDgLoading]="loading" [(clrDgSelected)]="selected">
<clr-dg-placeholder>
<ng-template #loadingSpinner>
<clr-spinner>Loading ... </clr-spinner>
</ng-template>
<div *ngIf="error;else loadingSpinner">{{error}}</div>
</clr-dg-placeholder>
<clr-dg-column [clrDgField]="' additional_notes'"> <ng-container *clrDgHideableColumn="{hidden: false}"> Additional Notes
</ng-container></clr-dg-column>
<clr-dg-column [clrDgField]="' terms_and_conditions'"> <ng-container *clrDgHideableColumn="{hidden: false}"> Terms and Conditions
</ng-container></clr-dg-column>
<!-- who column -->
<clr-dg-column> <ng-container *clrDgHideableColumn="{hidden: false}">
<clr-icon shape="bars"></clr-icon> Action
</ng-container></clr-dg-column>
<!-- end -->
<clr-dg-row *clrDgItems="let user of product" [clrDgItem]="user">
<clr-dg-cell>{{user. additional_notes }}</clr-dg-cell>
<clr-dg-cell (click)="goToReplaceStringterms_and_conditions(user.terms_and_conditions)" style="cursor: pointer; align-items: center;"><clr-icon shape="details"></clr-icon></clr-dg-cell>
<!-- who column -->
<clr-dg-cell>
<clr-signpost>
<span style="cursor: pointer;" clrSignpostTrigger><clr-icon shape="help" class="success" style="color: rgb(0, 130, 236);"></clr-icon></span>
<clr-signpost-content [clrPosition]="'left-middle'" *clrIfOpen>
<h5 style="margin-top: 0">Who Column</h5>
<div>Account ID: <code class="clr-code">{{user.accountId}}</code></div>
<div>Created At: <code class="clr-code">{{user.createdAt| date}}</code></div>
<div>Created By: <code class="clr-code">{{user.createdBy}}</code></div>
<div>Updated At: <code class="clr-code">{{user.updatedAt | date}}</code></div>
<div>Updated By: <code class="clr-code">{{user.updatedBy}}</code></div>
</clr-signpost-content>
</clr-signpost>
</clr-dg-cell>
<!-- who colmn -->
<clr-dg-action-overflow>
<button class="action-item" (click)="onEdit(user)">Edit</button>
<button class="action-item" (click)="onDelete(user)">Delete</button>
</clr-dg-action-overflow>
</clr-dg-row>
<clr-dg-footer>
<clr-dg-pagination #pagination [clrDgPageSize]="10">
<clr-dg-page-size [clrPageSizeOptions]="[10,20,50,100]">Users per page</clr-dg-page-size>
{{pagination.firstItem + 1}} - {{pagination.lastItem + 1}}
of {{pagination.totalItems}} users
</clr-dg-pagination>
</clr-dg-footer>
</clr-datagrid> </ng-container>
<ng-template #showInfo>
<div class="alert alert-info" role="alert">
<div class="alert-items">
<div class="alert-item static">
<span class="alert-text">
<clr-icon class="alert-icon" shape="info-circle"></clr-icon>
Data could be found. Loading..
<clr-spinner [clrMedium]="true">Loading ...</clr-spinner>
</span>
</div>
</div>
</div>
</ng-template><ng-container *ngIf="isCardview">
<div *ngIf="product; else showInfo" class="clr-row clr-align-items-start clr-justify-content-start">
<div *ngFor="let app of product| filter:search; let index = i" class="clr-col-auto" >
<div class="clr-row">
<div class="clr-col-lg-12 clr-col-md-4 clr-col-sm-4 clr-col-12" style="width: 410px;">
<div class="card" style="padding: 10px; "[style.background-color]="cardmodal.cardColor !== '' ? cardmodal.cardColor : 'white'">
<div class="card-body" style="display: grid; grid-template-columns: repeat(13, 1fr); grid-template-rows: repeat(7, 1fr); gap: 5px;">
<ng-container *ngFor="let item of dashboardArray">
<div [style.gridColumn]="item.x + 1" [style.gridRow]="item.y + 1" [style.gridColumnEnd]="item.x + item.cols + 1"
[style.gridRowEnd]="item.y + item.rows + 1">
<div *ngIf="item.name === 'textField'" class="title-card card-title"
[style.text-align]="item.alignment !== '' ? item.alignment : 'left'"
[style.line-height]="item.textlineheight !== '' ? item.textlineheight : '1'"
[style.font-family]="item.fontName !== '' ? item.fontName : 'Metropolis'"
[style.font-size]="item.fontSize !== '' ? item.fontSize : '100%'"
[style.font-style]="item.italic == true ? 'Italic' : 'normal'"
[style.font-weight]="item.bold == true ? 'bold' : 'normal'" [style.text-decoration]="(item.underline && item.strikethough) ? 'underline line-through' :
(item.underline ? 'underline' : (item.strikethough ? 'line-through' : 'none'))"
[style.background-color]="item.backgroundcolor !== '' ? item.backgroundcolor : 'white'"
[style.color]="item.textcolor !== '' ? item.textcolor : 'black'" [style.background-color]="item.conditionValue == app[transform(item.fieldtext) ] ? item.conditionbackgroundcolor : item.backgroundcolor"
[style.color]="item.conditionValue == app[transform(item.fieldtext) ] ? item.conditiontextcolor : item.textcolor">
{{beforeText(item.fieldtext)}}
{{ app[transform(item.fieldtext) ] }}
{{afterText(item.fieldtext)}}
</div>
<div *ngIf="item.name === 'dateField'" class="title-card card-title"
[style.text-align]="item.alignment !== '' ? item.alignment : 'left'"
[style.line-height]="item.textlineheight !== '' ? item.textlineheight : '1'"
[style.font-family]="item.fontName !== '' ? item.fontName : 'Metropolis'"
[style.font-size]="item.fontSize !== '' ? item.fontSize : '100%'"
[style.font-style]="item.italic == true ? 'Italic' : 'normal'"
[style.font-weight]="item.bold == true ? 'bold' : 'normal'" [style.text-decoration]="(item.underline && item.strikethough) ? 'underline line-through' :
(item.underline ? 'underline' : (item.strikethough ? 'line-through' : 'none'))"
[style.background-color]="item.backgroundcolor !== '' ? item.backgroundcolor : 'white'"
[style.color]="item.textcolor !== '' ? item.textcolor : 'black'" [style.background-color]="item.conditionValue == app[transform(item.fieldtext) ] ? item.conditionbackgroundcolor : item.backgroundcolor"
[style.color]="item.conditionValue == app[transform(item.fieldtext) ] ? item.conditiontextcolor : item.textcolor">
{{beforeText(item.fieldtext)}}
{{ app[transform(item.fieldtext) ] | date}}
{{afterText(item.fieldtext)}}
</div>
<div *ngIf="item.name === 'numberField'" class="title-card card-title"
[style.text-align]="item.alignment !== '' ? item.alignment : 'left'"
[style.line-height]="item.textlineheight !== '' ? item.textlineheight : '1'"
[style.font-family]="item.fontName !== '' ? item.fontName : 'Metropolis'"
[style.font-size]="item.fontSize !== '' ? item.fontSize : '100%'"
[style.font-style]="item.italic == true ? 'Italic' : 'normal'"
[style.font-weight]="item.bold == true ? 'bold' : 'normal'" [style.text-decoration]="(item.underline && item.strikethough) ? 'underline line-through' :
(item.underline ? 'underline' : (item.strikethough ? 'line-through' : 'none'))"
[style.background-color]="item.backgroundcolor !== '' ? item.backgroundcolor : 'white'"
[style.color]="item.textcolor !== '' ? item.textcolor : 'black'" [style.background-color]="item.conditionValue == app[transform(item.fieldtext) ] ? item.conditionbackgroundcolor : item.backgroundcolor"
[style.color]="item.conditionValue == app[transform(item.fieldtext) ] ? item.conditiontextcolor : item.textcolor">
{{beforeText(item.fieldtext)}}
{{ app[transform(item.fieldtext) ]}}
{{afterText(item.fieldtext)}}
</div>
<div *ngIf="item.name === 'Line'" class="title-card card-title"
[style.text-align]="item.alignment !== '' ? item.alignment : 'left'"
[style.line-height]="item.textlineheight !== '' ? item.textlineheight : '1'"
[style.font-family]="item.fontName !== '' ? item.fontName : 'Metropolis'"
[style.font-size]="item.fontSize !== '' ? item.fontSize : '100%'"
[style.font-style]="item.italic == true ? 'Italic' : 'normal'"
[style.font-weight]="item.bold == true ? 'bold' : 'normal'" [style.text-decoration]="(item.underline && item.strikethough) ? 'underline line-through' :
(item.underline ? 'underline' : (item.strikethough ? 'line-through' : 'none'))"
[style.background-color]="item.backgroundcolor !== '' ? item.backgroundcolor : 'white'"
[style.color]="item.textcolor !== '' ? item.textcolor : 'black'">
<hr>
</div>
<div *ngIf="item.name === 'Icon'" class="icon-card"
[style.text-align]="item.alignment !== '' ? item.alignment : 'left'"
[style.line-height]="item.textlineheight !== '' ? item.textlineheight : '1'"
[style.font-family]="item.fontName !== '' ? item.fontName : 'Metropolis'"
[style.font-size]="item.fontSize !== '' ? item.fontSize : '100%'"
[style.font-style]="item.italic == true ? 'Italic' : 'normal'"
[style.font-weight]="item.bold == true ? 'bold' : 'normal'" [style.text-decoration]="(item.underline && item.strikethough) ? 'underline line-through' :
(item.underline ? 'underline' : (item.strikethough ? 'line-through' : 'none'))"
[style.background-color]="item.backgroundcolor !== '' ? item.backgroundcolor : 'white'"
[style.color]="item.textcolor !== '' ? item.textcolor : 'black'"
>
<clr-icon [attr.shape]="item.iconName"></clr-icon>
</div>
<div *ngIf="item.name == 'Image'"
[style.text-align]="item.alignment !== '' ? item.alignment : 'left'"
[style.line-height]="item.textlineheight !== '' ? item.textlineheight : '1'"
[style.font-family]="item.fontName !== '' ? item.fontName : 'Metropolis'"
[style.font-size]="item.fontSize !== '' ? item.fontSize : '100%'"
[style.font-style]="item.italic == true ? 'Italic' : 'normal'"
[style.font-weight]="item.bold == true ? 'bold' : 'normal'" [style.text-decoration]="(item.underline && item.strikethough) ? 'underline line-through' :
(item.underline ? 'underline' : (item.strikethough ? 'line-through' : 'none'))"
[style.background-color]="item.backgroundcolor !== '' ? item.backgroundcolor : 'white'"
[style.color]="item.textcolor !== '' ? item.textcolor : 'black'"
[style.background-color]="item.conditionValue == app[transform(item.fieldtext) ] ? item.conditionbackgroundcolor : item.backgroundcolor"
[style.color]="item.conditionValue == app[transform(item.fieldtext) ] ? item.conditiontextcolor : item.textcolor"> <img id="filePreview" [src]="item.imageURL" alt="File Preview"
[style.width]="item.imagewidth !== '' ? item.imagewidth + 'px' : '100px'"
[style.height]="item.imagewidth !== '' ? item.imagewidth + 'px' : '100px'"></div>
</div>
</ng-container>
</div>
</div>
</div>
</div>
</div>
</div>
</ng-container>
</div>
<clr-modal [(clrModalOpen)]="rsModalterms_and_conditions" [clrModalSize]="'xl'" [clrModalStaticBackdrop]="true">
<div class="modal-body">
<textarea class="form-control" style="width:100%; height: 400px;" readonly>{{rowSelected}}</textarea>
</div></clr-modal>
<!-- // EDIT DATA......... -->
<clr-modal [(clrModalOpen)]="modalEdit" [clrModalSize]="'lg'" [clrModalStaticBackdrop]="true">
<h3 class="modal-title">Update Notes and Terms
<!--update button -->
</h3>
<div class="modal-body" *ngIf="rowSelected.id">
<h2 class="heading">{{rowSelected.id}}</h2>
<!-- button -->
<form >
<div class="clr-row">
<div class="clr-col-sm-12">
<label>Additional Notes</label>
<input class="clr-input" type="text" [(ngModel)]="rowSelected.additional_notes" name="additional_notes" />
</div>
<div class="clr-col-sm-12">
<label> Terms and Conditions</label>
<input id="name" type="Text" class="form-control" style="border: none; outline: none; height:33px !important;" [(ngModel)]="rowSelected.terms_and_conditions" name=" terms_and_conditions " /> </div>
</div>
<!-- form code start -->
<div *ngIf="checkFormCode">
<h4 style="font-weight: 300;display: inline;">Extension</h4>
<br>
<hr>
<div class="clr-row">
<div class="clr-col-4" *ngFor="let field of additionalFieldsFromBackend">
<ng-container *ngIf="field.formCode === formcode" [ngSwitch]="field.fieldType">
<!-- Text Input --> <label *ngSwitchCase="'text'">{{ field.fieldName }}</label>
<input *ngSwitchCase="'text'" [type]="field.fieldType" name="{{ field.extValue }}" [(ngModel)]="rowSelected[field.extValue]" class="clr-input" />
<!-- Date Input --> <label *ngSwitchCase="'date'">{{ field.fieldName }}</label>
<input *ngSwitchCase="'date'" [type]="field.fieldType" name="{{ field.extValue }}" [(ngModel)]="rowSelected[field.extValue]" class="clr-input" />
<!-- Textarea --> <label *ngSwitchCase="'textarea'">{{ field.fieldName }}</label>
<textarea *ngSwitchCase="'textarea'" name="{{ field.extValue }}" [(ngModel)]="rowSelected[field.extValue]" col="10" row="2"></textarea>
<!-- Checkbox --> <label *ngSwitchCase="'checkbox'">{{ field.fieldName }}</label><br>
<input *ngSwitchCase="'checkbox'" [type]="field.fieldType" name="{{ field.extValue }}" [(ngModel)]="rowSelected[field.extValue]" class="clr-checkbox" />
</ng-container>
</div>
</div>
</div>
<!-- form code end --> <div class="modal-footer">
<button type="button" class="btn btn-outline" (click)="modalEdit = false">Cancel</button>
<button type="submit" class="btn btn-primary" (click)="onUpdate(rowSelected.id)">Update</button>
</div>
</form>
</div>
</clr-modal>
<clr-modal [(clrModalOpen)]="modaldelete" [clrModalSize]="'lg'" [clrModalStaticBackdrop]="true">
<div class="modal-body" *ngIf="rowSelected.id">
<h1 class="delete">Are You Sure Want to delete?</h1>
<h2 class="heading">{{rowSelected.id}}</h2>
<div class="modal-footer">
<button type="button" class="btn btn-outline" (click)="modaldelete = false">Cancel</button>
<button type="button" (click)="delete(rowSelected.id)" class="btn btn-primary" >Delete</button>
</div>
</div>
</clr-modal>
<!-- ADD FORM ..... -->
<clr-modal [(clrModalOpen)]="modalAdd" [clrModalSize]="'lg'" [clrModalStaticBackdrop]="true">
<h3 class="modal-title">Add Notes and Terms
<!-- aeroplane icon -->
&nbsp; &nbsp; &nbsp; &nbsp;
<a *ngIf="userrole?.includes('ADMIN')" style="float: right;" href="javascript:void(0)" role="tooltip" aria-haspopup="true"
class="tooltip tooltip-sm tooltip-bottom-left">
<a id="build_extension" [routerLink]="['../extension/all']" [queryParams]="{ formCode: 'Notes_and_terms_formCode' }">
<clr-icon shape="airplane" size="32"></clr-icon>
</a>
<span class="tooltip-content">Form Extension</span>
</a> </h3>
<div class="modal-body">
<form [formGroup]="entryForm" >
<div class="clr-row" style="height: fit-content;">
<div class="clr-col-sm-12">
<label> Additional Notes</label>
<input class="clr-input" type="text" formControlName="additional_notes" />
</div>
<div class="clr-col-sm-12">
<label>Terms and Conditions</label>
<input class="form-control" type="Text" formControlName="terms_and_conditions" style="border: none; outline: none; height:33px !important;" />
</div>
</div>
<!-- form code start -->
<div *ngIf="checkFormCode">
<h4 style="font-weight: 300;display: inline;">Extension</h4>
<br>
<hr>
<div class="clr-row">
<div class="clr-col-4" *ngFor="let field of additionalFieldsFromBackend">
<ng-container *ngIf="field.formCode === formcode" [ngSwitch]="field.fieldType">
<!-- Text Input --> <label *ngSwitchCase="'text'">{{ field.fieldName }}</label>
<input *ngSwitchCase="'text'" [type]="field.fieldType" [formControlName]="field.extValue"
class="clr-input" />
<!-- Date Input --> <label *ngSwitchCase="'date'">{{ field.fieldName }}</label>
<input *ngSwitchCase="'date'" [type]="field.fieldType" [formControlName]="field.extValue"
class="clr-input" />
<!-- Textarea --> <label *ngSwitchCase="'textarea'">{{ field.fieldName }}</label>
<textarea *ngSwitchCase="'textarea'" [formControlName]="field.extValue" col="10" row="2"></textarea>
<!-- Checkbox --> <label *ngSwitchCase="'checkbox'">{{ field.fieldName }}</label><br>
<input *ngSwitchCase="'checkbox'" [type]="field.fieldType" [formControlName]="field.extValue"
class="clr-checkbox" />
</ng-container>
</div>
</div>
</div>
<!-- form code end --> <div class="modal-footer">
<button type="button" class="btn btn-outline" (click)="modalAdd = false">Cancel</button>
<button type="submit" class="btn btn-primary" (click)="onSubmit()">ADD</button>
</div>
</form>
</div>
</clr-modal>
<!-- htmlpopup -->

View File

@ -0,0 +1,78 @@
//@import "../../../../assets/scss/var";
.s-info-bar {
display: flex;
flex-direction: row;
justify-content: space-between;
button {
outline: none;
}
}
.delete,.heading{
text-align: center;
color: red;
}
.entry-pg {
width: 750px;
}
.button1::after {
content: none;
}
.button1:hover::after {
content: "ADD ROWS";
}
.section {
background-color: #dddddd;
height: 40px;
}
.section p {
//color: white;
padding: 10px;
font-size: 18px;
}
.clr-input {
color: #212529;
border: 1px solid #ced4da;
border-radius: 0.25rem;
padding: 0.75rem 0.75rem;
margin-top: 3px;
width: 100%;
margin-bottom: 10px;
}
.clr-file {
color: #212529;
border: 1px solid #ced4da;
border-radius: 0.25rem;
//padding: 0.6rem 0.75rem;
margin-top: 3px;
width: 100%;
margin-bottom: 10px;
}
.center {
text-align: center;
}
select{
width: 100%;
margin-top: 3px;
padding: 5px 5px;
border: 1px solid #ccc;
border-radius: 4px;
}
input[type=text],[type=date],[type=number],textarea {
width: 100%;
padding: 15px 15px;
background-color:rgb(255, 255, 255);
// margin: 8px 0;
display: inline-block;
border: 1px solid #ccc;
border-radius: 4px;
box-sizing: border-box;
}
.error_mess {
color: red;
}

View File

@ -0,0 +1,246 @@
import { Component, OnInit } from '@angular/core';
import { ToastrService } from 'ngx-toastr';
import { AlertService } from 'src/app/services/alert.service';
import { Notes_and_termsservice} from './Notes_and_terms.service';
import { AbstractControl, FormArray, FormBuilder, FormGroup, Validators, ValidationErrors } from '@angular/forms';
import { ExtensionService } from 'src/app/services/fnd/extension.service';
import { DashboardContentModel2 } from 'src/app/models/builder/dashboard';
import { Notes_and_termscardvariable } from './Notes_and_terms_cardvariable';
import { UserInfoService } from 'src/app/services/user-info.service';
declare var JsBarcode: any;
@Component({
selector: 'app-Notes_and_terms',
templateUrl: './Notes_and_terms.component.html',
styleUrls: ['./Notes_and_terms.component.scss']
})
export class Notes_and_termsComponent implements OnInit {
cardButton = Notes_and_termscardvariable.cardButton;
cardmodeldata = Notes_and_termscardvariable.cardmodeldata;
public dashboardArray: DashboardContentModel2[];
isCardview = Notes_and_termscardvariable.cardButton;
cardmodal; changeView(){
this.isCardview = !this.isCardview;
}
beforeText(fieldtext: string): string { // Extract the text before the first '<'
const index = fieldtext.indexOf('<');
return index !== -1 ? fieldtext.substring(0, index) : fieldtext;
}
afterText(fieldtext: string): string { // Extract the text after the last '>'
const index = fieldtext.lastIndexOf('>');
return index !== -1 ? fieldtext.substring(index + 1) : '';
}
transform(fieldtext: string): string {
const match = fieldtext.match(/<([^>]*)>/);
return match ? match[1] : ''; // Extract the text between '<' and '>'
}
userrole;
rowSelected :any= {};
modaldelete=false;
modalEdit=false;
modalAdd= false;
public entryForm: FormGroup;
loading = false;
product;
modalOpenedforNewLine = false;
newLine:any;
additionalFieldsFromBackend: any[] = [];
formcode = 'Notes_and_terms_formCode'
tableName = 'Notes_and_terms'; checkFormCode; selected: any[] = []; constructor(
private extensionService: ExtensionService,
private userInfoService:UserInfoService,
private mainService:Notes_and_termsservice,
private alertService: AlertService,
private toastr: ToastrService,
private _fb: FormBuilder,
) { }
// component button
ngOnInit(): void {
if(this.cardmodeldata !== ''){
this.cardmodal = JSON.parse(this.cardmodeldata);
this.dashboardArray = this.cardmodal.dashboard.slice();
console.log(this.dashboardArray)
}
this.userrole=this.userInfoService.getRoles();
this.getData();
this.entryForm = this._fb.group({
additional_notes : [null],
terms_and_conditions : [null],
}); // component_button200
// form code start
this.extensionService.getJsonObjectsByFormCodeList(this.formcode).subscribe(data => {
console.log(data);
const jsonArray = data.map((str) => JSON.parse(str));
this.additionalFieldsFromBackend = jsonArray;
this.checkFormCode = this.additionalFieldsFromBackend.some(field => field.formCode === "Notes_and_terms_formCode");
console.log(this.checkFormCode);
console.log(this.additionalFieldsFromBackend);
if (this.additionalFieldsFromBackend && this.additionalFieldsFromBackend.length > 0) {
this.additionalFieldsFromBackend.forEach(field => {
if (field.formCode === this.formcode) {
if (!this.entryForm.contains(field.extValue)) {
// Add the control only if it doesn't exist in the form
this.entryForm.addControl(field.extValue, this._fb.control(field.fieldValue));
}
}
});
}
});
console.log(this.entryForm.value);
// form code end
}
error;
getData() {
this.mainService.getAll().subscribe((data) => {
console.log(data);
this.product = data;
if(this.product.length==0){
this.error="No Data Available"
}
},(error) => {
console.log(error);
if(error){
this.error="Server Error";
}
});
}
onEdit(row) {
this.rowSelected = row;
this.modalEdit = true;
}
onDelete(row) {
this.rowSelected = row;
this.modaldelete=true;
}
delete(id)
{
this.modaldelete = false;
console.log("in delete "+id);
this.mainService.delete(id).subscribe(
(data) => {
console.log(data);
this.ngOnInit();
if (data) { this.toastr.success('Deleted successfully'); }
});
}
onUpdate(id) {
this.modalEdit = false;
//console.log("in update");
console.log("id " + id);
console.log(this.rowSelected);
//console.log("out update");
this.mainService.update(id, this.rowSelected).subscribe(
(data) => {
console.log(data);
if (data || data.status >= 200 && data.status <= 299) {
this.toastr.success("Update Successfully");
}
setTimeout(() => {
this.ngOnInit();
}, 500);
}, (error) => {
console.log(error);
if (error.status >= 200 && error.status <= 299) {
// this.toastr.success("update Succesfully");
}
if (error.status >= 400 && error.status <= 499) {
this.toastr.error("Not Updated");
}
if (error.status >= 500 && error.status <= 599) {
this.toastr.error("Not Updated");
}
});
setTimeout(() => {
this.ngOnInit();
}, 500);
}
onCreate() {
this.modalAdd=false;
this.mainService.create(this.entryForm.value).subscribe(
(data) => {
console.log(data);
if (data || data.status >= 200 && data.status <= 299) {
this.toastr.success("Added Successfully");
}
setTimeout(() => {
this.ngOnInit();
}, 500);
}, (error) => {
console.log(error);
if (error.status >= 200 && error.status <= 299) {
// this.toastr.success("Added Succesfully");
}
if (error.status >= 400 && error.status <= 499) {
this.toastr.error("Not Added");
}
if (error.status >= 500 && error.status <= 599) {
this.toastr.error("Not Added");
}
});
setTimeout(() => {
this.ngOnInit();
}, 500);
}
goToAdd(row) {
this.modalAdd = true; this.submitted = false;
}
submitted = false;
onSubmit() {
console.log(this.entryForm.value);
this.submitted = true;
if (this.entryForm.invalid) {
return;
}this.onCreate();
}
rsModalterms_and_conditions = false;
goToReplaceStringterms_and_conditions (row){
this.rowSelected = row; this.rsModalterms_and_conditions =true; }
// updateaction
}

View File

@ -0,0 +1,37 @@
import { Injectable } from '@angular/core';
import { Observable } from "rxjs";
import { HttpClient, HttpHeaders, HttpParams, } from "@angular/common/http";
import { ApiRequestService } from "src/app/services/api/api-request.service";
import { environment } from 'src/environments/environment';
@Injectable({
providedIn: 'root'
})
export class Notes_and_termsservice{
private baseURL = "Notes_and_terms/Notes_and_terms" ; constructor(
private http: HttpClient,
private apiRequest: ApiRequestService,
) { }
getAll(page?: number, size?: number): Observable<any> {
return this.apiRequest.get(this.baseURL);
}
getById(id: number): Observable<any> {
const _http = this.baseURL + "/" + id;
return this.apiRequest.get(_http);
}
create(data: any): Observable<any> {
return this.apiRequest.post(this.baseURL, data);
}
update(id: number, data: any): Observable<any> {
const _http = this.baseURL + "/" + id;
return this.apiRequest.put(_http, data);
}
delete(id: number): Observable<any> {
const _http = this.baseURL + "/" + id;
return this.apiRequest.delete(_http);
}
// updateaction
}

View File

@ -0,0 +1,4 @@
export const Notes_and_termscardvariable = {
"cardButton": false,
"cardmodeldata": ``
}

View File

@ -0,0 +1,613 @@
<ol class="breadcrumb breadcrumb-arrow font-trirong">
<li><a href="javascript://"> Order summary</a></li>
</ol>
<div class="dg-wrapper">
<div class="clr-row">
<div class="clr-col-8">
<h3>Order summary </h3>
</div>
<div class="clr-col-4" style="text-align: right;">
<button *ngIf="cardButton" id="add" class="btn btn-primary btn-icon" (click)="changeView()" >
<clr-icon *ngIf="!isCardview" shape="grid-view"></clr-icon> <clr-icon *ngIf="isCardview" shape="bars"></clr-icon>
</button>
<!-- button -->
<button id="add" class="btn btn-primary" (click)="goToAdd(product)" >
<clr-icon shape="plus"></clr-icon>ADD
</button>
</div></div>
<ng-container *ngIf="!isCardview"> <!-- GET ALL --> <clr-datagrid [clrDgLoading]="loading" [(clrDgSelected)]="selected">
<clr-dg-placeholder>
<ng-template #loadingSpinner>
<clr-spinner>Loading ... </clr-spinner>
</ng-template>
<div *ngIf="error;else loadingSpinner">{{error}}</div>
</clr-dg-placeholder>
<clr-dg-column [clrDgField]="' line'"> <ng-container *clrDgHideableColumn="{hidden: false}"> Line
</ng-container></clr-dg-column>
<clr-dg-column [clrDgField]="' product'"> <ng-container *clrDgHideableColumn="{hidden: false}"> Product
</ng-container></clr-dg-column>
<clr-dg-column [clrDgField]="' description'"> <ng-container *clrDgHideableColumn="{hidden: false}"> Description
</ng-container></clr-dg-column>
<clr-dg-column [clrDgField]="' unit_price'"> <ng-container *clrDgHideableColumn="{hidden: false}"> Unit Price
</ng-container></clr-dg-column>
<clr-dg-column [clrDgField]="' quantity'"> <ng-container *clrDgHideableColumn="{hidden: false}"> Quantity
</ng-container></clr-dg-column>
<clr-dg-column [clrDgField]="' gst'"> <ng-container *clrDgHideableColumn="{hidden: false}"> GSt
</ng-container></clr-dg-column>
<clr-dg-column [clrDgField]="' final_total'"> <ng-container *clrDgHideableColumn="{hidden: false}"> final Total
</ng-container></clr-dg-column>
<!-- who column -->
<clr-dg-column> <ng-container *clrDgHideableColumn="{hidden: false}">
<clr-icon shape="bars"></clr-icon> Action
</ng-container></clr-dg-column>
<!-- end -->
<clr-dg-row *clrDgItems="let user of product" [clrDgItem]="user">
<clr-dg-cell>{{user. line }}</clr-dg-cell>
<clr-dg-cell>{{user. product }}</clr-dg-cell>
<clr-dg-cell (click)="goToReplaceStringdescription(user.description)" style="cursor: pointer; align-items: center;"><clr-icon shape="details"></clr-icon></clr-dg-cell>
<clr-dg-cell>{{user. unit_price }}</clr-dg-cell>
<clr-dg-cell>{{user. quantity }}</clr-dg-cell>
<clr-dg-cell>{{user. gst }}</clr-dg-cell>
<clr-dg-cell>{{user. final_total }}</clr-dg-cell>
<!-- who column -->
<clr-dg-cell>
<clr-signpost>
<span style="cursor: pointer;" clrSignpostTrigger><clr-icon shape="help" class="success" style="color: rgb(0, 130, 236);"></clr-icon></span>
<clr-signpost-content [clrPosition]="'left-middle'" *clrIfOpen>
<h5 style="margin-top: 0">Who Column</h5>
<div>Account ID: <code class="clr-code">{{user.accountId}}</code></div>
<div>Created At: <code class="clr-code">{{user.createdAt| date}}</code></div>
<div>Created By: <code class="clr-code">{{user.createdBy}}</code></div>
<div>Updated At: <code class="clr-code">{{user.updatedAt | date}}</code></div>
<div>Updated By: <code class="clr-code">{{user.updatedBy}}</code></div>
</clr-signpost-content>
</clr-signpost>
</clr-dg-cell>
<!-- who colmn -->
<clr-dg-action-overflow>
<button class="action-item" (click)="onEdit(user)">Edit</button>
<button class="action-item" (click)="onDelete(user)">Delete</button>
</clr-dg-action-overflow>
</clr-dg-row>
<clr-dg-footer>
<clr-dg-pagination #pagination [clrDgPageSize]="10">
<clr-dg-page-size [clrPageSizeOptions]="[10,20,50,100]">Users per page</clr-dg-page-size>
{{pagination.firstItem + 1}} - {{pagination.lastItem + 1}}
of {{pagination.totalItems}} users
</clr-dg-pagination>
</clr-dg-footer>
</clr-datagrid> </ng-container>
<ng-template #showInfo>
<div class="alert alert-info" role="alert">
<div class="alert-items">
<div class="alert-item static">
<span class="alert-text">
<clr-icon class="alert-icon" shape="info-circle"></clr-icon>
Data could be found. Loading..
<clr-spinner [clrMedium]="true">Loading ...</clr-spinner>
</span>
</div>
</div>
</div>
</ng-template><ng-container *ngIf="isCardview">
<div *ngIf="product; else showInfo" class="clr-row clr-align-items-start clr-justify-content-start">
<div *ngFor="let app of product| filter:search; let index = i" class="clr-col-auto" >
<div class="clr-row">
<div class="clr-col-lg-12 clr-col-md-4 clr-col-sm-4 clr-col-12" style="width: 410px;">
<div class="card" style="padding: 10px; "[style.background-color]="cardmodal.cardColor !== '' ? cardmodal.cardColor : 'white'">
<div class="card-body" style="display: grid; grid-template-columns: repeat(13, 1fr); grid-template-rows: repeat(7, 1fr); gap: 5px;">
<ng-container *ngFor="let item of dashboardArray">
<div [style.gridColumn]="item.x + 1" [style.gridRow]="item.y + 1" [style.gridColumnEnd]="item.x + item.cols + 1"
[style.gridRowEnd]="item.y + item.rows + 1">
<div *ngIf="item.name === 'textField'" class="title-card card-title"
[style.text-align]="item.alignment !== '' ? item.alignment : 'left'"
[style.line-height]="item.textlineheight !== '' ? item.textlineheight : '1'"
[style.font-family]="item.fontName !== '' ? item.fontName : 'Metropolis'"
[style.font-size]="item.fontSize !== '' ? item.fontSize : '100%'"
[style.font-style]="item.italic == true ? 'Italic' : 'normal'"
[style.font-weight]="item.bold == true ? 'bold' : 'normal'" [style.text-decoration]="(item.underline && item.strikethough) ? 'underline line-through' :
(item.underline ? 'underline' : (item.strikethough ? 'line-through' : 'none'))"
[style.background-color]="item.backgroundcolor !== '' ? item.backgroundcolor : 'white'"
[style.color]="item.textcolor !== '' ? item.textcolor : 'black'" [style.background-color]="item.conditionValue == app[transform(item.fieldtext) ] ? item.conditionbackgroundcolor : item.backgroundcolor"
[style.color]="item.conditionValue == app[transform(item.fieldtext) ] ? item.conditiontextcolor : item.textcolor">
{{beforeText(item.fieldtext)}}
{{ app[transform(item.fieldtext) ] }}
{{afterText(item.fieldtext)}}
</div>
<div *ngIf="item.name === 'dateField'" class="title-card card-title"
[style.text-align]="item.alignment !== '' ? item.alignment : 'left'"
[style.line-height]="item.textlineheight !== '' ? item.textlineheight : '1'"
[style.font-family]="item.fontName !== '' ? item.fontName : 'Metropolis'"
[style.font-size]="item.fontSize !== '' ? item.fontSize : '100%'"
[style.font-style]="item.italic == true ? 'Italic' : 'normal'"
[style.font-weight]="item.bold == true ? 'bold' : 'normal'" [style.text-decoration]="(item.underline && item.strikethough) ? 'underline line-through' :
(item.underline ? 'underline' : (item.strikethough ? 'line-through' : 'none'))"
[style.background-color]="item.backgroundcolor !== '' ? item.backgroundcolor : 'white'"
[style.color]="item.textcolor !== '' ? item.textcolor : 'black'" [style.background-color]="item.conditionValue == app[transform(item.fieldtext) ] ? item.conditionbackgroundcolor : item.backgroundcolor"
[style.color]="item.conditionValue == app[transform(item.fieldtext) ] ? item.conditiontextcolor : item.textcolor">
{{beforeText(item.fieldtext)}}
{{ app[transform(item.fieldtext) ] | date}}
{{afterText(item.fieldtext)}}
</div>
<div *ngIf="item.name === 'numberField'" class="title-card card-title"
[style.text-align]="item.alignment !== '' ? item.alignment : 'left'"
[style.line-height]="item.textlineheight !== '' ? item.textlineheight : '1'"
[style.font-family]="item.fontName !== '' ? item.fontName : 'Metropolis'"
[style.font-size]="item.fontSize !== '' ? item.fontSize : '100%'"
[style.font-style]="item.italic == true ? 'Italic' : 'normal'"
[style.font-weight]="item.bold == true ? 'bold' : 'normal'" [style.text-decoration]="(item.underline && item.strikethough) ? 'underline line-through' :
(item.underline ? 'underline' : (item.strikethough ? 'line-through' : 'none'))"
[style.background-color]="item.backgroundcolor !== '' ? item.backgroundcolor : 'white'"
[style.color]="item.textcolor !== '' ? item.textcolor : 'black'" [style.background-color]="item.conditionValue == app[transform(item.fieldtext) ] ? item.conditionbackgroundcolor : item.backgroundcolor"
[style.color]="item.conditionValue == app[transform(item.fieldtext) ] ? item.conditiontextcolor : item.textcolor">
{{beforeText(item.fieldtext)}}
{{ app[transform(item.fieldtext) ]}}
{{afterText(item.fieldtext)}}
</div>
<div *ngIf="item.name === 'Line'" class="title-card card-title"
[style.text-align]="item.alignment !== '' ? item.alignment : 'left'"
[style.line-height]="item.textlineheight !== '' ? item.textlineheight : '1'"
[style.font-family]="item.fontName !== '' ? item.fontName : 'Metropolis'"
[style.font-size]="item.fontSize !== '' ? item.fontSize : '100%'"
[style.font-style]="item.italic == true ? 'Italic' : 'normal'"
[style.font-weight]="item.bold == true ? 'bold' : 'normal'" [style.text-decoration]="(item.underline && item.strikethough) ? 'underline line-through' :
(item.underline ? 'underline' : (item.strikethough ? 'line-through' : 'none'))"
[style.background-color]="item.backgroundcolor !== '' ? item.backgroundcolor : 'white'"
[style.color]="item.textcolor !== '' ? item.textcolor : 'black'">
<hr>
</div>
<div *ngIf="item.name === 'Icon'" class="icon-card"
[style.text-align]="item.alignment !== '' ? item.alignment : 'left'"
[style.line-height]="item.textlineheight !== '' ? item.textlineheight : '1'"
[style.font-family]="item.fontName !== '' ? item.fontName : 'Metropolis'"
[style.font-size]="item.fontSize !== '' ? item.fontSize : '100%'"
[style.font-style]="item.italic == true ? 'Italic' : 'normal'"
[style.font-weight]="item.bold == true ? 'bold' : 'normal'" [style.text-decoration]="(item.underline && item.strikethough) ? 'underline line-through' :
(item.underline ? 'underline' : (item.strikethough ? 'line-through' : 'none'))"
[style.background-color]="item.backgroundcolor !== '' ? item.backgroundcolor : 'white'"
[style.color]="item.textcolor !== '' ? item.textcolor : 'black'"
>
<clr-icon [attr.shape]="item.iconName"></clr-icon>
</div>
<div *ngIf="item.name == 'Image'"
[style.text-align]="item.alignment !== '' ? item.alignment : 'left'"
[style.line-height]="item.textlineheight !== '' ? item.textlineheight : '1'"
[style.font-family]="item.fontName !== '' ? item.fontName : 'Metropolis'"
[style.font-size]="item.fontSize !== '' ? item.fontSize : '100%'"
[style.font-style]="item.italic == true ? 'Italic' : 'normal'"
[style.font-weight]="item.bold == true ? 'bold' : 'normal'" [style.text-decoration]="(item.underline && item.strikethough) ? 'underline line-through' :
(item.underline ? 'underline' : (item.strikethough ? 'line-through' : 'none'))"
[style.background-color]="item.backgroundcolor !== '' ? item.backgroundcolor : 'white'"
[style.color]="item.textcolor !== '' ? item.textcolor : 'black'"
[style.background-color]="item.conditionValue == app[transform(item.fieldtext) ] ? item.conditionbackgroundcolor : item.backgroundcolor"
[style.color]="item.conditionValue == app[transform(item.fieldtext) ] ? item.conditiontextcolor : item.textcolor"> <img id="filePreview" [src]="item.imageURL" alt="File Preview"
[style.width]="item.imagewidth !== '' ? item.imagewidth + 'px' : '100px'"
[style.height]="item.imagewidth !== '' ? item.imagewidth + 'px' : '100px'"></div>
</div>
</ng-container>
</div>
</div>
</div>
</div>
</div>
</div>
</ng-container>
</div>
<clr-modal [(clrModalOpen)]="rsModaldescription" [clrModalSize]="'xl'" [clrModalStaticBackdrop]="true">
<div class="modal-body">
<textarea class="form-control" style="width:100%; height: 400px;" readonly>{{rowSelected}}</textarea>
</div></clr-modal>
<!-- // EDIT DATA......... -->
<clr-modal [(clrModalOpen)]="modalEdit" [clrModalSize]="'lg'" [clrModalStaticBackdrop]="true">
<h3 class="modal-title">Update Order summary
<!--update button -->
</h3>
<div class="modal-body" *ngIf="rowSelected.id">
<h2 class="heading">{{rowSelected.id}}</h2>
<!-- button -->
<form >
<div class="clr-row">
<div class="clr-col-sm-12">
<label>Line</label>
<input id="name" class="clr-input" type="number" [(ngModel)]="rowSelected.line" name="line" />
</div>
<div class="clr-col-sm-12">
<label>Product</label>
<input class="clr-input" type="text" [(ngModel)]="rowSelected.product" name="product" />
</div>
<div class="clr-col-sm-12">
<label> Description</label>
<input id="name" type="Text" class="form-control" style="border: none; outline: none; height:33px !important;" [(ngModel)]="rowSelected.description" name=" description " /> </div>
<!-- currency field start -->
<div class="clr-col-sm-12">
<label> Unit Price</label>
<input type="number" class="clr-input" [(ngModel)]="rowSelected.unit_price" name="unit_price" (blur)="formatCurrencyunit_price()" [value]="rowSelected.unit_price | removeCommas">
</div>
<!-- currency field end -->
<div class="clr-col-sm-12">
<label>Quantity</label>
<input id="name" class="clr-input" type="number" [(ngModel)]="rowSelected.quantity" name="quantity" />
</div>
<!-- calculated field start -->
<div class="clr-col-12 fieldWrapper">
<table class="table table-noborder">
<thead>
<tr>
<th> unit_price</th>
<th> quantity</th>
<th>Total</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<input type="text" [(ngModel)]="totalunit_price" [ngModelOptions]="{standalone: true}" name="unit_price" (input)="onInputChangetotal()" class="clr-input"/>
</td>
<td>
<input type="text" [(ngModel)]="totalquantity" [ngModelOptions]="{standalone: true}" name="quantity" (input)="onInputChangetotal()" class="clr-input"/>
</td>
<td>
<input type="text" [(ngModel)]="totaltotal" [ngModelOptions]="{standalone: true}" name="total" class="clr-input" />
</td>
</tr>
</tbody> </table>
</div>
<!-- calculated field end -->
<div class="clr-col-sm-12">
<label>GSt</label>
<input id="name" class="clr-input" type="number" [(ngModel)]="rowSelected.gst" name="gst" />
</div>
<div class="clr-col-sm-12">
<label>final Total</label>
<input id="name" class="clr-input" type="number" [(ngModel)]="rowSelected.final_total" name="final_total" />
</div>
</div>
<!-- form code start -->
<div *ngIf="checkFormCode">
<h4 style="font-weight: 300;display: inline;">Extension</h4>
<br>
<hr>
<div class="clr-row">
<div class="clr-col-4" *ngFor="let field of additionalFieldsFromBackend">
<ng-container *ngIf="field.formCode === formcode" [ngSwitch]="field.fieldType">
<!-- Text Input --> <label *ngSwitchCase="'text'">{{ field.fieldName }}</label>
<input *ngSwitchCase="'text'" [type]="field.fieldType" name="{{ field.extValue }}" [(ngModel)]="rowSelected[field.extValue]" class="clr-input" />
<!-- Date Input --> <label *ngSwitchCase="'date'">{{ field.fieldName }}</label>
<input *ngSwitchCase="'date'" [type]="field.fieldType" name="{{ field.extValue }}" [(ngModel)]="rowSelected[field.extValue]" class="clr-input" />
<!-- Textarea --> <label *ngSwitchCase="'textarea'">{{ field.fieldName }}</label>
<textarea *ngSwitchCase="'textarea'" name="{{ field.extValue }}" [(ngModel)]="rowSelected[field.extValue]" col="10" row="2"></textarea>
<!-- Checkbox --> <label *ngSwitchCase="'checkbox'">{{ field.fieldName }}</label><br>
<input *ngSwitchCase="'checkbox'" [type]="field.fieldType" name="{{ field.extValue }}" [(ngModel)]="rowSelected[field.extValue]" class="clr-checkbox" />
</ng-container>
</div>
</div>
</div>
<!-- form code end --> <div class="modal-footer">
<button type="button" class="btn btn-outline" (click)="modalEdit = false">Cancel</button>
<button type="submit" class="btn btn-primary" (click)="onUpdate(rowSelected.id)">Update</button>
</div>
</form>
</div>
</clr-modal>
<clr-modal [(clrModalOpen)]="modaldelete" [clrModalSize]="'lg'" [clrModalStaticBackdrop]="true">
<div class="modal-body" *ngIf="rowSelected.id">
<h1 class="delete">Are You Sure Want to delete?</h1>
<h2 class="heading">{{rowSelected.id}}</h2>
<div class="modal-footer">
<button type="button" class="btn btn-outline" (click)="modaldelete = false">Cancel</button>
<button type="button" (click)="delete(rowSelected.id)" class="btn btn-primary" >Delete</button>
</div>
</div>
</clr-modal>
<!-- ADD FORM ..... -->
<clr-modal [(clrModalOpen)]="modalAdd" [clrModalSize]="'lg'" [clrModalStaticBackdrop]="true">
<h3 class="modal-title">Add Order summary
<!-- aeroplane icon -->
&nbsp; &nbsp; &nbsp; &nbsp;
<a *ngIf="userrole?.includes('ADMIN')" style="float: right;" href="javascript:void(0)" role="tooltip" aria-haspopup="true"
class="tooltip tooltip-sm tooltip-bottom-left">
<a id="build_extension" [routerLink]="['../extension/all']" [queryParams]="{ formCode: 'Order_summary_formCode' }">
<clr-icon shape="airplane" size="32"></clr-icon>
</a>
<span class="tooltip-content">Form Extension</span>
</a> </h3>
<div class="modal-body">
<form [formGroup]="entryForm" >
<div class="clr-row" style="height: fit-content;">
<div class="clr-col-sm-12">
<label> Line</label>
<input class="clr-input" type="number" formControlName="line" />
<div *ngIf="submitted && entryForm.controls.line.errors" class="error_mess">
<div *ngIf="submitted && entryForm.controls.line.errors.required" class="error_mess">*This field is Required</div>
</div>
</div>
<div class="clr-col-sm-12">
<label> Product</label>
<input class="clr-input" type="text" formControlName="product" />
</div>
<div class="clr-col-sm-12">
<label>Description</label>
<input class="form-control" type="Text" formControlName="description" style="border: none; outline: none; height:33px !important;" />
</div>
<!-- currency field start -->
<div class="clr-col-sm-12">
<label> Unit Price</label>
<input type="number" class="clr-input" formControlName="unit_price" [value]="entryForm.value.unit_price | number:'1.2-2' | removeCommas">
</div>
<!-- currency field end -->
<div class="clr-col-sm-12">
<label> Quantity</label>
<input class="clr-input" type="number" formControlName="quantity" />
<div *ngIf="submitted && entryForm.controls.quantity.errors" class="error_mess">
<div *ngIf="submitted && entryForm.controls.quantity.errors.required" class="error_mess">*This field is Required</div>
</div>
</div>
<!-- calculated field start -->
<div class="clr-col-12 fieldWrapper">
<table class="table table-noborder">
<thead>
<tr>
<th> unit_price </th>
<th> quantity </th>
<th>Total</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<input type="text" [(ngModel)]="totalunit_price" [ngModelOptions]="{standalone: true}" name="unit_price" (input)="onInputChangetotal()" class="clr-input" />
</td>
<td>
<input type="text" [(ngModel)]="totalquantity" [ngModelOptions]="{standalone: true}" name="quantity" (input)="onInputChangetotal()" class="clr-input" />
</td>
<td>
<input type="text" [(ngModel)]="totaltotal" [ngModelOptions]="{standalone: true}" name="total" class="clr-input" />"
</td>
</tr>
</tbody>
</table>
</div>
<!-- calculated field end -->
<div class="clr-col-sm-12">
<label> GSt</label>
<input class="clr-input" type="number" formControlName="gst" />
<div *ngIf="submitted && entryForm.controls.gst.errors" class="error_mess">
<div *ngIf="submitted && entryForm.controls.gst.errors.required" class="error_mess">*This field is Required</div>
</div>
</div>
<div class="clr-col-sm-12">
<label> final Total</label>
<input class="clr-input" type="number" formControlName="final_total" />
<div *ngIf="submitted && entryForm.controls.final_total.errors" class="error_mess">
<div *ngIf="submitted && entryForm.controls.final_total.errors.required" class="error_mess">*This field is Required</div>
</div>
</div>
</div>
<!-- form code start -->
<div *ngIf="checkFormCode">
<h4 style="font-weight: 300;display: inline;">Extension</h4>
<br>
<hr>
<div class="clr-row">
<div class="clr-col-4" *ngFor="let field of additionalFieldsFromBackend">
<ng-container *ngIf="field.formCode === formcode" [ngSwitch]="field.fieldType">
<!-- Text Input --> <label *ngSwitchCase="'text'">{{ field.fieldName }}</label>
<input *ngSwitchCase="'text'" [type]="field.fieldType" [formControlName]="field.extValue"
class="clr-input" />
<!-- Date Input --> <label *ngSwitchCase="'date'">{{ field.fieldName }}</label>
<input *ngSwitchCase="'date'" [type]="field.fieldType" [formControlName]="field.extValue"
class="clr-input" />
<!-- Textarea --> <label *ngSwitchCase="'textarea'">{{ field.fieldName }}</label>
<textarea *ngSwitchCase="'textarea'" [formControlName]="field.extValue" col="10" row="2"></textarea>
<!-- Checkbox --> <label *ngSwitchCase="'checkbox'">{{ field.fieldName }}</label><br>
<input *ngSwitchCase="'checkbox'" [type]="field.fieldType" [formControlName]="field.extValue"
class="clr-checkbox" />
</ng-container>
</div>
</div>
</div>
<!-- form code end --> <div class="modal-footer">
<button type="button" class="btn btn-outline" (click)="modalAdd = false">Cancel</button>
<button type="submit" class="btn btn-primary" (click)="onSubmit()">ADD</button>
</div>
</form>
</div>
</clr-modal>
<!-- htmlpopup -->

View File

@ -0,0 +1,78 @@
//@import "../../../../assets/scss/var";
.s-info-bar {
display: flex;
flex-direction: row;
justify-content: space-between;
button {
outline: none;
}
}
.delete,.heading{
text-align: center;
color: red;
}
.entry-pg {
width: 750px;
}
.button1::after {
content: none;
}
.button1:hover::after {
content: "ADD ROWS";
}
.section {
background-color: #dddddd;
height: 40px;
}
.section p {
//color: white;
padding: 10px;
font-size: 18px;
}
.clr-input {
color: #212529;
border: 1px solid #ced4da;
border-radius: 0.25rem;
padding: 0.75rem 0.75rem;
margin-top: 3px;
width: 100%;
margin-bottom: 10px;
}
.clr-file {
color: #212529;
border: 1px solid #ced4da;
border-radius: 0.25rem;
//padding: 0.6rem 0.75rem;
margin-top: 3px;
width: 100%;
margin-bottom: 10px;
}
.center {
text-align: center;
}
select{
width: 100%;
margin-top: 3px;
padding: 5px 5px;
border: 1px solid #ccc;
border-radius: 4px;
}
input[type=text],[type=date],[type=number],textarea {
width: 100%;
padding: 15px 15px;
background-color:rgb(255, 255, 255);
// margin: 8px 0;
display: inline-block;
border: 1px solid #ccc;
border-radius: 4px;
box-sizing: border-box;
}
.error_mess {
color: red;
}

View File

@ -0,0 +1,540 @@
import { Component, OnInit } from '@angular/core';
import { ToastrService } from 'ngx-toastr';
import { AlertService } from 'src/app/services/alert.service';
import { Order_summaryservice} from './Order_summary.service';
import { AbstractControl, FormArray, FormBuilder, FormGroup, Validators, ValidationErrors } from '@angular/forms';
import { ExtensionService } from 'src/app/services/fnd/extension.service';
import { DashboardContentModel2 } from 'src/app/models/builder/dashboard';
import { Order_summarycardvariable } from './Order_summary_cardvariable';
import { UserInfoService } from 'src/app/services/user-info.service';
declare var JsBarcode: any;
@Component({
selector: 'app-Order_summary',
templateUrl: './Order_summary.component.html',
styleUrls: ['./Order_summary.component.scss']
})
export class Order_summaryComponent implements OnInit {
cardButton = Order_summarycardvariable.cardButton;
cardmodeldata = Order_summarycardvariable.cardmodeldata;
public dashboardArray: DashboardContentModel2[];
isCardview = Order_summarycardvariable.cardButton;
cardmodal; changeView(){
this.isCardview = !this.isCardview;
}
beforeText(fieldtext: string): string { // Extract the text before the first '<'
const index = fieldtext.indexOf('<');
return index !== -1 ? fieldtext.substring(0, index) : fieldtext;
}
afterText(fieldtext: string): string { // Extract the text after the last '>'
const index = fieldtext.lastIndexOf('>');
return index !== -1 ? fieldtext.substring(index + 1) : '';
}
transform(fieldtext: string): string {
const match = fieldtext.match(/<([^>]*)>/);
return match ? match[1] : ''; // Extract the text between '<' and '>'
}
userrole;
rowSelected :any= {};
modaldelete=false;
modalEdit=false;
modalAdd= false;
public entryForm: FormGroup;
loading = false;
product;
modalOpenedforNewLine = false;
newLine:any;
additionalFieldsFromBackend: any[] = [];
formcode = 'Order_summary_formCode'
tableName = 'Order_summary'; checkFormCode; selected: any[] = []; constructor(
private extensionService: ExtensionService,
private userInfoService:UserInfoService,
private mainService:Order_summaryservice,
private alertService: AlertService,
private toastr: ToastrService,
private _fb: FormBuilder,
) { }
// component button
ngOnInit(): void {
if(this.cardmodeldata !== ''){
this.cardmodal = JSON.parse(this.cardmodeldata);
this.dashboardArray = this.cardmodal.dashboard.slice();
console.log(this.dashboardArray)
}
this.userrole=this.userInfoService.getRoles();
this.getData();
this.entryForm = this._fb.group({
line : [null,[Validators.required]],
product : [null],
description : [null],
unit_price : [null, { updateOn: 'blur' }],
quantity : [null,[Validators.required]],
gst : [null,[Validators.required]],
final_total : [null,[Validators.required]],
}); // component_button200
// form code start
this.extensionService.getJsonObjectsByFormCodeList(this.formcode).subscribe(data => {
console.log(data);
const jsonArray = data.map((str) => JSON.parse(str));
this.additionalFieldsFromBackend = jsonArray;
this.checkFormCode = this.additionalFieldsFromBackend.some(field => field.formCode === "Order_summary_formCode");
console.log(this.checkFormCode);
console.log(this.additionalFieldsFromBackend);
if (this.additionalFieldsFromBackend && this.additionalFieldsFromBackend.length > 0) {
this.additionalFieldsFromBackend.forEach(field => {
if (field.formCode === this.formcode) {
if (!this.entryForm.contains(field.extValue)) {
// Add the control only if it doesn't exist in the form
this.entryForm.addControl(field.extValue, this._fb.control(field.fieldValue));
}
}
});
}
});
console.log(this.entryForm.value);
// form code end
}
error;
getData() {
this.mainService.getAll().subscribe((data) => {
console.log(data);
this.product = data;
if(this.product.length==0){
this.error="No Data Available"
}
},(error) => {
console.log(error);
if(error){
this.error="Server Error";
}
});
}
onEdit(row) {
this.rowSelected = row;
//calculated field start
this.totalunit_price= row.unit_price;
this.totalquantity= row.quantity;
//calculated field end
this.modalEdit = true;
}
onDelete(row) {
this.rowSelected = row;
this.modaldelete=true;
}
delete(id)
{
this.modaldelete = false;
console.log("in delete "+id);
this.mainService.delete(id).subscribe(
(data) => {
console.log(data);
this.ngOnInit();
if (data) { this.toastr.success('Deleted successfully'); }
});
}
onUpdate(id) {
this.modalEdit = false;
//calculated field start
this.rowSelected.unit_price= this.totalunit_price;
this.rowSelected.quantity= this.totalquantity;
this.onInputChangetotal ();
//calculated field end
//console.log("in update");
console.log("id " + id);
console.log(this.rowSelected);
//console.log("out update");
this.mainService.update(id, this.rowSelected).subscribe(
(data) => {
console.log(data);
if (data || data.status >= 200 && data.status <= 299) {
this.toastr.success("Update Successfully");
}
setTimeout(() => {
this.ngOnInit();
}, 500);
}, (error) => {
console.log(error);
if (error.status >= 200 && error.status <= 299) {
// this.toastr.success("update Succesfully");
}
if (error.status >= 400 && error.status <= 499) {
this.toastr.error("Not Updated");
}
if (error.status >= 500 && error.status <= 599) {
this.toastr.error("Not Updated");
}
});
setTimeout(() => {
this.ngOnInit();
}, 500);
}
onCreate() {
this.modalAdd=false;
//calculated field start
this.entryForm.value.unit_price = this.totalunit_price ;
this.entryForm.value.quantity = this.totalquantity ;
//calculated field end
this.mainService.create(this.entryForm.value).subscribe(
(data) => {
console.log(data);
if (data || data.status >= 200 && data.status <= 299) {
this.toastr.success("Added Successfully");
}
setTimeout(() => {
this.ngOnInit();
}, 500);
}, (error) => {
console.log(error);
if (error.status >= 200 && error.status <= 299) {
// this.toastr.success("Added Succesfully");
}
if (error.status >= 400 && error.status <= 499) {
this.toastr.error("Not Added");
}
if (error.status >= 500 && error.status <= 599) {
this.toastr.error("Not Added");
}
});
setTimeout(() => {
this.ngOnInit();
}, 500);
}
goToAdd(row) {
this.modalAdd = true; this.submitted = false;
//calculated field start
this.totalunit_price = '';
this.totalquantity = '';
this.totaltotal = '';
//calculated field end
}
submitted = false;
onSubmit() {
console.log(this.entryForm.value);
this.submitted = true;
if (this.entryForm.invalid) {
return;
}this.onCreate();
}
rsModaldescription = false;
goToReplaceStringdescription (row){
this.rowSelected = row; this.rsModaldescription =true; }
//currency field start
formatCurrencyunit_price () {
// Format the currency with two decimal places
this.rowSelected.unit_price = Number(this.rowSelected.unit_price ).toFixed(2);
// Remove commas from the formatted currency
this.rowSelected.unit_price = this.rowSelected.unit_price?.replace(/,/g, ''); }
//currency field end
// calculated field code start
totalunit_price;
totalquantity;
totaltotal ;
totalcalculateOperators = "Multiplication"
onInputChangetotal() {
const lastObj = 0
const lastObjstring = ''
const unit_price= this.totalunit_price|| '';
const unit_priceValue = parseFloat(this.totalunit_price) || 0;
const quantity= this.totalquantity|| '';
const quantityValue = parseFloat(this.totalquantity) || 0;
if (this.totalcalculateOperators =="Addition") {
this.totaltotal = (
unit_priceValue +
quantityValue +
lastObj).toString();
}
if (this.totalcalculateOperators == "Subtraction") {
this.totaltotal = (
unit_priceValue -
quantityValue -
lastObj).toString();
}
if (this.totalcalculateOperators =="Multiplication") {
this.totaltotal = (
unit_priceValue *
quantityValue *
lastObj).toString();
}
if (this.totalcalculateOperators =="Division") {
this.totaltotal = (
unit_priceValue /
quantityValue /
lastObj).toString();
}
if (this.totalcalculateOperators =="Concatination") {
this.totaltotal =
unit_price+ ' '+
quantity+ ' '+
lastObjstring
}
}
// updateaction
}

View File

@ -0,0 +1,49 @@
import { Injectable } from '@angular/core';
import { Observable } from "rxjs";
import { HttpClient, HttpHeaders, HttpParams, } from "@angular/common/http";
import { ApiRequestService } from "src/app/services/api/api-request.service";
import { environment } from 'src/environments/environment';
@Injectable({
providedIn: 'root'
})
export class Order_summaryservice{
private baseURL = "Order_summary/Order_summary" ; constructor(
private http: HttpClient,
private apiRequest: ApiRequestService,
) { }
getAll(page?: number, size?: number): Observable<any> {
return this.apiRequest.get(this.baseURL);
}
getById(id: number): Observable<any> {
const _http = this.baseURL + "/" + id;
return this.apiRequest.get(_http);
}
create(data: any): Observable<any> {
return this.apiRequest.post(this.baseURL, data);
}
update(id: number, data: any): Observable<any> {
const _http = this.baseURL + "/" + id;
return this.apiRequest.put(_http, data);
}
delete(id: number): Observable<any> {
const _http = this.baseURL + "/" + id;
return this.apiRequest.delete(_http);
}
// updateaction
}

View File

@ -0,0 +1,4 @@
export const Order_summarycardvariable = {
"cardButton": false,
"cardmodeldata": ``
}

View File

@ -0,0 +1,571 @@
<ol class="breadcrumb breadcrumb-arrow font-trirong">
<li><a href="javascript://"> Product Selection</a></li>
</ol>
<div class="dg-wrapper">
<div class="clr-row">
<div class="clr-col-8">
<h3>Product Selection </h3>
</div>
<div class="clr-col-4" style="text-align: right;">
<button *ngIf="cardButton" id="add" class="btn btn-primary btn-icon" (click)="changeView()" >
<clr-icon *ngIf="!isCardview" shape="grid-view"></clr-icon> <clr-icon *ngIf="isCardview" shape="bars"></clr-icon>
</button>
<!-- button -->
<!-- insert button -->
<button id="insert" class="btn btn-primary" (click)="goToInsertAdd_to_order_Btn()">
<clr-icon shape="plus"></clr-icon>Insert Add_to_order_Btn
</button>
<!-- insert end -->
<button id="add" class="btn btn-primary" (click)="goToAdd(product)" >
<clr-icon shape="plus"></clr-icon>ADD
</button>
</div></div>
<ng-container *ngIf="!isCardview"> <!-- GET ALL --> <clr-datagrid [clrDgLoading]="loading" [(clrDgSelected)]="selected">
<clr-dg-placeholder>
<ng-template #loadingSpinner>
<clr-spinner>Loading ... </clr-spinner>
</ng-template>
<div *ngIf="error;else loadingSpinner">{{error}}</div>
</clr-dg-placeholder>
<clr-dg-column [clrDgField]="' name'"> <ng-container *clrDgHideableColumn="{hidden: false}"> name
</ng-container></clr-dg-column>
<clr-dg-column [clrDgField]="' manufacturer'"> <ng-container *clrDgHideableColumn="{hidden: false}"> Manufacturer
</ng-container></clr-dg-column>
<clr-dg-column [clrDgField]="' type'"> <ng-container *clrDgHideableColumn="{hidden: false}"> Type
</ng-container></clr-dg-column>
<clr-dg-column [clrDgField]="' product'"> <ng-container *clrDgHideableColumn="{hidden: false}"> Product
</ng-container></clr-dg-column>
<clr-dg-column [clrDgField]="' price'"> <ng-container *clrDgHideableColumn="{hidden: false}"> Price
</ng-container></clr-dg-column>
<clr-dg-column [clrDgField]="' quantity'"> <ng-container *clrDgHideableColumn="{hidden: false}"> Quantity
</ng-container></clr-dg-column>
<!-- who column -->
<clr-dg-column> <ng-container *clrDgHideableColumn="{hidden: false}">
<clr-icon shape="bars"></clr-icon> Action
</ng-container></clr-dg-column>
<!-- end -->
<clr-dg-row *clrDgItems="let user of product" [clrDgItem]="user">
<clr-dg-cell>{{user. name }}</clr-dg-cell>
<clr-dg-cell>{{user. manufacturername }}</clr-dg-cell>
<clr-dg-cell>{{user. typename }}</clr-dg-cell>
<clr-dg-cell>{{user. productname }}</clr-dg-cell>
<clr-dg-cell>{{user. price }}</clr-dg-cell>
<clr-dg-cell>{{user. quantity }}</clr-dg-cell>
<!-- who column -->
<clr-dg-cell>
<clr-signpost>
<span style="cursor: pointer;" clrSignpostTrigger><clr-icon shape="help" class="success" style="color: rgb(0, 130, 236);"></clr-icon></span>
<clr-signpost-content [clrPosition]="'left-middle'" *clrIfOpen>
<h5 style="margin-top: 0">Who Column</h5>
<div>Account ID: <code class="clr-code">{{user.accountId}}</code></div>
<div>Created At: <code class="clr-code">{{user.createdAt| date}}</code></div>
<div>Created By: <code class="clr-code">{{user.createdBy}}</code></div>
<div>Updated At: <code class="clr-code">{{user.updatedAt | date}}</code></div>
<div>Updated By: <code class="clr-code">{{user.updatedBy}}</code></div>
</clr-signpost-content>
</clr-signpost>
</clr-dg-cell>
<!-- who colmn -->
<clr-dg-action-overflow>
<button class="action-item" (click)="onEdit(user)">Edit</button>
<button class="action-item" (click)="onDelete(user)">Delete</button>
</clr-dg-action-overflow>
</clr-dg-row>
<clr-dg-footer>
<clr-dg-pagination #pagination [clrDgPageSize]="10">
<clr-dg-page-size [clrPageSizeOptions]="[10,20,50,100]">Users per page</clr-dg-page-size>
{{pagination.firstItem + 1}} - {{pagination.lastItem + 1}}
of {{pagination.totalItems}} users
</clr-dg-pagination>
</clr-dg-footer>
</clr-datagrid> </ng-container>
<ng-template #showInfo>
<div class="alert alert-info" role="alert">
<div class="alert-items">
<div class="alert-item static">
<span class="alert-text">
<clr-icon class="alert-icon" shape="info-circle"></clr-icon>
Data could be found. Loading..
<clr-spinner [clrMedium]="true">Loading ...</clr-spinner>
</span>
</div>
</div>
</div>
</ng-template><ng-container *ngIf="isCardview">
<div *ngIf="product; else showInfo" class="clr-row clr-align-items-start clr-justify-content-start">
<div *ngFor="let app of product| filter:search; let index = i" class="clr-col-auto" >
<div class="clr-row">
<div class="clr-col-lg-12 clr-col-md-4 clr-col-sm-4 clr-col-12" style="width: 410px;">
<div class="card" style="padding: 10px; "[style.background-color]="cardmodal.cardColor !== '' ? cardmodal.cardColor : 'white'">
<div class="card-body" style="display: grid; grid-template-columns: repeat(13, 1fr); grid-template-rows: repeat(7, 1fr); gap: 5px;">
<ng-container *ngFor="let item of dashboardArray">
<div [style.gridColumn]="item.x + 1" [style.gridRow]="item.y + 1" [style.gridColumnEnd]="item.x + item.cols + 1"
[style.gridRowEnd]="item.y + item.rows + 1">
<div *ngIf="item.name === 'textField'" class="title-card card-title"
[style.text-align]="item.alignment !== '' ? item.alignment : 'left'"
[style.line-height]="item.textlineheight !== '' ? item.textlineheight : '1'"
[style.font-family]="item.fontName !== '' ? item.fontName : 'Metropolis'"
[style.font-size]="item.fontSize !== '' ? item.fontSize : '100%'"
[style.font-style]="item.italic == true ? 'Italic' : 'normal'"
[style.font-weight]="item.bold == true ? 'bold' : 'normal'" [style.text-decoration]="(item.underline && item.strikethough) ? 'underline line-through' :
(item.underline ? 'underline' : (item.strikethough ? 'line-through' : 'none'))"
[style.background-color]="item.backgroundcolor !== '' ? item.backgroundcolor : 'white'"
[style.color]="item.textcolor !== '' ? item.textcolor : 'black'" [style.background-color]="item.conditionValue == app[transform(item.fieldtext) ] ? item.conditionbackgroundcolor : item.backgroundcolor"
[style.color]="item.conditionValue == app[transform(item.fieldtext) ] ? item.conditiontextcolor : item.textcolor">
{{beforeText(item.fieldtext)}}
{{ app[transform(item.fieldtext) ] }}
{{afterText(item.fieldtext)}}
</div>
<div *ngIf="item.name === 'dateField'" class="title-card card-title"
[style.text-align]="item.alignment !== '' ? item.alignment : 'left'"
[style.line-height]="item.textlineheight !== '' ? item.textlineheight : '1'"
[style.font-family]="item.fontName !== '' ? item.fontName : 'Metropolis'"
[style.font-size]="item.fontSize !== '' ? item.fontSize : '100%'"
[style.font-style]="item.italic == true ? 'Italic' : 'normal'"
[style.font-weight]="item.bold == true ? 'bold' : 'normal'" [style.text-decoration]="(item.underline && item.strikethough) ? 'underline line-through' :
(item.underline ? 'underline' : (item.strikethough ? 'line-through' : 'none'))"
[style.background-color]="item.backgroundcolor !== '' ? item.backgroundcolor : 'white'"
[style.color]="item.textcolor !== '' ? item.textcolor : 'black'" [style.background-color]="item.conditionValue == app[transform(item.fieldtext) ] ? item.conditionbackgroundcolor : item.backgroundcolor"
[style.color]="item.conditionValue == app[transform(item.fieldtext) ] ? item.conditiontextcolor : item.textcolor">
{{beforeText(item.fieldtext)}}
{{ app[transform(item.fieldtext) ] | date}}
{{afterText(item.fieldtext)}}
</div>
<div *ngIf="item.name === 'numberField'" class="title-card card-title"
[style.text-align]="item.alignment !== '' ? item.alignment : 'left'"
[style.line-height]="item.textlineheight !== '' ? item.textlineheight : '1'"
[style.font-family]="item.fontName !== '' ? item.fontName : 'Metropolis'"
[style.font-size]="item.fontSize !== '' ? item.fontSize : '100%'"
[style.font-style]="item.italic == true ? 'Italic' : 'normal'"
[style.font-weight]="item.bold == true ? 'bold' : 'normal'" [style.text-decoration]="(item.underline && item.strikethough) ? 'underline line-through' :
(item.underline ? 'underline' : (item.strikethough ? 'line-through' : 'none'))"
[style.background-color]="item.backgroundcolor !== '' ? item.backgroundcolor : 'white'"
[style.color]="item.textcolor !== '' ? item.textcolor : 'black'" [style.background-color]="item.conditionValue == app[transform(item.fieldtext) ] ? item.conditionbackgroundcolor : item.backgroundcolor"
[style.color]="item.conditionValue == app[transform(item.fieldtext) ] ? item.conditiontextcolor : item.textcolor">
{{beforeText(item.fieldtext)}}
{{ app[transform(item.fieldtext) ]}}
{{afterText(item.fieldtext)}}
</div>
<div *ngIf="item.name === 'Line'" class="title-card card-title"
[style.text-align]="item.alignment !== '' ? item.alignment : 'left'"
[style.line-height]="item.textlineheight !== '' ? item.textlineheight : '1'"
[style.font-family]="item.fontName !== '' ? item.fontName : 'Metropolis'"
[style.font-size]="item.fontSize !== '' ? item.fontSize : '100%'"
[style.font-style]="item.italic == true ? 'Italic' : 'normal'"
[style.font-weight]="item.bold == true ? 'bold' : 'normal'" [style.text-decoration]="(item.underline && item.strikethough) ? 'underline line-through' :
(item.underline ? 'underline' : (item.strikethough ? 'line-through' : 'none'))"
[style.background-color]="item.backgroundcolor !== '' ? item.backgroundcolor : 'white'"
[style.color]="item.textcolor !== '' ? item.textcolor : 'black'">
<hr>
</div>
<div *ngIf="item.name === 'Icon'" class="icon-card"
[style.text-align]="item.alignment !== '' ? item.alignment : 'left'"
[style.line-height]="item.textlineheight !== '' ? item.textlineheight : '1'"
[style.font-family]="item.fontName !== '' ? item.fontName : 'Metropolis'"
[style.font-size]="item.fontSize !== '' ? item.fontSize : '100%'"
[style.font-style]="item.italic == true ? 'Italic' : 'normal'"
[style.font-weight]="item.bold == true ? 'bold' : 'normal'" [style.text-decoration]="(item.underline && item.strikethough) ? 'underline line-through' :
(item.underline ? 'underline' : (item.strikethough ? 'line-through' : 'none'))"
[style.background-color]="item.backgroundcolor !== '' ? item.backgroundcolor : 'white'"
[style.color]="item.textcolor !== '' ? item.textcolor : 'black'"
>
<clr-icon [attr.shape]="item.iconName"></clr-icon>
</div>
<div *ngIf="item.name == 'Image'"
[style.text-align]="item.alignment !== '' ? item.alignment : 'left'"
[style.line-height]="item.textlineheight !== '' ? item.textlineheight : '1'"
[style.font-family]="item.fontName !== '' ? item.fontName : 'Metropolis'"
[style.font-size]="item.fontSize !== '' ? item.fontSize : '100%'"
[style.font-style]="item.italic == true ? 'Italic' : 'normal'"
[style.font-weight]="item.bold == true ? 'bold' : 'normal'" [style.text-decoration]="(item.underline && item.strikethough) ? 'underline line-through' :
(item.underline ? 'underline' : (item.strikethough ? 'line-through' : 'none'))"
[style.background-color]="item.backgroundcolor !== '' ? item.backgroundcolor : 'white'"
[style.color]="item.textcolor !== '' ? item.textcolor : 'black'"
[style.background-color]="item.conditionValue == app[transform(item.fieldtext) ] ? item.conditionbackgroundcolor : item.backgroundcolor"
[style.color]="item.conditionValue == app[transform(item.fieldtext) ] ? item.conditiontextcolor : item.textcolor"> <img id="filePreview" [src]="item.imageURL" alt="File Preview"
[style.width]="item.imagewidth !== '' ? item.imagewidth + 'px' : '100px'"
[style.height]="item.imagewidth !== '' ? item.imagewidth + 'px' : '100px'"></div>
</div>
</ng-container>
</div>
</div>
</div>
</div>
</div>
</div>
</ng-container>
</div>
<!-- // EDIT DATA......... -->
<clr-modal [(clrModalOpen)]="modalEdit" [clrModalSize]="'lg'" [clrModalStaticBackdrop]="true">
<h3 class="modal-title">Update Product Selection
<!--update button -->
</h3>
<div class="modal-body" *ngIf="rowSelected.id">
<h2 class="heading">{{rowSelected.id}}</h2>
<!-- button -->
<form >
<div class="clr-row">
<div class="clr-col-sm-12">
<label>name</label>
<input class="clr-input" type="text" [(ngModel)]="rowSelected.name" name="name" />
</div>
<div class="clr-col-sm-12">
<label>Manufacturer</label>
<select name="manufacturer" [(ngModel)]="rowSelected.manufacturer">
<option [value]="null">Choose manufacturer</option>
<option *ngFor=" let item of selectmanufacturer" [value]="item.id">{{item.Manufacturer_name }}</option> </select> </div>
<div class="clr-col-sm-12">
<label>Type</label>
<select name="type" [(ngModel)]="rowSelected.type">
<option [value]="null">Choose type</option>
<option *ngFor=" let item of selecttype" [value]="item.id">{{item.Type_name }}</option> </select> </div>
<div class="clr-col-sm-12">
<label>Product</label>
<select name="product" [(ngModel)]="rowSelected.product">
<option [value]="null">Choose product</option>
<option *ngFor=" let item of selectproduct" [value]="item.id">{{item.Product_name }}</option> </select> </div>
<!-- currency field start -->
<div class="clr-col-sm-12">
<label> Price</label>
<input type="number" class="clr-input" [(ngModel)]="rowSelected.price" name="price" (blur)="formatCurrencyprice()" [value]="rowSelected.price | removeCommas">
</div>
<!-- currency field end -->
<div class="clr-col-sm-12">
<label>Quantity</label>
<input id="name" class="clr-input" type="number" [(ngModel)]="rowSelected.quantity" name="quantity" />
</div>
</div>
<!-- form code start -->
<div *ngIf="checkFormCode">
<h4 style="font-weight: 300;display: inline;">Extension</h4>
<br>
<hr>
<div class="clr-row">
<div class="clr-col-4" *ngFor="let field of additionalFieldsFromBackend">
<ng-container *ngIf="field.formCode === formcode" [ngSwitch]="field.fieldType">
<!-- Text Input --> <label *ngSwitchCase="'text'">{{ field.fieldName }}</label>
<input *ngSwitchCase="'text'" [type]="field.fieldType" name="{{ field.extValue }}" [(ngModel)]="rowSelected[field.extValue]" class="clr-input" />
<!-- Date Input --> <label *ngSwitchCase="'date'">{{ field.fieldName }}</label>
<input *ngSwitchCase="'date'" [type]="field.fieldType" name="{{ field.extValue }}" [(ngModel)]="rowSelected[field.extValue]" class="clr-input" />
<!-- Textarea --> <label *ngSwitchCase="'textarea'">{{ field.fieldName }}</label>
<textarea *ngSwitchCase="'textarea'" name="{{ field.extValue }}" [(ngModel)]="rowSelected[field.extValue]" col="10" row="2"></textarea>
<!-- Checkbox --> <label *ngSwitchCase="'checkbox'">{{ field.fieldName }}</label><br>
<input *ngSwitchCase="'checkbox'" [type]="field.fieldType" name="{{ field.extValue }}" [(ngModel)]="rowSelected[field.extValue]" class="clr-checkbox" />
</ng-container>
</div>
</div>
</div>
<!-- form code end --> <div class="modal-footer">
<button type="button" class="btn btn-outline" (click)="modalEdit = false">Cancel</button>
<button type="submit" class="btn btn-primary" (click)="onUpdate(rowSelected.id)">Update</button>
</div>
</form>
</div>
</clr-modal>
<clr-modal [(clrModalOpen)]="modaldelete" [clrModalSize]="'lg'" [clrModalStaticBackdrop]="true">
<div class="modal-body" *ngIf="rowSelected.id">
<h1 class="delete">Are You Sure Want to delete?</h1>
<h2 class="heading">{{rowSelected.id}}</h2>
<div class="modal-footer">
<button type="button" class="btn btn-outline" (click)="modaldelete = false">Cancel</button>
<button type="button" (click)="delete(rowSelected.id)" class="btn btn-primary" >Delete</button>
</div>
</div>
</clr-modal>
<!-- ADD FORM ..... -->
<clr-modal [(clrModalOpen)]="modalAdd" [clrModalSize]="'lg'" [clrModalStaticBackdrop]="true">
<h3 class="modal-title">Add Product Selection
<!-- aeroplane icon -->
&nbsp; &nbsp; &nbsp; &nbsp;
<a *ngIf="userrole?.includes('ADMIN')" style="float: right;" href="javascript:void(0)" role="tooltip" aria-haspopup="true"
class="tooltip tooltip-sm tooltip-bottom-left">
<a id="build_extension" [routerLink]="['../extension/all']" [queryParams]="{ formCode: 'Product_selection_formCode' }">
<clr-icon shape="airplane" size="32"></clr-icon>
</a>
<span class="tooltip-content">Form Extension</span>
</a> </h3>
<div class="modal-body">
<form [formGroup]="entryForm" >
<div class="clr-row" style="height: fit-content;">
<div class="clr-col-sm-12">
<label> name</label>
<input class="clr-input" type="text" formControlName="name" />
</div>
<div class="clr-col-sm-12">
<label> Manufacturer</label>
<select formControlName="manufacturer">
<option [value]="null">Choose Manufacturer</option>
<option *ngFor="let item of selectmanufacturer" [value]="item.id">{{item.Manufacturer_name}}</option>
</select> </div>
<div class="clr-col-sm-12">
<label> Type</label>
<select formControlName="type">
<option [value]="null">Choose Type</option>
<option *ngFor="let item of selecttype" [value]="item.id">{{item.Type_name}}</option>
</select> </div>
<div class="clr-col-sm-12">
<label> Product</label>
<select formControlName="product">
<option [value]="null">Choose Product</option>
<option *ngFor="let item of selectproduct" [value]="item.id">{{item.Product_name}}</option>
</select> </div>
<!-- currency field start -->
<div class="clr-col-sm-12">
<label> Price</label>
<input type="number" class="clr-input" formControlName="price" [value]="entryForm.value.price | number:'1.2-2' | removeCommas">
</div>
<!-- currency field end -->
<div class="clr-col-sm-12">
<label> Quantity</label>
<input class="clr-input" type="number" formControlName="quantity" />
<div *ngIf="submitted && entryForm.controls.quantity.errors" class="error_mess">
<div *ngIf="submitted && entryForm.controls.quantity.errors.required" class="error_mess">*This field is Required</div>
</div>
</div>
</div>
<!-- form code start -->
<div *ngIf="checkFormCode">
<h4 style="font-weight: 300;display: inline;">Extension</h4>
<br>
<hr>
<div class="clr-row">
<div class="clr-col-4" *ngFor="let field of additionalFieldsFromBackend">
<ng-container *ngIf="field.formCode === formcode" [ngSwitch]="field.fieldType">
<!-- Text Input --> <label *ngSwitchCase="'text'">{{ field.fieldName }}</label>
<input *ngSwitchCase="'text'" [type]="field.fieldType" [formControlName]="field.extValue"
class="clr-input" />
<!-- Date Input --> <label *ngSwitchCase="'date'">{{ field.fieldName }}</label>
<input *ngSwitchCase="'date'" [type]="field.fieldType" [formControlName]="field.extValue"
class="clr-input" />
<!-- Textarea --> <label *ngSwitchCase="'textarea'">{{ field.fieldName }}</label>
<textarea *ngSwitchCase="'textarea'" [formControlName]="field.extValue" col="10" row="2"></textarea>
<!-- Checkbox --> <label *ngSwitchCase="'checkbox'">{{ field.fieldName }}</label><br>
<input *ngSwitchCase="'checkbox'" [type]="field.fieldType" [formControlName]="field.extValue"
class="clr-checkbox" />
</ng-container>
</div>
</div>
</div>
<!-- form code end --> <div class="modal-footer">
<button type="button" class="btn btn-outline" (click)="modalAdd = false">Cancel</button>
<button type="submit" class="btn btn-primary" (click)="onSubmit()">ADD</button>
</div>
</form>
</div>
</clr-modal>
<!-- htmlpopup -->
<clr-modal [(clrModalOpen)]="modalInsertAdd_to_order_Btn" [clrModalSize]="'xl'" [clrModalStaticBackdrop]="true">
<h3 class="modal-title">Insert Add_to_order_Btn</h3>
<div class="modal-body">
<form [formGroup]="insertFormAdd_to_order_Btn" (ngSubmit)="onSubmitInsertAdd_to_order_Btn()">
<div class="clr-row">
<div class="clr-col-md-4 clr-col-sm-12">
<label for="type">Type:</label>
<input type="text" id="type" formControlName="type" name="type" placeholder="Enter Type" class="clr-input">
</div>
<div class="clr-col-md-4 clr-col-sm-12">
<label for="price">Price:</label>
<input type="text" id="price" formControlName="price" name="price" placeholder="Enter Price" class="clr-input">
</div>
<div class="clr-col-md-4 clr-col-sm-12">
<label for="name">Name:</label>
<input type="text" id="name" formControlName="name" name="name" placeholder="Enter Name" class="clr-input">
</div>
<div class="clr-col-md-4 clr-col-sm-12">
<label for="manufacturer">Manufacturer:</label>
<input type="text" id="manufacturer" formControlName="manufacturer" name="manufacturer" placeholder="Enter Manufacturer" class="clr-input">
</div>
<div class="clr-col-md-4 clr-col-sm-12">
<label for="product">Product:</label>
<input type="text" id="product" formControlName="product" name="product" placeholder="Enter Product" class="clr-input">
</div>
<div class="clr-col-md-4 clr-col-sm-12">
<label for="quantity">Quantity:</label>
<input type="text" id="quantity" formControlName="quantity" name="quantity" placeholder="Enter Quantity" class="clr-input">
</div>
<div class="clr-col-md-4 clr-col-sm-12">
<label for="add_to_order_btn">Add_to_Order_Btn:</label>
<input type="text" id="add_to_order_btn" formControlName="add_to_order_btn" name="add_to_order_btn" placeholder="Enter Add_to_Order_Btn" class="clr-input">
</div>
</div>
<br>
<div class="modal-footer">
<button type="button" class="btn btn-outline" (click)="modalInsertAdd_to_order_Btn = false">Cancel</button>
<button type="submit" class="btn btn-primary" >Insert</button>
</div>
</form>
</div>
</clr-modal>

View File

@ -0,0 +1,78 @@
//@import "../../../../assets/scss/var";
.s-info-bar {
display: flex;
flex-direction: row;
justify-content: space-between;
button {
outline: none;
}
}
.delete,.heading{
text-align: center;
color: red;
}
.entry-pg {
width: 750px;
}
.button1::after {
content: none;
}
.button1:hover::after {
content: "ADD ROWS";
}
.section {
background-color: #dddddd;
height: 40px;
}
.section p {
//color: white;
padding: 10px;
font-size: 18px;
}
.clr-input {
color: #212529;
border: 1px solid #ced4da;
border-radius: 0.25rem;
padding: 0.75rem 0.75rem;
margin-top: 3px;
width: 100%;
margin-bottom: 10px;
}
.clr-file {
color: #212529;
border: 1px solid #ced4da;
border-radius: 0.25rem;
//padding: 0.6rem 0.75rem;
margin-top: 3px;
width: 100%;
margin-bottom: 10px;
}
.center {
text-align: center;
}
select{
width: 100%;
margin-top: 3px;
padding: 5px 5px;
border: 1px solid #ccc;
border-radius: 4px;
}
input[type=text],[type=date],[type=number],textarea {
width: 100%;
padding: 15px 15px;
background-color:rgb(255, 255, 255);
// margin: 8px 0;
display: inline-block;
border: 1px solid #ccc;
border-radius: 4px;
box-sizing: border-box;
}
.error_mess {
color: red;
}

View File

@ -0,0 +1,442 @@
import { Component, OnInit } from '@angular/core';
import { ToastrService } from 'ngx-toastr';
import { AlertService } from 'src/app/services/alert.service';
import { Product_selectionservice} from './Product_selection.service';
import { AbstractControl, FormArray, FormBuilder, FormGroup, Validators, ValidationErrors } from '@angular/forms';
import { ExtensionService } from 'src/app/services/fnd/extension.service';
import { DashboardContentModel2 } from 'src/app/models/builder/dashboard';
import { Product_selectioncardvariable } from './Product_selection_cardvariable';
import { UserInfoService } from 'src/app/services/user-info.service';
declare var JsBarcode: any;
@Component({
selector: 'app-Product_selection',
templateUrl: './Product_selection.component.html',
styleUrls: ['./Product_selection.component.scss']
})
export class Product_selectionComponent implements OnInit {
cardButton = Product_selectioncardvariable.cardButton;
cardmodeldata = Product_selectioncardvariable.cardmodeldata;
public dashboardArray: DashboardContentModel2[];
isCardview = Product_selectioncardvariable.cardButton;
cardmodal; changeView(){
this.isCardview = !this.isCardview;
}
beforeText(fieldtext: string): string { // Extract the text before the first '<'
const index = fieldtext.indexOf('<');
return index !== -1 ? fieldtext.substring(0, index) : fieldtext;
}
afterText(fieldtext: string): string { // Extract the text after the last '>'
const index = fieldtext.lastIndexOf('>');
return index !== -1 ? fieldtext.substring(index + 1) : '';
}
transform(fieldtext: string): string {
const match = fieldtext.match(/<([^>]*)>/);
return match ? match[1] : ''; // Extract the text between '<' and '>'
}
userrole;
rowSelected :any= {};
modaldelete=false;
modalEdit=false;
modalAdd= false;
public entryForm: FormGroup;
loading = false;
product;
modalOpenedforNewLine = false;
newLine:any;
additionalFieldsFromBackend: any[] = [];
formcode = 'Product_selection_formCode'
tableName = 'Product_selection'; checkFormCode; selected: any[] = []; constructor(
private extensionService: ExtensionService,
private userInfoService:UserInfoService,
private mainService:Product_selectionservice,
private alertService: AlertService,
private toastr: ToastrService,
private _fb: FormBuilder,
) { }
// component button
public insertFormAdd_to_order_Btn: FormGroup;
ngOnInit(): void {
if(this.cardmodeldata !== ''){
this.cardmodal = JSON.parse(this.cardmodeldata);
this.dashboardArray = this.cardmodal.dashboard.slice();
console.log(this.dashboardArray)
}
this.userrole=this.userInfoService.getRoles();
this.getData();
this.entryForm = this._fb.group({
name : [null],
manufacturer : [null],
type : [null],
product : [null],
price : [null, { updateOn: 'blur' }],
quantity : [null,[Validators.required]],
}); // component_button200
// inser code start
this.insertFormAdd_to_order_Btn = this._fb.group({
type: '',
price: '',
name: '',
manufacturer: '',
product: '',
quantity: '',
add_to_order_btn: '',
});
// insert code end
// form code start
this.extensionService.getJsonObjectsByFormCodeList(this.formcode).subscribe(data => {
console.log(data);
const jsonArray = data.map((str) => JSON.parse(str));
this.additionalFieldsFromBackend = jsonArray;
this.checkFormCode = this.additionalFieldsFromBackend.some(field => field.formCode === "Product_selection_formCode");
console.log(this.checkFormCode);
console.log(this.additionalFieldsFromBackend);
if (this.additionalFieldsFromBackend && this.additionalFieldsFromBackend.length > 0) {
this.additionalFieldsFromBackend.forEach(field => {
if (field.formCode === this.formcode) {
if (!this.entryForm.contains(field.extValue)) {
// Add the control only if it doesn't exist in the form
this.entryForm.addControl(field.extValue, this._fb.control(field.fieldValue));
}
}
});
}
});
console.log(this.entryForm.value);
// form code end
this.getallmanufacturer();
this.getalltype();
this.getallproduct();
}
error;
getData() {
this.mainService.getAll().subscribe((data) => {
console.log(data);
this.product = data;
if(this.product.length==0){
this.error="No Data Available"
}
},(error) => {
console.log(error);
if(error){
this.error="Server Error";
}
});
}
onEdit(row) {
this.rowSelected = row;
this.modalEdit = true;
}
onDelete(row) {
this.rowSelected = row;
this.modaldelete=true;
}
delete(id)
{
this.modaldelete = false;
console.log("in delete "+id);
this.mainService.delete(id).subscribe(
(data) => {
console.log(data);
this.ngOnInit();
if (data) { this.toastr.success('Deleted successfully'); }
});
}
onUpdate(id) {
this.modalEdit = false;
//console.log("in update");
console.log("id " + id);
console.log(this.rowSelected);
//console.log("out update");
this.mainService.update(id, this.rowSelected).subscribe(
(data) => {
console.log(data);
if (data || data.status >= 200 && data.status <= 299) {
this.toastr.success("Update Successfully");
}
setTimeout(() => {
this.ngOnInit();
}, 500);
}, (error) => {
console.log(error);
if (error.status >= 200 && error.status <= 299) {
// this.toastr.success("update Succesfully");
}
if (error.status >= 400 && error.status <= 499) {
this.toastr.error("Not Updated");
}
if (error.status >= 500 && error.status <= 599) {
this.toastr.error("Not Updated");
}
});
setTimeout(() => {
this.ngOnInit();
}, 500);
}
onCreate() {
this.modalAdd=false;
this.mainService.create(this.entryForm.value).subscribe(
(data) => {
console.log(data);
if (data || data.status >= 200 && data.status <= 299) {
this.toastr.success("Added Successfully");
}
setTimeout(() => {
this.ngOnInit();
}, 500);
}, (error) => {
console.log(error);
if (error.status >= 200 && error.status <= 299) {
// this.toastr.success("Added Succesfully");
}
if (error.status >= 400 && error.status <= 499) {
this.toastr.error("Not Added");
}
if (error.status >= 500 && error.status <= 599) {
this.toastr.error("Not Added");
}
});
setTimeout(() => {
this.ngOnInit();
}, 500);
}
goToAdd(row) {
this.modalAdd = true; this.submitted = false;
}
submitted = false;
onSubmit() {
console.log(this.entryForm.value);
this.submitted = true;
if (this.entryForm.invalid) {
return;
}this.onCreate();
}
selectmanufacturer ;
getallmanufacturer() {
this.mainService.getAllmanufacturer().subscribe(data=>{
this.selectmanufacturer = data;
console.log(data);
},(error) => { console.log(error); }); }
selecttype ;
getalltype() {
this.mainService.getAlltype().subscribe(data=>{
this.selecttype = data;
console.log(data);
},(error) => { console.log(error); }); }
selectproduct ;
getallproduct() {
this.mainService.getAllproduct().subscribe(data=>{
this.selectproduct = data;
console.log(data);
},(error) => { console.log(error); }); }
//currency field start
formatCurrencyprice () {
// Format the currency with two decimal places
this.rowSelected.price = Number(this.rowSelected.price ).toFixed(2);
// Remove commas from the formatted currency
this.rowSelected.price = this.rowSelected.price?.replace(/,/g, ''); }
//currency field end
// updateaction
// insert button
modalInsertAdd_to_order_Btn = false;
goToInsertAdd_to_order_Btn() {
this.modalInsertAdd_to_order_Btn=true;
}
onSubmitInsertAdd_to_order_Btn() {
console.log(this.insertFormAdd_to_order_Btn.value);
this.submitted=true;
if (this.insertFormAdd_to_order_Btn.invalid) {
return;
}
this.onInsertAdd_to_order_Btn();
}
onInsertAdd_to_order_Btn() {
this.modalInsertAdd_to_order_Btn=false;
this.mainService.insertAdd_to_order_BtnProduct_selection(this.insertFormAdd_to_order_Btn.value).subscribe(data => {
console.log('After add',data)
if (data.status >=200 && data.status <=209) {
this.toastr.success('Added successfully');
}
if (data && data.id != null) {
this.toastr.success('Added successfully');
} this.ngOnInit();
},(error) => {
console.error(error);
if ( error.status >= 200 && error.status <= 299) {
this.toastr.success("Update Successfully");
}
if ( error.status >= 400 && error.status <= 499) {
this.toastr.error("Update Failed");
}
if ( error.status >= 500 && error.status <= 599) {
this.toastr.error("Server Error");
}
this.ngOnInit();
});
this.insertFormAdd_to_order_Btn.reset();
}
// insert buuton code end
}

View File

@ -0,0 +1,55 @@
import { Injectable } from '@angular/core';
import { Observable } from "rxjs";
import { HttpClient, HttpHeaders, HttpParams, } from "@angular/common/http";
import { ApiRequestService } from "src/app/services/api/api-request.service";
import { environment } from 'src/environments/environment';
@Injectable({
providedIn: 'root'
})
export class Product_selectionservice{
private baseURL = "Product_selection/Product_selection" ; constructor(
private http: HttpClient,
private apiRequest: ApiRequestService,
) { }
getAll(page?: number, size?: number): Observable<any> {
return this.apiRequest.get(this.baseURL);
}
getById(id: number): Observable<any> {
const _http = this.baseURL + "/" + id;
return this.apiRequest.get(_http);
}
create(data: any): Observable<any> {
return this.apiRequest.post(this.baseURL, data);
}
update(id: number, data: any): Observable<any> {
const _http = this.baseURL + "/" + id;
return this.apiRequest.put(_http, data);
}
delete(id: number): Observable<any> {
const _http = this.baseURL + "/" + id;
return this.apiRequest.delete(_http);
}
getAllmanufacturer(): Observable<any> {
return this.apiRequest.get("Manufacturer_ListFilter1/Manufacturer_ListFilter1"); }
getAlltype(): Observable<any> {
return this.apiRequest.get("Type_ListFilter1/Type_ListFilter1"); }
getAllproduct(): Observable<any> {
return this.apiRequest.get("Productss_ListFilter1/Productss_ListFilter1"); }
// updateaction
// insert button code start
insertAdd_to_order_BtnProduct_selection(Product_selection: any): Observable<any> {
return this.apiRequest.post(`Product_selection/Product_selection/Product_selection_insert`, Product_selection);
}
}

View File

@ -0,0 +1,4 @@
export const Product_selectioncardvariable = {
"cardButton": false,
"cardmodeldata": ``
}

View File

@ -0,0 +1,315 @@
<ol class="breadcrumb breadcrumb-arrow font-trirong">
<li><a href="javascript://"> Productss</a></li>
</ol>
<div class="dg-wrapper">
<div class="clr-row">
<div class="clr-col-8">
<h3>Productss </h3>
</div>
<div class="clr-col-4" style="text-align: right;">
<button *ngIf="cardButton" id="add" class="btn btn-primary btn-icon" (click)="changeView()" >
<clr-icon *ngIf="!isCardview" shape="grid-view"></clr-icon> <clr-icon *ngIf="isCardview" shape="bars"></clr-icon>
</button>
<!-- button -->
<button id="add" class="btn btn-primary" (click)="goToAdd(product)" >
<clr-icon shape="plus"></clr-icon>ADD
</button>
</div></div>
<ng-container *ngIf="!isCardview"> <!-- GET ALL --> <clr-datagrid [clrDgLoading]="loading" [(clrDgSelected)]="selected">
<clr-dg-placeholder>
<ng-template #loadingSpinner>
<clr-spinner>Loading ... </clr-spinner>
</ng-template>
<div *ngIf="error;else loadingSpinner">{{error}}</div>
</clr-dg-placeholder>
<clr-dg-column [clrDgField]="' product_name'"> <ng-container *clrDgHideableColumn="{hidden: false}"> Product Name
</ng-container></clr-dg-column>
<!-- who column -->
<clr-dg-column> <ng-container *clrDgHideableColumn="{hidden: false}">
<clr-icon shape="bars"></clr-icon> Action
</ng-container></clr-dg-column>
<!-- end -->
<clr-dg-row *clrDgItems="let user of product" [clrDgItem]="user">
<clr-dg-cell>{{user. product_name }}</clr-dg-cell>
<!-- who column -->
<clr-dg-cell>
<clr-signpost>
<span style="cursor: pointer;" clrSignpostTrigger><clr-icon shape="help" class="success" style="color: rgb(0, 130, 236);"></clr-icon></span>
<clr-signpost-content [clrPosition]="'left-middle'" *clrIfOpen>
<h5 style="margin-top: 0">Who Column</h5>
<div>Account ID: <code class="clr-code">{{user.accountId}}</code></div>
<div>Created At: <code class="clr-code">{{user.createdAt| date}}</code></div>
<div>Created By: <code class="clr-code">{{user.createdBy}}</code></div>
<div>Updated At: <code class="clr-code">{{user.updatedAt | date}}</code></div>
<div>Updated By: <code class="clr-code">{{user.updatedBy}}</code></div>
</clr-signpost-content>
</clr-signpost>
</clr-dg-cell>
<!-- who colmn -->
<clr-dg-action-overflow>
<button class="action-item" (click)="onEdit(user)">Edit</button>
<button class="action-item" (click)="onDelete(user)">Delete</button>
</clr-dg-action-overflow>
</clr-dg-row>
<clr-dg-footer>
<clr-dg-pagination #pagination [clrDgPageSize]="10">
<clr-dg-page-size [clrPageSizeOptions]="[10,20,50,100]">Users per page</clr-dg-page-size>
{{pagination.firstItem + 1}} - {{pagination.lastItem + 1}}
of {{pagination.totalItems}} users
</clr-dg-pagination>
</clr-dg-footer>
</clr-datagrid> </ng-container>
<ng-template #showInfo>
<div class="alert alert-info" role="alert">
<div class="alert-items">
<div class="alert-item static">
<span class="alert-text">
<clr-icon class="alert-icon" shape="info-circle"></clr-icon>
Data could be found. Loading..
<clr-spinner [clrMedium]="true">Loading ...</clr-spinner>
</span>
</div>
</div>
</div>
</ng-template><ng-container *ngIf="isCardview">
<div *ngIf="product; else showInfo" class="clr-row clr-align-items-start clr-justify-content-start">
<div *ngFor="let app of product| filter:search; let index = i" class="clr-col-auto" >
<div class="clr-row">
<div class="clr-col-lg-12 clr-col-md-4 clr-col-sm-4 clr-col-12" style="width: 410px;">
<div class="card" style="padding: 10px; "[style.background-color]="cardmodal.cardColor !== '' ? cardmodal.cardColor : 'white'">
<div class="card-body" style="display: grid; grid-template-columns: repeat(13, 1fr); grid-template-rows: repeat(7, 1fr); gap: 5px;">
<ng-container *ngFor="let item of dashboardArray">
<div [style.gridColumn]="item.x + 1" [style.gridRow]="item.y + 1" [style.gridColumnEnd]="item.x + item.cols + 1"
[style.gridRowEnd]="item.y + item.rows + 1">
<div *ngIf="item.name === 'textField'" class="title-card card-title"
[style.text-align]="item.alignment !== '' ? item.alignment : 'left'"
[style.line-height]="item.textlineheight !== '' ? item.textlineheight : '1'"
[style.font-family]="item.fontName !== '' ? item.fontName : 'Metropolis'"
[style.font-size]="item.fontSize !== '' ? item.fontSize : '100%'"
[style.font-style]="item.italic == true ? 'Italic' : 'normal'"
[style.font-weight]="item.bold == true ? 'bold' : 'normal'" [style.text-decoration]="(item.underline && item.strikethough) ? 'underline line-through' :
(item.underline ? 'underline' : (item.strikethough ? 'line-through' : 'none'))"
[style.background-color]="item.backgroundcolor !== '' ? item.backgroundcolor : 'white'"
[style.color]="item.textcolor !== '' ? item.textcolor : 'black'" [style.background-color]="item.conditionValue == app[transform(item.fieldtext) ] ? item.conditionbackgroundcolor : item.backgroundcolor"
[style.color]="item.conditionValue == app[transform(item.fieldtext) ] ? item.conditiontextcolor : item.textcolor">
{{beforeText(item.fieldtext)}}
{{ app[transform(item.fieldtext) ] }}
{{afterText(item.fieldtext)}}
</div>
<div *ngIf="item.name === 'dateField'" class="title-card card-title"
[style.text-align]="item.alignment !== '' ? item.alignment : 'left'"
[style.line-height]="item.textlineheight !== '' ? item.textlineheight : '1'"
[style.font-family]="item.fontName !== '' ? item.fontName : 'Metropolis'"
[style.font-size]="item.fontSize !== '' ? item.fontSize : '100%'"
[style.font-style]="item.italic == true ? 'Italic' : 'normal'"
[style.font-weight]="item.bold == true ? 'bold' : 'normal'" [style.text-decoration]="(item.underline && item.strikethough) ? 'underline line-through' :
(item.underline ? 'underline' : (item.strikethough ? 'line-through' : 'none'))"
[style.background-color]="item.backgroundcolor !== '' ? item.backgroundcolor : 'white'"
[style.color]="item.textcolor !== '' ? item.textcolor : 'black'" [style.background-color]="item.conditionValue == app[transform(item.fieldtext) ] ? item.conditionbackgroundcolor : item.backgroundcolor"
[style.color]="item.conditionValue == app[transform(item.fieldtext) ] ? item.conditiontextcolor : item.textcolor">
{{beforeText(item.fieldtext)}}
{{ app[transform(item.fieldtext) ] | date}}
{{afterText(item.fieldtext)}}
</div>
<div *ngIf="item.name === 'numberField'" class="title-card card-title"
[style.text-align]="item.alignment !== '' ? item.alignment : 'left'"
[style.line-height]="item.textlineheight !== '' ? item.textlineheight : '1'"
[style.font-family]="item.fontName !== '' ? item.fontName : 'Metropolis'"
[style.font-size]="item.fontSize !== '' ? item.fontSize : '100%'"
[style.font-style]="item.italic == true ? 'Italic' : 'normal'"
[style.font-weight]="item.bold == true ? 'bold' : 'normal'" [style.text-decoration]="(item.underline && item.strikethough) ? 'underline line-through' :
(item.underline ? 'underline' : (item.strikethough ? 'line-through' : 'none'))"
[style.background-color]="item.backgroundcolor !== '' ? item.backgroundcolor : 'white'"
[style.color]="item.textcolor !== '' ? item.textcolor : 'black'" [style.background-color]="item.conditionValue == app[transform(item.fieldtext) ] ? item.conditionbackgroundcolor : item.backgroundcolor"
[style.color]="item.conditionValue == app[transform(item.fieldtext) ] ? item.conditiontextcolor : item.textcolor">
{{beforeText(item.fieldtext)}}
{{ app[transform(item.fieldtext) ]}}
{{afterText(item.fieldtext)}}
</div>
<div *ngIf="item.name === 'Line'" class="title-card card-title"
[style.text-align]="item.alignment !== '' ? item.alignment : 'left'"
[style.line-height]="item.textlineheight !== '' ? item.textlineheight : '1'"
[style.font-family]="item.fontName !== '' ? item.fontName : 'Metropolis'"
[style.font-size]="item.fontSize !== '' ? item.fontSize : '100%'"
[style.font-style]="item.italic == true ? 'Italic' : 'normal'"
[style.font-weight]="item.bold == true ? 'bold' : 'normal'" [style.text-decoration]="(item.underline && item.strikethough) ? 'underline line-through' :
(item.underline ? 'underline' : (item.strikethough ? 'line-through' : 'none'))"
[style.background-color]="item.backgroundcolor !== '' ? item.backgroundcolor : 'white'"
[style.color]="item.textcolor !== '' ? item.textcolor : 'black'">
<hr>
</div>
<div *ngIf="item.name === 'Icon'" class="icon-card"
[style.text-align]="item.alignment !== '' ? item.alignment : 'left'"
[style.line-height]="item.textlineheight !== '' ? item.textlineheight : '1'"
[style.font-family]="item.fontName !== '' ? item.fontName : 'Metropolis'"
[style.font-size]="item.fontSize !== '' ? item.fontSize : '100%'"
[style.font-style]="item.italic == true ? 'Italic' : 'normal'"
[style.font-weight]="item.bold == true ? 'bold' : 'normal'" [style.text-decoration]="(item.underline && item.strikethough) ? 'underline line-through' :
(item.underline ? 'underline' : (item.strikethough ? 'line-through' : 'none'))"
[style.background-color]="item.backgroundcolor !== '' ? item.backgroundcolor : 'white'"
[style.color]="item.textcolor !== '' ? item.textcolor : 'black'"
>
<clr-icon [attr.shape]="item.iconName"></clr-icon>
</div>
<div *ngIf="item.name == 'Image'"
[style.text-align]="item.alignment !== '' ? item.alignment : 'left'"
[style.line-height]="item.textlineheight !== '' ? item.textlineheight : '1'"
[style.font-family]="item.fontName !== '' ? item.fontName : 'Metropolis'"
[style.font-size]="item.fontSize !== '' ? item.fontSize : '100%'"
[style.font-style]="item.italic == true ? 'Italic' : 'normal'"
[style.font-weight]="item.bold == true ? 'bold' : 'normal'" [style.text-decoration]="(item.underline && item.strikethough) ? 'underline line-through' :
(item.underline ? 'underline' : (item.strikethough ? 'line-through' : 'none'))"
[style.background-color]="item.backgroundcolor !== '' ? item.backgroundcolor : 'white'"
[style.color]="item.textcolor !== '' ? item.textcolor : 'black'"
[style.background-color]="item.conditionValue == app[transform(item.fieldtext) ] ? item.conditionbackgroundcolor : item.backgroundcolor"
[style.color]="item.conditionValue == app[transform(item.fieldtext) ] ? item.conditiontextcolor : item.textcolor"> <img id="filePreview" [src]="item.imageURL" alt="File Preview"
[style.width]="item.imagewidth !== '' ? item.imagewidth + 'px' : '100px'"
[style.height]="item.imagewidth !== '' ? item.imagewidth + 'px' : '100px'"></div>
</div>
</ng-container>
</div>
</div>
</div>
</div>
</div>
</div>
</ng-container>
</div>
<!-- // EDIT DATA......... -->
<clr-modal [(clrModalOpen)]="modalEdit" [clrModalSize]="'lg'" [clrModalStaticBackdrop]="true">
<h3 class="modal-title">Update Productss
<!--update button -->
</h3>
<div class="modal-body" *ngIf="rowSelected.id">
<h2 class="heading">{{rowSelected.id}}</h2>
<!-- button -->
<form >
<div class="clr-row">
<div class="clr-col-sm-12">
<label>Product Name</label>
<input class="clr-input" type="text" [(ngModel)]="rowSelected.product_name" name="product_name" />
</div>
</div>
<!-- form code start -->
<div *ngIf="checkFormCode">
<h4 style="font-weight: 300;display: inline;">Extension</h4>
<br>
<hr>
<div class="clr-row">
<div class="clr-col-4" *ngFor="let field of additionalFieldsFromBackend">
<ng-container *ngIf="field.formCode === formcode" [ngSwitch]="field.fieldType">
<!-- Text Input --> <label *ngSwitchCase="'text'">{{ field.fieldName }}</label>
<input *ngSwitchCase="'text'" [type]="field.fieldType" name="{{ field.extValue }}" [(ngModel)]="rowSelected[field.extValue]" class="clr-input" />
<!-- Date Input --> <label *ngSwitchCase="'date'">{{ field.fieldName }}</label>
<input *ngSwitchCase="'date'" [type]="field.fieldType" name="{{ field.extValue }}" [(ngModel)]="rowSelected[field.extValue]" class="clr-input" />
<!-- Textarea --> <label *ngSwitchCase="'textarea'">{{ field.fieldName }}</label>
<textarea *ngSwitchCase="'textarea'" name="{{ field.extValue }}" [(ngModel)]="rowSelected[field.extValue]" col="10" row="2"></textarea>
<!-- Checkbox --> <label *ngSwitchCase="'checkbox'">{{ field.fieldName }}</label><br>
<input *ngSwitchCase="'checkbox'" [type]="field.fieldType" name="{{ field.extValue }}" [(ngModel)]="rowSelected[field.extValue]" class="clr-checkbox" />
</ng-container>
</div>
</div>
</div>
<!-- form code end --> <div class="modal-footer">
<button type="button" class="btn btn-outline" (click)="modalEdit = false">Cancel</button>
<button type="submit" class="btn btn-primary" (click)="onUpdate(rowSelected.id)">Update</button>
</div>
</form>
</div>
</clr-modal>
<clr-modal [(clrModalOpen)]="modaldelete" [clrModalSize]="'lg'" [clrModalStaticBackdrop]="true">
<div class="modal-body" *ngIf="rowSelected.id">
<h1 class="delete">Are You Sure Want to delete?</h1>
<h2 class="heading">{{rowSelected.id}}</h2>
<div class="modal-footer">
<button type="button" class="btn btn-outline" (click)="modaldelete = false">Cancel</button>
<button type="button" (click)="delete(rowSelected.id)" class="btn btn-primary" >Delete</button>
</div>
</div>
</clr-modal>
<!-- ADD FORM ..... -->
<clr-modal [(clrModalOpen)]="modalAdd" [clrModalSize]="'lg'" [clrModalStaticBackdrop]="true">
<h3 class="modal-title">Add Productss
<!-- aeroplane icon -->
&nbsp; &nbsp; &nbsp; &nbsp;
<a *ngIf="userrole?.includes('ADMIN')" style="float: right;" href="javascript:void(0)" role="tooltip" aria-haspopup="true"
class="tooltip tooltip-sm tooltip-bottom-left">
<a id="build_extension" [routerLink]="['../extension/all']" [queryParams]="{ formCode: 'Productss_formCode' }">
<clr-icon shape="airplane" size="32"></clr-icon>
</a>
<span class="tooltip-content">Form Extension</span>
</a> </h3>
<div class="modal-body">
<form [formGroup]="entryForm" >
<div class="clr-row" style="height: fit-content;">
<div class="clr-col-sm-12">
<label> Product Name</label>
<input class="clr-input" type="text" formControlName="product_name" />
</div>
</div>
<!-- form code start -->
<div *ngIf="checkFormCode">
<h4 style="font-weight: 300;display: inline;">Extension</h4>
<br>
<hr>
<div class="clr-row">
<div class="clr-col-4" *ngFor="let field of additionalFieldsFromBackend">
<ng-container *ngIf="field.formCode === formcode" [ngSwitch]="field.fieldType">
<!-- Text Input --> <label *ngSwitchCase="'text'">{{ field.fieldName }}</label>
<input *ngSwitchCase="'text'" [type]="field.fieldType" [formControlName]="field.extValue"
class="clr-input" />
<!-- Date Input --> <label *ngSwitchCase="'date'">{{ field.fieldName }}</label>
<input *ngSwitchCase="'date'" [type]="field.fieldType" [formControlName]="field.extValue"
class="clr-input" />
<!-- Textarea --> <label *ngSwitchCase="'textarea'">{{ field.fieldName }}</label>
<textarea *ngSwitchCase="'textarea'" [formControlName]="field.extValue" col="10" row="2"></textarea>
<!-- Checkbox --> <label *ngSwitchCase="'checkbox'">{{ field.fieldName }}</label><br>
<input *ngSwitchCase="'checkbox'" [type]="field.fieldType" [formControlName]="field.extValue"
class="clr-checkbox" />
</ng-container>
</div>
</div>
</div>
<!-- form code end --> <div class="modal-footer">
<button type="button" class="btn btn-outline" (click)="modalAdd = false">Cancel</button>
<button type="submit" class="btn btn-primary" (click)="onSubmit()">ADD</button>
</div>
</form>
</div>
</clr-modal>
<!-- htmlpopup -->

View File

@ -0,0 +1,78 @@
//@import "../../../../assets/scss/var";
.s-info-bar {
display: flex;
flex-direction: row;
justify-content: space-between;
button {
outline: none;
}
}
.delete,.heading{
text-align: center;
color: red;
}
.entry-pg {
width: 750px;
}
.button1::after {
content: none;
}
.button1:hover::after {
content: "ADD ROWS";
}
.section {
background-color: #dddddd;
height: 40px;
}
.section p {
//color: white;
padding: 10px;
font-size: 18px;
}
.clr-input {
color: #212529;
border: 1px solid #ced4da;
border-radius: 0.25rem;
padding: 0.75rem 0.75rem;
margin-top: 3px;
width: 100%;
margin-bottom: 10px;
}
.clr-file {
color: #212529;
border: 1px solid #ced4da;
border-radius: 0.25rem;
//padding: 0.6rem 0.75rem;
margin-top: 3px;
width: 100%;
margin-bottom: 10px;
}
.center {
text-align: center;
}
select{
width: 100%;
margin-top: 3px;
padding: 5px 5px;
border: 1px solid #ccc;
border-radius: 4px;
}
input[type=text],[type=date],[type=number],textarea {
width: 100%;
padding: 15px 15px;
background-color:rgb(255, 255, 255);
// margin: 8px 0;
display: inline-block;
border: 1px solid #ccc;
border-radius: 4px;
box-sizing: border-box;
}
.error_mess {
color: red;
}

View File

@ -0,0 +1,220 @@
import { Component, OnInit } from '@angular/core';
import { ToastrService } from 'ngx-toastr';
import { AlertService } from 'src/app/services/alert.service';
import { Productssservice} from './Productss.service';
import { AbstractControl, FormArray, FormBuilder, FormGroup, Validators, ValidationErrors } from '@angular/forms';
import { ExtensionService } from 'src/app/services/fnd/extension.service';
import { DashboardContentModel2 } from 'src/app/models/builder/dashboard';
import { Productsscardvariable } from './Productss_cardvariable';
import { UserInfoService } from 'src/app/services/user-info.service';
declare var JsBarcode: any;
@Component({
selector: 'app-Productss',
templateUrl: './Productss.component.html',
styleUrls: ['./Productss.component.scss']
})
export class ProductssComponent implements OnInit {
cardButton = Productsscardvariable.cardButton;
cardmodeldata = Productsscardvariable.cardmodeldata;
public dashboardArray: DashboardContentModel2[];
isCardview = Productsscardvariable.cardButton;
cardmodal; changeView(){
this.isCardview = !this.isCardview;
}
beforeText(fieldtext: string): string { // Extract the text before the first '<'
const index = fieldtext.indexOf('<');
return index !== -1 ? fieldtext.substring(0, index) : fieldtext;
}
afterText(fieldtext: string): string { // Extract the text after the last '>'
const index = fieldtext.lastIndexOf('>');
return index !== -1 ? fieldtext.substring(index + 1) : '';
}
transform(fieldtext: string): string {
const match = fieldtext.match(/<([^>]*)>/);
return match ? match[1] : ''; // Extract the text between '<' and '>'
}
userrole;
rowSelected :any= {};
modaldelete=false;
modalEdit=false;
modalAdd= false;
public entryForm: FormGroup;
loading = false;
product;
modalOpenedforNewLine = false;
newLine:any;
additionalFieldsFromBackend: any[] = [];
formcode = 'Productss_formCode'
tableName = 'Productss'; checkFormCode; selected: any[] = []; constructor(
private extensionService: ExtensionService,
private userInfoService:UserInfoService,
private mainService:Productssservice,
private alertService: AlertService,
private toastr: ToastrService,
private _fb: FormBuilder,
) { }
// component button
ngOnInit(): void {
if(this.cardmodeldata !== ''){
this.cardmodal = JSON.parse(this.cardmodeldata);
this.dashboardArray = this.cardmodal.dashboard.slice();
console.log(this.dashboardArray)
}
this.userrole=this.userInfoService.getRoles();
this.getData();
this.entryForm = this._fb.group({
product_name : [null],
}); // component_button200
// form code start
this.extensionService.getJsonObjectsByFormCodeList(this.formcode).subscribe(data => {
console.log(data);
const jsonArray = data.map((str) => JSON.parse(str));
this.additionalFieldsFromBackend = jsonArray;
this.checkFormCode = this.additionalFieldsFromBackend.some(field => field.formCode === "Productss_formCode");
console.log(this.checkFormCode);
console.log(this.additionalFieldsFromBackend);
if (this.additionalFieldsFromBackend && this.additionalFieldsFromBackend.length > 0) {
this.additionalFieldsFromBackend.forEach(field => {
if (field.formCode === this.formcode) {
if (!this.entryForm.contains(field.extValue)) {
// Add the control only if it doesn't exist in the form
this.entryForm.addControl(field.extValue, this._fb.control(field.fieldValue));
}
}
});
}
});
console.log(this.entryForm.value);
// form code end
}
error;
getData() {
this.mainService.getAll().subscribe((data) => {
console.log(data);
this.product = data;
if(this.product.length==0){
this.error="No Data Available"
}
},(error) => {
console.log(error);
if(error){
this.error="Server Error";
}
});
}
onEdit(row) {
this.rowSelected = row;
this.modalEdit = true;
}
onDelete(row) {
this.rowSelected = row;
this.modaldelete=true;
}
delete(id)
{
this.modaldelete = false;
console.log("in delete "+id);
this.mainService.delete(id).subscribe(
(data) => {
console.log(data);
this.ngOnInit();
if (data) { this.toastr.success('Deleted successfully'); }
});
}
onUpdate(id) {
this.modalEdit = false;
//console.log("in update");
console.log("id " + id);
console.log(this.rowSelected);
//console.log("out update");
this.mainService.update(id, this.rowSelected).subscribe(
(data) => {
console.log(data);
if (data || data.status >= 200 && data.status <= 299) {
this.toastr.success("Update Successfully");
}
setTimeout(() => {
this.ngOnInit();
}, 500);
}, (error) => {
console.log(error);
if (error.status >= 200 && error.status <= 299) {
// this.toastr.success("update Succesfully");
}
if (error.status >= 400 && error.status <= 499) {
this.toastr.error("Not Updated");
}
if (error.status >= 500 && error.status <= 599) {
this.toastr.error("Not Updated");
}
});
setTimeout(() => {
this.ngOnInit();
}, 500);
}
onCreate() {
this.modalAdd=false;
this.mainService.create(this.entryForm.value).subscribe(
(data) => {
console.log(data);
if (data || data.status >= 200 && data.status <= 299) {
this.toastr.success("Added Successfully");
}
setTimeout(() => {
this.ngOnInit();
}, 500);
}, (error) => {
console.log(error);
if (error.status >= 200 && error.status <= 299) {
// this.toastr.success("Added Succesfully");
}
if (error.status >= 400 && error.status <= 499) {
this.toastr.error("Not Added");
}
if (error.status >= 500 && error.status <= 599) {
this.toastr.error("Not Added");
}
});
setTimeout(() => {
this.ngOnInit();
}, 500);
}
goToAdd(row) {
this.modalAdd = true; this.submitted = false;
}
submitted = false;
onSubmit() {
console.log(this.entryForm.value);
this.submitted = true;
if (this.entryForm.invalid) {
return;
}this.onCreate();
}
// updateaction
}

View File

@ -0,0 +1,35 @@
import { Injectable } from '@angular/core';
import { Observable } from "rxjs";
import { HttpClient, HttpHeaders, HttpParams, } from "@angular/common/http";
import { ApiRequestService } from "src/app/services/api/api-request.service";
import { environment } from 'src/environments/environment';
@Injectable({
providedIn: 'root'
})
export class Productssservice{
private baseURL = "Productss/Productss" ; constructor(
private http: HttpClient,
private apiRequest: ApiRequestService,
) { }
getAll(page?: number, size?: number): Observable<any> {
return this.apiRequest.get(this.baseURL);
}
getById(id: number): Observable<any> {
const _http = this.baseURL + "/" + id;
return this.apiRequest.get(_http);
}
create(data: any): Observable<any> {
return this.apiRequest.post(this.baseURL, data);
}
update(id: number, data: any): Observable<any> {
const _http = this.baseURL + "/" + id;
return this.apiRequest.put(_http, data);
}
delete(id: number): Observable<any> {
const _http = this.baseURL + "/" + id;
return this.apiRequest.delete(_http);
}
// updateaction
}

View File

@ -0,0 +1,4 @@
export const Productsscardvariable = {
"cardButton": false,
"cardmodeldata": ``
}

View File

@ -0,0 +1,315 @@
<ol class="breadcrumb breadcrumb-arrow font-trirong">
<li><a href="javascript://"> Type</a></li>
</ol>
<div class="dg-wrapper">
<div class="clr-row">
<div class="clr-col-8">
<h3>Type </h3>
</div>
<div class="clr-col-4" style="text-align: right;">
<button *ngIf="cardButton" id="add" class="btn btn-primary btn-icon" (click)="changeView()" >
<clr-icon *ngIf="!isCardview" shape="grid-view"></clr-icon> <clr-icon *ngIf="isCardview" shape="bars"></clr-icon>
</button>
<!-- button -->
<button id="add" class="btn btn-primary" (click)="goToAdd(product)" >
<clr-icon shape="plus"></clr-icon>ADD
</button>
</div></div>
<ng-container *ngIf="!isCardview"> <!-- GET ALL --> <clr-datagrid [clrDgLoading]="loading" [(clrDgSelected)]="selected">
<clr-dg-placeholder>
<ng-template #loadingSpinner>
<clr-spinner>Loading ... </clr-spinner>
</ng-template>
<div *ngIf="error;else loadingSpinner">{{error}}</div>
</clr-dg-placeholder>
<clr-dg-column [clrDgField]="' type_name'"> <ng-container *clrDgHideableColumn="{hidden: false}"> Type name
</ng-container></clr-dg-column>
<!-- who column -->
<clr-dg-column> <ng-container *clrDgHideableColumn="{hidden: false}">
<clr-icon shape="bars"></clr-icon> Action
</ng-container></clr-dg-column>
<!-- end -->
<clr-dg-row *clrDgItems="let user of product" [clrDgItem]="user">
<clr-dg-cell>{{user. type_name }}</clr-dg-cell>
<!-- who column -->
<clr-dg-cell>
<clr-signpost>
<span style="cursor: pointer;" clrSignpostTrigger><clr-icon shape="help" class="success" style="color: rgb(0, 130, 236);"></clr-icon></span>
<clr-signpost-content [clrPosition]="'left-middle'" *clrIfOpen>
<h5 style="margin-top: 0">Who Column</h5>
<div>Account ID: <code class="clr-code">{{user.accountId}}</code></div>
<div>Created At: <code class="clr-code">{{user.createdAt| date}}</code></div>
<div>Created By: <code class="clr-code">{{user.createdBy}}</code></div>
<div>Updated At: <code class="clr-code">{{user.updatedAt | date}}</code></div>
<div>Updated By: <code class="clr-code">{{user.updatedBy}}</code></div>
</clr-signpost-content>
</clr-signpost>
</clr-dg-cell>
<!-- who colmn -->
<clr-dg-action-overflow>
<button class="action-item" (click)="onEdit(user)">Edit</button>
<button class="action-item" (click)="onDelete(user)">Delete</button>
</clr-dg-action-overflow>
</clr-dg-row>
<clr-dg-footer>
<clr-dg-pagination #pagination [clrDgPageSize]="10">
<clr-dg-page-size [clrPageSizeOptions]="[10,20,50,100]">Users per page</clr-dg-page-size>
{{pagination.firstItem + 1}} - {{pagination.lastItem + 1}}
of {{pagination.totalItems}} users
</clr-dg-pagination>
</clr-dg-footer>
</clr-datagrid> </ng-container>
<ng-template #showInfo>
<div class="alert alert-info" role="alert">
<div class="alert-items">
<div class="alert-item static">
<span class="alert-text">
<clr-icon class="alert-icon" shape="info-circle"></clr-icon>
Data could be found. Loading..
<clr-spinner [clrMedium]="true">Loading ...</clr-spinner>
</span>
</div>
</div>
</div>
</ng-template><ng-container *ngIf="isCardview">
<div *ngIf="product; else showInfo" class="clr-row clr-align-items-start clr-justify-content-start">
<div *ngFor="let app of product| filter:search; let index = i" class="clr-col-auto" >
<div class="clr-row">
<div class="clr-col-lg-12 clr-col-md-4 clr-col-sm-4 clr-col-12" style="width: 410px;">
<div class="card" style="padding: 10px; "[style.background-color]="cardmodal.cardColor !== '' ? cardmodal.cardColor : 'white'">
<div class="card-body" style="display: grid; grid-template-columns: repeat(13, 1fr); grid-template-rows: repeat(7, 1fr); gap: 5px;">
<ng-container *ngFor="let item of dashboardArray">
<div [style.gridColumn]="item.x + 1" [style.gridRow]="item.y + 1" [style.gridColumnEnd]="item.x + item.cols + 1"
[style.gridRowEnd]="item.y + item.rows + 1">
<div *ngIf="item.name === 'textField'" class="title-card card-title"
[style.text-align]="item.alignment !== '' ? item.alignment : 'left'"
[style.line-height]="item.textlineheight !== '' ? item.textlineheight : '1'"
[style.font-family]="item.fontName !== '' ? item.fontName : 'Metropolis'"
[style.font-size]="item.fontSize !== '' ? item.fontSize : '100%'"
[style.font-style]="item.italic == true ? 'Italic' : 'normal'"
[style.font-weight]="item.bold == true ? 'bold' : 'normal'" [style.text-decoration]="(item.underline && item.strikethough) ? 'underline line-through' :
(item.underline ? 'underline' : (item.strikethough ? 'line-through' : 'none'))"
[style.background-color]="item.backgroundcolor !== '' ? item.backgroundcolor : 'white'"
[style.color]="item.textcolor !== '' ? item.textcolor : 'black'" [style.background-color]="item.conditionValue == app[transform(item.fieldtext) ] ? item.conditionbackgroundcolor : item.backgroundcolor"
[style.color]="item.conditionValue == app[transform(item.fieldtext) ] ? item.conditiontextcolor : item.textcolor">
{{beforeText(item.fieldtext)}}
{{ app[transform(item.fieldtext) ] }}
{{afterText(item.fieldtext)}}
</div>
<div *ngIf="item.name === 'dateField'" class="title-card card-title"
[style.text-align]="item.alignment !== '' ? item.alignment : 'left'"
[style.line-height]="item.textlineheight !== '' ? item.textlineheight : '1'"
[style.font-family]="item.fontName !== '' ? item.fontName : 'Metropolis'"
[style.font-size]="item.fontSize !== '' ? item.fontSize : '100%'"
[style.font-style]="item.italic == true ? 'Italic' : 'normal'"
[style.font-weight]="item.bold == true ? 'bold' : 'normal'" [style.text-decoration]="(item.underline && item.strikethough) ? 'underline line-through' :
(item.underline ? 'underline' : (item.strikethough ? 'line-through' : 'none'))"
[style.background-color]="item.backgroundcolor !== '' ? item.backgroundcolor : 'white'"
[style.color]="item.textcolor !== '' ? item.textcolor : 'black'" [style.background-color]="item.conditionValue == app[transform(item.fieldtext) ] ? item.conditionbackgroundcolor : item.backgroundcolor"
[style.color]="item.conditionValue == app[transform(item.fieldtext) ] ? item.conditiontextcolor : item.textcolor">
{{beforeText(item.fieldtext)}}
{{ app[transform(item.fieldtext) ] | date}}
{{afterText(item.fieldtext)}}
</div>
<div *ngIf="item.name === 'numberField'" class="title-card card-title"
[style.text-align]="item.alignment !== '' ? item.alignment : 'left'"
[style.line-height]="item.textlineheight !== '' ? item.textlineheight : '1'"
[style.font-family]="item.fontName !== '' ? item.fontName : 'Metropolis'"
[style.font-size]="item.fontSize !== '' ? item.fontSize : '100%'"
[style.font-style]="item.italic == true ? 'Italic' : 'normal'"
[style.font-weight]="item.bold == true ? 'bold' : 'normal'" [style.text-decoration]="(item.underline && item.strikethough) ? 'underline line-through' :
(item.underline ? 'underline' : (item.strikethough ? 'line-through' : 'none'))"
[style.background-color]="item.backgroundcolor !== '' ? item.backgroundcolor : 'white'"
[style.color]="item.textcolor !== '' ? item.textcolor : 'black'" [style.background-color]="item.conditionValue == app[transform(item.fieldtext) ] ? item.conditionbackgroundcolor : item.backgroundcolor"
[style.color]="item.conditionValue == app[transform(item.fieldtext) ] ? item.conditiontextcolor : item.textcolor">
{{beforeText(item.fieldtext)}}
{{ app[transform(item.fieldtext) ]}}
{{afterText(item.fieldtext)}}
</div>
<div *ngIf="item.name === 'Line'" class="title-card card-title"
[style.text-align]="item.alignment !== '' ? item.alignment : 'left'"
[style.line-height]="item.textlineheight !== '' ? item.textlineheight : '1'"
[style.font-family]="item.fontName !== '' ? item.fontName : 'Metropolis'"
[style.font-size]="item.fontSize !== '' ? item.fontSize : '100%'"
[style.font-style]="item.italic == true ? 'Italic' : 'normal'"
[style.font-weight]="item.bold == true ? 'bold' : 'normal'" [style.text-decoration]="(item.underline && item.strikethough) ? 'underline line-through' :
(item.underline ? 'underline' : (item.strikethough ? 'line-through' : 'none'))"
[style.background-color]="item.backgroundcolor !== '' ? item.backgroundcolor : 'white'"
[style.color]="item.textcolor !== '' ? item.textcolor : 'black'">
<hr>
</div>
<div *ngIf="item.name === 'Icon'" class="icon-card"
[style.text-align]="item.alignment !== '' ? item.alignment : 'left'"
[style.line-height]="item.textlineheight !== '' ? item.textlineheight : '1'"
[style.font-family]="item.fontName !== '' ? item.fontName : 'Metropolis'"
[style.font-size]="item.fontSize !== '' ? item.fontSize : '100%'"
[style.font-style]="item.italic == true ? 'Italic' : 'normal'"
[style.font-weight]="item.bold == true ? 'bold' : 'normal'" [style.text-decoration]="(item.underline && item.strikethough) ? 'underline line-through' :
(item.underline ? 'underline' : (item.strikethough ? 'line-through' : 'none'))"
[style.background-color]="item.backgroundcolor !== '' ? item.backgroundcolor : 'white'"
[style.color]="item.textcolor !== '' ? item.textcolor : 'black'"
>
<clr-icon [attr.shape]="item.iconName"></clr-icon>
</div>
<div *ngIf="item.name == 'Image'"
[style.text-align]="item.alignment !== '' ? item.alignment : 'left'"
[style.line-height]="item.textlineheight !== '' ? item.textlineheight : '1'"
[style.font-family]="item.fontName !== '' ? item.fontName : 'Metropolis'"
[style.font-size]="item.fontSize !== '' ? item.fontSize : '100%'"
[style.font-style]="item.italic == true ? 'Italic' : 'normal'"
[style.font-weight]="item.bold == true ? 'bold' : 'normal'" [style.text-decoration]="(item.underline && item.strikethough) ? 'underline line-through' :
(item.underline ? 'underline' : (item.strikethough ? 'line-through' : 'none'))"
[style.background-color]="item.backgroundcolor !== '' ? item.backgroundcolor : 'white'"
[style.color]="item.textcolor !== '' ? item.textcolor : 'black'"
[style.background-color]="item.conditionValue == app[transform(item.fieldtext) ] ? item.conditionbackgroundcolor : item.backgroundcolor"
[style.color]="item.conditionValue == app[transform(item.fieldtext) ] ? item.conditiontextcolor : item.textcolor"> <img id="filePreview" [src]="item.imageURL" alt="File Preview"
[style.width]="item.imagewidth !== '' ? item.imagewidth + 'px' : '100px'"
[style.height]="item.imagewidth !== '' ? item.imagewidth + 'px' : '100px'"></div>
</div>
</ng-container>
</div>
</div>
</div>
</div>
</div>
</div>
</ng-container>
</div>
<!-- // EDIT DATA......... -->
<clr-modal [(clrModalOpen)]="modalEdit" [clrModalSize]="'lg'" [clrModalStaticBackdrop]="true">
<h3 class="modal-title">Update Type
<!--update button -->
</h3>
<div class="modal-body" *ngIf="rowSelected.id">
<h2 class="heading">{{rowSelected.id}}</h2>
<!-- button -->
<form >
<div class="clr-row">
<div class="clr-col-sm-12">
<label>Type name</label>
<input class="clr-input" type="text" [(ngModel)]="rowSelected.type_name" name="type_name" />
</div>
</div>
<!-- form code start -->
<div *ngIf="checkFormCode">
<h4 style="font-weight: 300;display: inline;">Extension</h4>
<br>
<hr>
<div class="clr-row">
<div class="clr-col-4" *ngFor="let field of additionalFieldsFromBackend">
<ng-container *ngIf="field.formCode === formcode" [ngSwitch]="field.fieldType">
<!-- Text Input --> <label *ngSwitchCase="'text'">{{ field.fieldName }}</label>
<input *ngSwitchCase="'text'" [type]="field.fieldType" name="{{ field.extValue }}" [(ngModel)]="rowSelected[field.extValue]" class="clr-input" />
<!-- Date Input --> <label *ngSwitchCase="'date'">{{ field.fieldName }}</label>
<input *ngSwitchCase="'date'" [type]="field.fieldType" name="{{ field.extValue }}" [(ngModel)]="rowSelected[field.extValue]" class="clr-input" />
<!-- Textarea --> <label *ngSwitchCase="'textarea'">{{ field.fieldName }}</label>
<textarea *ngSwitchCase="'textarea'" name="{{ field.extValue }}" [(ngModel)]="rowSelected[field.extValue]" col="10" row="2"></textarea>
<!-- Checkbox --> <label *ngSwitchCase="'checkbox'">{{ field.fieldName }}</label><br>
<input *ngSwitchCase="'checkbox'" [type]="field.fieldType" name="{{ field.extValue }}" [(ngModel)]="rowSelected[field.extValue]" class="clr-checkbox" />
</ng-container>
</div>
</div>
</div>
<!-- form code end --> <div class="modal-footer">
<button type="button" class="btn btn-outline" (click)="modalEdit = false">Cancel</button>
<button type="submit" class="btn btn-primary" (click)="onUpdate(rowSelected.id)">Update</button>
</div>
</form>
</div>
</clr-modal>
<clr-modal [(clrModalOpen)]="modaldelete" [clrModalSize]="'lg'" [clrModalStaticBackdrop]="true">
<div class="modal-body" *ngIf="rowSelected.id">
<h1 class="delete">Are You Sure Want to delete?</h1>
<h2 class="heading">{{rowSelected.id}}</h2>
<div class="modal-footer">
<button type="button" class="btn btn-outline" (click)="modaldelete = false">Cancel</button>
<button type="button" (click)="delete(rowSelected.id)" class="btn btn-primary" >Delete</button>
</div>
</div>
</clr-modal>
<!-- ADD FORM ..... -->
<clr-modal [(clrModalOpen)]="modalAdd" [clrModalSize]="'lg'" [clrModalStaticBackdrop]="true">
<h3 class="modal-title">Add Type
<!-- aeroplane icon -->
&nbsp; &nbsp; &nbsp; &nbsp;
<a *ngIf="userrole?.includes('ADMIN')" style="float: right;" href="javascript:void(0)" role="tooltip" aria-haspopup="true"
class="tooltip tooltip-sm tooltip-bottom-left">
<a id="build_extension" [routerLink]="['../extension/all']" [queryParams]="{ formCode: 'Type_formCode' }">
<clr-icon shape="airplane" size="32"></clr-icon>
</a>
<span class="tooltip-content">Form Extension</span>
</a> </h3>
<div class="modal-body">
<form [formGroup]="entryForm" >
<div class="clr-row" style="height: fit-content;">
<div class="clr-col-sm-12">
<label> Type name</label>
<input class="clr-input" type="text" formControlName="type_name" />
</div>
</div>
<!-- form code start -->
<div *ngIf="checkFormCode">
<h4 style="font-weight: 300;display: inline;">Extension</h4>
<br>
<hr>
<div class="clr-row">
<div class="clr-col-4" *ngFor="let field of additionalFieldsFromBackend">
<ng-container *ngIf="field.formCode === formcode" [ngSwitch]="field.fieldType">
<!-- Text Input --> <label *ngSwitchCase="'text'">{{ field.fieldName }}</label>
<input *ngSwitchCase="'text'" [type]="field.fieldType" [formControlName]="field.extValue"
class="clr-input" />
<!-- Date Input --> <label *ngSwitchCase="'date'">{{ field.fieldName }}</label>
<input *ngSwitchCase="'date'" [type]="field.fieldType" [formControlName]="field.extValue"
class="clr-input" />
<!-- Textarea --> <label *ngSwitchCase="'textarea'">{{ field.fieldName }}</label>
<textarea *ngSwitchCase="'textarea'" [formControlName]="field.extValue" col="10" row="2"></textarea>
<!-- Checkbox --> <label *ngSwitchCase="'checkbox'">{{ field.fieldName }}</label><br>
<input *ngSwitchCase="'checkbox'" [type]="field.fieldType" [formControlName]="field.extValue"
class="clr-checkbox" />
</ng-container>
</div>
</div>
</div>
<!-- form code end --> <div class="modal-footer">
<button type="button" class="btn btn-outline" (click)="modalAdd = false">Cancel</button>
<button type="submit" class="btn btn-primary" (click)="onSubmit()">ADD</button>
</div>
</form>
</div>
</clr-modal>
<!-- htmlpopup -->

View File

@ -0,0 +1,78 @@
//@import "../../../../assets/scss/var";
.s-info-bar {
display: flex;
flex-direction: row;
justify-content: space-between;
button {
outline: none;
}
}
.delete,.heading{
text-align: center;
color: red;
}
.entry-pg {
width: 750px;
}
.button1::after {
content: none;
}
.button1:hover::after {
content: "ADD ROWS";
}
.section {
background-color: #dddddd;
height: 40px;
}
.section p {
//color: white;
padding: 10px;
font-size: 18px;
}
.clr-input {
color: #212529;
border: 1px solid #ced4da;
border-radius: 0.25rem;
padding: 0.75rem 0.75rem;
margin-top: 3px;
width: 100%;
margin-bottom: 10px;
}
.clr-file {
color: #212529;
border: 1px solid #ced4da;
border-radius: 0.25rem;
//padding: 0.6rem 0.75rem;
margin-top: 3px;
width: 100%;
margin-bottom: 10px;
}
.center {
text-align: center;
}
select{
width: 100%;
margin-top: 3px;
padding: 5px 5px;
border: 1px solid #ccc;
border-radius: 4px;
}
input[type=text],[type=date],[type=number],textarea {
width: 100%;
padding: 15px 15px;
background-color:rgb(255, 255, 255);
// margin: 8px 0;
display: inline-block;
border: 1px solid #ccc;
border-radius: 4px;
box-sizing: border-box;
}
.error_mess {
color: red;
}

View File

@ -0,0 +1,220 @@
import { Component, OnInit } from '@angular/core';
import { ToastrService } from 'ngx-toastr';
import { AlertService } from 'src/app/services/alert.service';
import { Typeservice} from './Type.service';
import { AbstractControl, FormArray, FormBuilder, FormGroup, Validators, ValidationErrors } from '@angular/forms';
import { ExtensionService } from 'src/app/services/fnd/extension.service';
import { DashboardContentModel2 } from 'src/app/models/builder/dashboard';
import { Typecardvariable } from './Type_cardvariable';
import { UserInfoService } from 'src/app/services/user-info.service';
declare var JsBarcode: any;
@Component({
selector: 'app-Type',
templateUrl: './Type.component.html',
styleUrls: ['./Type.component.scss']
})
export class TypeComponent implements OnInit {
cardButton = Typecardvariable.cardButton;
cardmodeldata = Typecardvariable.cardmodeldata;
public dashboardArray: DashboardContentModel2[];
isCardview = Typecardvariable.cardButton;
cardmodal; changeView(){
this.isCardview = !this.isCardview;
}
beforeText(fieldtext: string): string { // Extract the text before the first '<'
const index = fieldtext.indexOf('<');
return index !== -1 ? fieldtext.substring(0, index) : fieldtext;
}
afterText(fieldtext: string): string { // Extract the text after the last '>'
const index = fieldtext.lastIndexOf('>');
return index !== -1 ? fieldtext.substring(index + 1) : '';
}
transform(fieldtext: string): string {
const match = fieldtext.match(/<([^>]*)>/);
return match ? match[1] : ''; // Extract the text between '<' and '>'
}
userrole;
rowSelected :any= {};
modaldelete=false;
modalEdit=false;
modalAdd= false;
public entryForm: FormGroup;
loading = false;
product;
modalOpenedforNewLine = false;
newLine:any;
additionalFieldsFromBackend: any[] = [];
formcode = 'Type_formCode'
tableName = 'Type'; checkFormCode; selected: any[] = []; constructor(
private extensionService: ExtensionService,
private userInfoService:UserInfoService,
private mainService:Typeservice,
private alertService: AlertService,
private toastr: ToastrService,
private _fb: FormBuilder,
) { }
// component button
ngOnInit(): void {
if(this.cardmodeldata !== ''){
this.cardmodal = JSON.parse(this.cardmodeldata);
this.dashboardArray = this.cardmodal.dashboard.slice();
console.log(this.dashboardArray)
}
this.userrole=this.userInfoService.getRoles();
this.getData();
this.entryForm = this._fb.group({
type_name : [null],
}); // component_button200
// form code start
this.extensionService.getJsonObjectsByFormCodeList(this.formcode).subscribe(data => {
console.log(data);
const jsonArray = data.map((str) => JSON.parse(str));
this.additionalFieldsFromBackend = jsonArray;
this.checkFormCode = this.additionalFieldsFromBackend.some(field => field.formCode === "Type_formCode");
console.log(this.checkFormCode);
console.log(this.additionalFieldsFromBackend);
if (this.additionalFieldsFromBackend && this.additionalFieldsFromBackend.length > 0) {
this.additionalFieldsFromBackend.forEach(field => {
if (field.formCode === this.formcode) {
if (!this.entryForm.contains(field.extValue)) {
// Add the control only if it doesn't exist in the form
this.entryForm.addControl(field.extValue, this._fb.control(field.fieldValue));
}
}
});
}
});
console.log(this.entryForm.value);
// form code end
}
error;
getData() {
this.mainService.getAll().subscribe((data) => {
console.log(data);
this.product = data;
if(this.product.length==0){
this.error="No Data Available"
}
},(error) => {
console.log(error);
if(error){
this.error="Server Error";
}
});
}
onEdit(row) {
this.rowSelected = row;
this.modalEdit = true;
}
onDelete(row) {
this.rowSelected = row;
this.modaldelete=true;
}
delete(id)
{
this.modaldelete = false;
console.log("in delete "+id);
this.mainService.delete(id).subscribe(
(data) => {
console.log(data);
this.ngOnInit();
if (data) { this.toastr.success('Deleted successfully'); }
});
}
onUpdate(id) {
this.modalEdit = false;
//console.log("in update");
console.log("id " + id);
console.log(this.rowSelected);
//console.log("out update");
this.mainService.update(id, this.rowSelected).subscribe(
(data) => {
console.log(data);
if (data || data.status >= 200 && data.status <= 299) {
this.toastr.success("Update Successfully");
}
setTimeout(() => {
this.ngOnInit();
}, 500);
}, (error) => {
console.log(error);
if (error.status >= 200 && error.status <= 299) {
// this.toastr.success("update Succesfully");
}
if (error.status >= 400 && error.status <= 499) {
this.toastr.error("Not Updated");
}
if (error.status >= 500 && error.status <= 599) {
this.toastr.error("Not Updated");
}
});
setTimeout(() => {
this.ngOnInit();
}, 500);
}
onCreate() {
this.modalAdd=false;
this.mainService.create(this.entryForm.value).subscribe(
(data) => {
console.log(data);
if (data || data.status >= 200 && data.status <= 299) {
this.toastr.success("Added Successfully");
}
setTimeout(() => {
this.ngOnInit();
}, 500);
}, (error) => {
console.log(error);
if (error.status >= 200 && error.status <= 299) {
// this.toastr.success("Added Succesfully");
}
if (error.status >= 400 && error.status <= 499) {
this.toastr.error("Not Added");
}
if (error.status >= 500 && error.status <= 599) {
this.toastr.error("Not Added");
}
});
setTimeout(() => {
this.ngOnInit();
}, 500);
}
goToAdd(row) {
this.modalAdd = true; this.submitted = false;
}
submitted = false;
onSubmit() {
console.log(this.entryForm.value);
this.submitted = true;
if (this.entryForm.invalid) {
return;
}this.onCreate();
}
// updateaction
}

View File

@ -0,0 +1,35 @@
import { Injectable } from '@angular/core';
import { Observable } from "rxjs";
import { HttpClient, HttpHeaders, HttpParams, } from "@angular/common/http";
import { ApiRequestService } from "src/app/services/api/api-request.service";
import { environment } from 'src/environments/environment';
@Injectable({
providedIn: 'root'
})
export class Typeservice{
private baseURL = "Type/Type" ; constructor(
private http: HttpClient,
private apiRequest: ApiRequestService,
) { }
getAll(page?: number, size?: number): Observable<any> {
return this.apiRequest.get(this.baseURL);
}
getById(id: number): Observable<any> {
const _http = this.baseURL + "/" + id;
return this.apiRequest.get(_http);
}
create(data: any): Observable<any> {
return this.apiRequest.post(this.baseURL, data);
}
update(id: number, data: any): Observable<any> {
const _http = this.baseURL + "/" + id;
return this.apiRequest.put(_http, data);
}
delete(id: number): Observable<any> {
const _http = this.baseURL + "/" + id;
return this.apiRequest.delete(_http);
}
// updateaction
}

View File

@ -0,0 +1,4 @@
export const Typecardvariable = {
"cardButton": false,
"cardmodeldata": ``
}

View File

@ -1,3 +1,11 @@
import { Generate_quoteComponent } from './BuilderComponents/order_estimation/Generate_quote/Generate_quote.component';
import { Notes_and_termsComponent } from './BuilderComponents/order_estimation/Notes_and_terms/Notes_and_terms.component';
import { Order_summaryComponent } from './BuilderComponents/order_estimation/Order_summary/Order_summary.component';
import { ManufacturerComponent } from './BuilderComponents/order_estimation/Manufacturer/Manufacturer.component';
import { ProductssComponent } from './BuilderComponents/order_estimation/Productss/Productss.component';
import { TypeComponent } from './BuilderComponents/order_estimation/Type/Type.component';
import { Product_selectionComponent } from './BuilderComponents/order_estimation/Product_selection/Product_selection.component';
import { Customer_informationComponent } from './BuilderComponents/order_estimation/Customer_information/Customer_information.component';
import { SequencegenaratorComponent } from './fnd/sequencegenarator/sequencegenarator.component';
import { Component, NgModule } from '@angular/core';
@ -257,6 +265,30 @@ const routes: Routes = [
// buildercomponents
{path:'Generate_quote',component:Generate_quoteComponent},
{path:'Notes_and_terms',component:Notes_and_termsComponent},
{path:'Order_summary',component:Order_summaryComponent},
{path:'Manufacturer',component:ManufacturerComponent},
{path:'Productss',component:ProductssComponent},
{path:'Type',component:TypeComponent},
{path:'Product_selection',component:Product_selectionComponent},
{path:'Customer_information',component:Customer_informationComponent},

Some files were not shown because too many files have changed in this diff Show More