supermarketjs

1.0.6 • Public • Published

SuperMarket

This package contains a backend of what would be the logic of a supermarking software.

Usage

const { DTOCustomer } = require("./entity/DTOCustomer");
const { DataCustomer } = require("./data/DataCustomer");
const { DataSuppliers } = require("./data/DataSuppliers");
const { DTOSuppliers } = require("./entity/DTOSuppliers");
const { DTOCategory } = require("./entity/DTOCategory");
const { DataCategory } = require("./data/DataCategory");
const { DataProduct } = require("./data/DataProduct");
const { DTOProduct } = require("./entity/DTOProduct");
const { DTOOffer } = require("./entity/DTOOffer");
const { DataOffer } = require("./data/DataOffer");
const { DataRatingsProduct } = require("./data/DataRatingProduct");
const { DataLoginCustomer } = require("./data/DataLoginCustomer");
const { DataAdministrator } = require("./data/DataAdministrator");
const { DTOAdministrator } = require("./entity/DTOAdministrator");
const { DataLoginAdmin } = require("./data/DataLoginAdmin");
const { DTOSale } = require("./entity/DTOSale");
const { DataSale } = require("./data/DataSale");


#region ADMIN

 async function registerAdmin() {
        for (let index = 1; index < 100; index++) {

            let dtoadmin = new DTOAdministrator();
         
            dtoadmin.NameAdmin = "User" + index.toString();
            dtoadmin.UserrName = "Username" + index.toString();
            dtoadmin.Passwordd = "password" + index.toString();
     

            let registercustomer = await DataAdministrator.registerAdmin(dtoadmin);
            if (registercustomer===-1) {
                throw new
                 Error("The username already exists");
            }
            if (registercustomer===-2) {
                throw new 
                Error("Username must have more than 8 characters");
            }
            if (registercustomer===-3) {
                throw new 
                Error("Passwordd must have more than 8 characters");
            }
            console.log("The admin was registered successfully");
        }
    }
    registerAdmin().then()

 async function updateNameAdmin() {
            let dtoadmin = new DTOAdministrator();
            dtoadmin.IdAdministrator =  3;
            dtoadmin.NameAdmin = "User1";
            
            let updateNameAdmin = await 
            DataAdministrator.updateNameAdmin(dtoadmin);
            if (updateNameAdmin===-1) {
                throw new
                 Error("The idadmin does not  exists");
            }
           
            console.log("Admin update successfully");
    }
    updateNameAdmin().then()

 async function updatePassword() 
 {
           
            
            let idadmin=4;
            let newpassword="password44";
            let currentpassword="password4";
            let updatePassword = await 
            DataAdministrator.updatePassword(idadmin,newpassword,currentpassword);
            if (updatePassword===-1) {
                throw new Error("Incorrect idadmin and/or password");
            }
            if (updatePassword===-2) {
                throw new 
                Error("Passwordd must have more than 8 characters");
            }
           
            console.log("Password update successfully");
}
updatePassword().then()

      async function deleteAdmin() {
        

            let deleteAdmin = await DataAdministrator.deleteAdmin(2);
            if (deleteAdmin===-1) {
                throw new
                 Error("The idadmin does not exists");
            }
           
            console.log("Administrator delete successfully");
        }
   
        deleteAdmin().then()

#region ADMIN
#region CUSTOMERS

    async function registerCustomer() {
        for (let index = 300; index < 500; index++) {

            let dtocustomer = new DTOCustomer();
            dtocustomer.namecustomer = "User" + index.toString();
            dtocustomer.userrname = "Username" + index.toString();
            dtocustomer.password = "password" + index.toString();
            dtocustomer.streetname = "streetname" + index.toString();
            dtocustomer.streetnumber = "1111" + index.toString();
            dtocustomer.unit_apartament = "1111" + index.toString();
            dtocustomer.city = "City" + index.toString();
            dtocustomer.statee = "Statee" + index.toString();
            dtocustomer.phone = "1111" + index.toString();
            dtocustomer.email = "email" + index.toString() + "@gmail.com";


            let registercustomer = await DataCustomer.registerCustomer(dtocustomer);
            if (registercustomer===-1) {
                throw new
                 Error("The username already exists");
            }
            if (registercustomer===-2) {
                throw new 
                Error("Username must have more than 8 characters");
            }
            if (registercustomer===-4) {
                throw new
                 Error("The email already exists");
            }
            if (registercustomer===-3) {
                throw new 
                Error("Passwordd must have more than 8 characters");
            }
            console.log("The customer registered successfully");
        }
    }
    registerCustomer().then()



      async function updateCustomer() {
        

            let dtocustomer = new DTOCustomer();
            dtocustomer.idcustomer =  3;
            dtocustomer.namecustomer = "User0";
            dtocustomer.streetname = "streetname0" ;
            dtocustomer.streetnumber = "1111";
            dtocustomer.unit_apartament = "1111";
            dtocustomer.city = "City0";
            dtocustomer.statee = "Statee0";
            dtocustomer.phone = "000000" ;
            dtocustomer.email = "email0@gmail.com";


            let updateCustomer = await DataCustomer.updateCustomer(dtocustomer);
            if (updateCustomer===-1) {
                throw new
                 Error("The idcustomer does not  exists");
            }
           
            console.log("Customer update successfully");
        }
   
        updateCustomer().then()




      async function updatePassword() {
    
            let idcustomer=4;
            let newpassword="password2";
            let currentpassword="password2";
            let updatePassword = await DataCustomer.updatePassword(idcustomer,newpassword,currentpassword);
            if (updatePassword===-1) {
                throw new Error("Incorrect idcustomer and/or password");
            }
            if (updatePassword===-2) {
                throw new 
                Error("Passwordd must have more than 8 characters");
            }
           
            console.log("Password update successfully");
        }
   
        updatePassword().then()




       async function deleteCustomer() {
        

            let deleteCustomer = await DataCustomer.deleteCustomer(3);
            if (deleteCustomer===-1) {
                throw new
                 Error("The idcustomer does not exists");
            }
           
            console.log("Customer delete successfully");
        }
   
        deleteCustomer().then()

       async function getCustomerById() {
               
                let getCustomerById = 
                await DataCustomer.getCustomerById(4);
                console.log(getCustomerById);
        }
        getCustomerById().then()

 
#endregion CUSTOMERS

#region LOGIN ADMIN

    async function loginAdmin() {
       

            let loginAdmin = await DataLoginAdmin.
            loginAdmin("Username4","password44");
            if (loginAdmin===-1) {
                throw new
                 Error("The Password or Username is incorrect");
            }
           
            console.log(loginAdmin);
        
    }
    loginAdmin().then()

    async function existLoginUser() {
       
        let existLoginAdmin = 
        await DataLoginAdmin.existLoginAdmin(4,"Username4")
        console.log(existLoginAdmin);
        
    }
    existLoginUser().then()



    async function logoutAdmin() {
       

            let logout = await DataLoginAdmin.
            logout(4);
            if (logout===-1) {
                throw new
                 Error("The User is not logged in");
            }
           
            console.log("The User has logged out");
        
    }
    logoutAdmin().then()



#endregion LOGIN ADMIN

#region LOGIN CUSTOMER

async function loginCustomer() {
       

            let loginCustomer = await DataLoginCustomer.
            loginCustomer("Username3","password3");
            if (loginCustomer===-1) {
                throw new
                 Error("The Password or Username is incorrect");
            }
           
            console.log(loginCustomer);
        
    }
    loginCustomer().then()

    async function existLoginCustomer() {
       
        let existLoginCustomer = 
        await DataLoginCustomer.existLoginCustomer(4,"Username2")
        console.log(existLoginCustomer);
        
    }
    existLoginCustomer().then()



    async function logout() {
       

            let logout = await DataLoginCustomer.
            logout(4);
            if (logout===-1) {
                throw new
                 Error("The User is not logged in");
            }
           
            console.log("The User has logged out");
        
    }
    logout().then()




#endregion LOGIN CUSTOMER


#region SUPPLIERS

    async function registerSuppliers() {
        for (let index = 1; index < 100; index++) {

            let dtosuppliers = new DTOSuppliers();
            dtosuppliers.SupplierName = "SupplierName" + index.toString();
            dtosuppliers.AddressSupplier = "AddressSupplier" + index.toString();
            dtosuppliers.CitySupplier = "CitySupplier" + index.toString();
            dtosuppliers.StateSupplier = "StateSupplier" + index.toString();
            dtosuppliers.PhoneSupplier = "11111" + index.toString();
            dtosuppliers.EmailSupplier = "EmailSupplier" + index.toString() + "@gmail.com";

            let registerSuppliers = await DataSuppliers.registerSuppliers(dtosuppliers);
            if (registerSuppliers===-1) {
                throw new
                 Error("The email already exists");
            }
           
            console.log("Supplier registered successfully");
        }
    }
    registerSuppliers().then()


    async function updateSuppliers() {
       

            let dtosuppliers = new DTOSuppliers();
            dtosuppliers.SupplierId = 108;
            dtosuppliers.SupplierName = "SupplierName10";
            dtosuppliers.AddressSupplier = "AddressSupplier10";
            dtosuppliers.CitySupplier = "CitySupplier10" ;
            dtosuppliers.StateSupplier = "StateSupplier10" ;
            dtosuppliers.PhoneSupplier = "11111010" ;
          

            let updateSuppliers = await DataSuppliers.updateSuppliers(dtosuppliers);
            if (updateSuppliers===-1) {
                throw new
                Error("The idsupplier does not exist");
            }
           
            console.log("Supplier updated successfully");
       
    }
    updateSuppliers().then()



#endregion SUPPLIERS

#region CATEGORY

async function registerCategory() {
     

           
            let NameCategory = "NameCategory" ;
            let DescrriptionCategory = "DescrriptionCategory" ;
            let registerCategory = await DataCategory.registerCategory(NameCategory,DescrriptionCategory);
           
            console.log("Category registered successfully");
       
    }
    registerCategory().then()


async function updateCategory() {
        
            let IdCategory = 2 ;
            let NameCategory = "NameCategory0" ;
            let DescrriptionCategory = "DescrriptionCategory0";
            let updateCategory = await DataCategory.updateCategory(IdCategory,NameCategory,DescrriptionCategory);
            if (updateCategory===-1) {
                 throw new
                 Error("The IdCategory does not exist");
             }
             console.log("Category updated successfully");
    }
   updateCategory().then()



#endregion CATEGORY

#region PRODUCT

async function registerProduct() {
        for (let index = 1; index < 29; index++) {

           let dtoproduct=new DTOProduct();

             dtoproduct.NameProduct = "NameProduct" + index.toString();
             dtoproduct.DescriptionProduct = "DescriptionProduct" + index.toString();
             dtoproduct.UrlImg = "UrlImg" + index.toString();
             dtoproduct.PriceProduct = 40 + index;
             dtoproduct.Manufacturer = "Manufacturer" + index.toString();
             dtoproduct.CountryOfOrigin = "CountryOfOrigin" + index.toString();
             dtoproduct.StockProduct = 50 + index;
             dtoproduct.Entry_date = new Date(2023,05,index);
             dtoproduct.Expiration_date = new Date(2023,10,index);
             dtoproduct.SupplierId = 108+index;
             dtoproduct.IdCategory = 2+index;

            let registerProduct = await DataProduct.registerProduct(dtoproduct);
            if (registerProduct===-1) {
                throw new
                Error("The idsupplier does not  exists");   
            }
            if (registerProduct===-2) {
                throw new
                Error("The idcategory does not  exists");   
            }
           
            console.log("Product registered successfully");
        }
    }
    registerProduct().then()


async function updateProduct() {
        

           let dtoproduct=new DTOProduct();
            dtoproduct.IdProduct = 61;
             dtoproduct.NameProduct = "NameProduct0";
             dtoproduct.DescriptionProduct = "DescriptionProduct0" ;      
             dtoproduct.PriceProduct = 40 ;
             dtoproduct.Manufacturer = "Manufacturer0";
             dtoproduct.CountryOfOrigin = "CountryOfOrigin0" ;
             dtoproduct.Entry_date = new Date(2023,05,8);
             dtoproduct.Expiration_date = new Date(2023,10,10);
          

            let updateProduct = await DataProduct.updateProduct(dtoproduct);
            if (updateProduct===-1) {
                throw new
                Error("The idproduct does not  exists");   
            }
            
           
            console.log("Product updated successfully");
        
    }
    updateProduct().then()


    async function deleteProduct() {
    
                let idproduct=61;

                let deleteProduct = await DataProduct.deleteProduct(idproduct);
                if (deleteProduct===-1) {
                    throw new
                    Error("The idproduct does not  exists");   
                }
                
               
                console.log("Stock deleted successfully");
            
        }
        deleteProduct().then()


    
    async function addStock() {
    
                let idproduct=62;
                let quantity=3;
                let addStock = await DataProduct.addStock(idproduct,quantity);
                if (addStock===-1) {
                    throw new
                    Error("The idproduct does not  exists");   
                }
                
               
                console.log("Stock updated successfully");
            
        }
        addStock().then()

      
    async function substractStock() {
    
                let idproduct=62;
                let quantity=2;
                let substractStock = await DataProduct.substractStock(idproduct,quantity);
                if (substractStock===-1) {
                    throw new
                    Error("The idproduct does not  exists");   
                }
                
               
                console.log("Product updated successfully");
            
        }
        substractStock().then()

        async function getProductsOfferByCategory() {
                let idcategory=1;
                let getProductsByCategory = 
                await DataProduct.getProductsOfferByCategory(idcategory);
                console.log(getProductsByCategory);
        }
        getProductsOfferByCategory().then()

         async function getProductsOffer() {
               
                let getProductsOffer = 
                await DataProduct.getProductsOffer();
                console.log(getProductsOffer);
        }
        getProductsOffer().then()


         async function getSearchProducts() {
               
                let getSearchProducts = 
                await DataProduct.getSearchProducts();
                console.log(getSearchProducts);
        }
        getSearchProducts().then()


   async function getProductById() {
               
                let getProductById = 
                await DataProduct.getProductById(62);
                console.log(getProductById);
        }
        getProductById().then()


   async function getTodayProductsOffers() {
               
                let getTodayProductsOffers = 
                await DataProduct.getTodayProductsOffers();
                console.log(getTodayProductsOffers);
        }
        getTodayProductsOffers().then()

#endregion PRODUCT

#region  PRODUCT RATINGS


async function ratingProduct() {
    
           let rating=3;
           let idproduct=62;
           let idcustomer=9;


            let ratingProduct = await DataRatingsProduct.ratingProduct(idproduct,idcustomer,rating);
            if (ratingProduct===-1) {
                throw new
                Error("The idproduct does not  exists");   
            }
            if (ratingProduct===-3) {
                throw new
                Error("The idcustomer does not  exists");   
            }
            if (ratingProduct===-2) {
                throw new
                Error("The rating must be 1 to 5");   
            }
            if (ratingProduct===2) {
                console.log("Product updated successfully");  
            }
            if (ratingProduct===1) {
                console.log("Product insert successfully");
            }
    }
    ratingProduct().then()




#endregion PRODUCT RATINGS
#region  OFFERS


async function registerOffer() {
       
      
           let dtoffer=new DTOOffer();

           dtoffer.DescriptionOffer = "DescriptionOffer";
           dtoffer.DiscountPercentage =  20  ;
           dtoffer.Startt_date ='2023-06-09' ;
           dtoffer.End_date ='2023-06-30' ;
           dtoffer.IdProduct=68;


            let registerOffer = await DataOffer.registerOffer(dtoffer);
            if (registerOffer===-1) {
                throw new
                Error("The idproduct does not  exists");   
            }
            if (registerOffer===-2) {
                throw new
                Error(" The end date must be greater than start date");   
            }
            if (registerOffer===-3) {
                throw new
                Error(" The offer already exists");   
            }
         
           
            console.log("Offer registered successfully");
     
      
    }
    registerOffer().then()


async function updateOffer() {
       

    let dtoffer=new DTOOffer();

    dtoffer.DescriptionOffer = "DescriptionOffer2";
    dtoffer.DiscountPercentage =  15  ;
    dtoffer.Startt_date ='2023-06-09' ;
    dtoffer.End_date ='2023-06-29' ;
    dtoffer.IdProduct=62;


     let updateOffer = await DataOffer.updateOffer(dtoffer);
     if (updateOffer===-1) {
         throw new
         Error("The idproduct already exists in the offer");   
     }
     if (updateOffer===-2) {
         throw new
         Error(" The end date must be greater than start date");   
     }
     if (updateOffer===-3) {
         throw new
         Error(" The offer does not exists");   
     }
  
    
     console.log("Offer updated successfully");

}
updateOffer().then()

#endregion OFFERS

#region SALE


async function registerSale() {
       
      
           let dtosale=new DTOSale();

           dtosale.PaymentMethod = "Cash";
           dtosale.Observation = "Observation"  ;
           dtosale.IdCustomer = 4  ;
           dtosale.Vat =15 ;

            let arraydetailsale=[];
            arraydetailsale.push({quantity:1,priceproduct:41,idproduct:61})
             arraydetailsale.push({quantity:2,priceproduct:43,idproduct:63})
             arraydetailsale.push({quantity:3,priceproduct:44,idproduct:64})
             arraydetailsale.push({quantity:4,priceproduct:45,idproduct:65})
          
            let registerOnlineSale = await DataSale.registerOnlineSale(dtosale,arraydetailsale);
            if (registerOnlineSale===-1) {
                throw new
                Error(" The customer does not exists");   
             }
            console.log(" The sale was registered successfully");
     
      
    }
    registerSale().then()


async function confirmSale() {
       
      
             
              let idsale=8;
              
                let confirmSale = await
                 DataSale.confirmSale(idsale);
                if (confirmSale===-1) {
                    throw new
                    Error(" The sale does not exists");   
                 }
                console.log(" The sale was confirmed successfully");
         
          
        }
        confirmSale().then()

async function deliverSale() {
       
      
             
              let idsale=8;
              
                let deliverSale = await
                 DataSale.deliverSale(idsale);
                if (deliverSale===-1) {
                    throw new
                    Error(" The sale does not exists");   
                 }
                console.log(" The sale was delivered successfully");
         
          
        }
        deliverSale().then()

async function cancelSale() {
       
      
             
    let idsale=8;
    
      let cancelSale = await
       DataSale.cancelSale(idsale);
      if (cancelSale===-1) {
          throw new
          Error(" The sale does not exists");   
       }
      console.log(" The sale was canceled successfully");


}
cancelSale().then()



   async function getPendingSalesByCustomer() {
               
                let getPendingSalesByCustomer = 
                await DataSale.getPendingSalesByCustomer();
                console.log(getPendingSalesByCustomer);
        }
        getPendingSalesByCustomer().then()


   async function getConfirmedSalesByCustomer() {
               
                let getConfirmedSalesByCustomer = 
                await DataSale.getConfirmedSalesByCustomer();
                console.log(getConfirmedSalesByCustomer);
        }
        getConfirmedSalesByCustomer().then()


#endregion SALE



Package Sidebar

Install

npm i supermarketjs

Weekly Downloads

2

Version

1.0.6

License

MIT

Unpacked Size

124 kB

Total Files

23

Last publish

Collaborators

  • carlosrodriguezz