Skip to content
Snippets Groups Projects
Select Git revision
  • 2063e368ec7a79a4ce956f49b480a26d73050f2d
  • master default protected
  • th/etcd-patroni
  • th/pgbackrest
4 results

.ansible-lint

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    articles.js 1.72 KiB
    import { db } from "$lib/server/database";
    
    export function getPriceModifier(userBalance, noPremium=false){
    	if(noPremium===true) return ()=>0;
    	if (userBalance < 0) {
    		const debt = -userBalance;
    		const premium = 200 / (1 + Math.pow(Math.E, ((-debt + 2900) / 1000)));
    		return originalPrice=>{
    			if (originalPrice < 100) {
    				// 11% bis 200% Aufschlag
    				return Math.ceil(originalPrice * premium / 100);
    			} else {
    				// 0,11€ bis 2,00€ Aufschlag
    				return Math.ceil(premium);
    			}
    		};
    	}else{
    		return originalPrice=>{
    			if (userBalance < originalPrice) {
    				// 10%, aber maximal 0,10€ Aufschlag
    				return Math.min(10, Math.ceil(0.1 * originalPrice));
    			} else {
    				return 0;
    			}
    		};
    	}
    }
    
    export function restockArticle(code, amount, cost){
    	return db.item.update({
    		where: {code},
    		data: {
    			stock: {
    				increment: amount
    			},
    			restocks: {
    				create: {amount, cost}
    			}
    		}
    	});
    }
    
    export async function restockArticles(restocks){
    	return db.$transaction(restocks.map(({code, amount, cost})=>restockArticle(code, amount, cost)));
    }
    
    export async function createArticle(code, name, price, categoryId, image, available=true){
    	return db.item.create({data: {code, name, price, categoryId, image, available}});
    }
    
    export async function updateArticle(code, name, price, categoryId, image, available){
    	return db.item.update({where: {code}, data: {name, price, categoryId, image, available}});
    }
    
    export async function createCategory(name, position){
    	return db.itemCategory.create({data: {name, position}});
    }
    
    export async function updateCategory(id, name, position){
    	return db.itemCategory.update({where: {id}, data: {name, position}});
    }
    
    export async function deleteCategory(id){
    	return db.itemCategory.delete({where: {id}});
    }