@@ -103,6 +103,42 @@ def close_trade(
|
||||
return RedirectResponse("/options/", status_code=303)
|
||||
|
||||
|
||||
@router.post("/{trade_id}/edit")
|
||||
def edit_trade(
|
||||
request: Request,
|
||||
trade_id: int,
|
||||
contract_code: str = Form(...),
|
||||
option_type: str = Form(...),
|
||||
direction: str = Form(...),
|
||||
strike_price: float = Form(...),
|
||||
open_date: str = Form(...),
|
||||
open_price: float = Form(...),
|
||||
open_fee: float = Form(0.0),
|
||||
close_date: str = Form(""),
|
||||
close_price: float = Form(None),
|
||||
close_fee: float = Form(None),
|
||||
db: Session = Depends(get_db),
|
||||
):
|
||||
t = db.query(OptionTrade).filter(OptionTrade.id == trade_id).first()
|
||||
if t:
|
||||
code = contract_code.upper()
|
||||
contract = db.query(Contract).filter(Contract.code == code).first()
|
||||
t.product_code = contract.product.code if contract else code[:2]
|
||||
t.contract_code = code
|
||||
t.option_type = option_type
|
||||
t.direction = direction
|
||||
t.strike_price = strike_price
|
||||
t.open_date = date.fromisoformat(open_date)
|
||||
t.open_price = open_price
|
||||
t.open_fee = open_fee
|
||||
if close_date and close_price is not None:
|
||||
t.close_date = date.fromisoformat(close_date)
|
||||
t.close_price = close_price
|
||||
t.close_fee = close_fee or 0
|
||||
db.commit()
|
||||
return RedirectResponse("/options/", status_code=303)
|
||||
|
||||
|
||||
@router.post("/{trade_id}/delete")
|
||||
def delete_trade(trade_id: int, db: Session = Depends(get_db)):
|
||||
t = db.query(OptionTrade).filter(OptionTrade.id == trade_id).first()
|
||||
|
||||
@@ -108,6 +108,38 @@ def close_trade(
|
||||
return RedirectResponse("/trades/", status_code=303)
|
||||
|
||||
|
||||
@router.post("/{trade_id}/edit")
|
||||
def edit_trade(
|
||||
request: Request,
|
||||
trade_id: int,
|
||||
contract_code: str = Form(...),
|
||||
direction: str = Form(...),
|
||||
open_date: str = Form(...),
|
||||
open_price: float = Form(...),
|
||||
open_fee: float = Form(0.0),
|
||||
close_date: str = Form(""),
|
||||
close_price: float = Form(None),
|
||||
close_fee: float = Form(None),
|
||||
db: Session = Depends(get_db),
|
||||
):
|
||||
t = db.query(Trade).filter(Trade.id == trade_id).first()
|
||||
if t:
|
||||
code = contract_code.upper()
|
||||
contract = db.query(Contract).filter(Contract.code == code).first()
|
||||
t.product_code = contract.product.code if contract else code[:2]
|
||||
t.contract_code = code
|
||||
t.direction = direction
|
||||
t.open_date = date.fromisoformat(open_date)
|
||||
t.open_price = open_price
|
||||
t.open_fee = open_fee
|
||||
if close_date and close_price is not None:
|
||||
t.close_date = date.fromisoformat(close_date)
|
||||
t.close_price = close_price
|
||||
t.close_fee = close_fee or 0
|
||||
db.commit()
|
||||
return RedirectResponse("/trades/", status_code=303)
|
||||
|
||||
|
||||
@router.post("/{trade_id}/delete")
|
||||
def delete_trade(trade_id: int, db: Session = Depends(get_db)):
|
||||
t = db.query(Trade).filter(Trade.id == trade_id).first()
|
||||
|
||||
Reference in New Issue
Block a user