diff options
Diffstat (limited to 'Form')
-rw-r--r-- | Form/ShopDelivery.hs | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/Form/ShopDelivery.hs b/Form/ShopDelivery.hs index 505b9f5..bd82dea 100644 --- a/Form/ShopDelivery.hs +++ b/Form/ShopDelivery.hs @@ -9,18 +9,12 @@ data FormShopDelivery = FormShopDelivery , fpDelivery :: DeliveryId } -shopDeliveryForm :: Maybe ShopId -> Maybe DeliveryId -> Html -> MForm Handler (FormResult FormShopDelivery, Widget) -shopDeliveryForm mshopid mdeliveryid = renderBootstrap3 formLayout $ FormShopDelivery - <$> maybe shopField pure mshopid +shopDeliveryForm :: ShopId -> Maybe DeliveryId -> Html -> MForm Handler (FormResult FormShopDelivery, Widget) +shopDeliveryForm shopid mdeliveryid = renderBootstrap3 formLayout $ FormShopDelivery + <$> pure shopid <*> maybe deliveryField pure mdeliveryid where - shopField = areq (selectField shops) (bfs MsgShop) Nothing deliveryField = areq (selectField deliveries) (bfs MsgDelivery) Nothing - shops = do - entities <- runDB $ selectList [ ] [ Asc ShopIdent ] - optionsPairs $ map (\shop -> ( shopIdent $ entityVal shop - , entityKey shop)) - entities deliveries = do now <- lift getCurrentTime options <- runDB $ @@ -28,6 +22,11 @@ shopDeliveryForm mshopid mdeliveryid = renderBootstrap3 formLayout $ FormShopDel E.from $ \(p, d) -> do E.where_ ( d E.^. DeliveryPlace E.==. p E.^. PlaceId E.&&. d E.^. DeliveryFrom E.>. E.val now + E.&&. (E.notExists $ E.from $ \sd -> + E.where_ ( sd E.^. ShopDeliveryDelivery E.==. d E.^. DeliveryId + E.&&. sd E.^. ShopDeliveryShop E.==. E.val shopid + ) + ) ) E.orderBy [ E.asc (p E.^. PlaceIdent) , E.asc (d E.^. DeliveryFrom) |