Ручной ввод: без обязательных галок, удаление черновика, запрет количества больше остатка; отказ НРД по поручению — красным
- ручных отметок перед отправкой нет: автор виден по учётной записи, клиент/счёт/остаток/
бумага проверены сверкой с DEPO при сохранении; блокировка в QUIK — необязательно,
по умолчанию не требуется (модуль неторговых поручений сейчас не используется)
- «Удалить черновик» в карточке (POST /admin/manual/{id}/delete), только для черновиков
- количество не больше остатка на торговом разделе: проверка в форме (по выбранной бумаге)
и на сервере при сохранении (по счёту DEPO) — поручение с превышением не сохраняется
- отчёт MS010 с отказом: orderResponse.Rejected, OutgoingDeal.Rejected; шаг «Операция
завершена отказом» и бейдж — красные в карточках исходящего и входящего; онлайн-статус
«поручение 16 завершено отказом НРД»
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q4YVo4UMopqT5DzicqpPjL
This commit is contained in:
@@ -127,6 +127,16 @@ func registerManual(mux *http.ServeMux, rc *RuntimeConfig, svc *Service) {
|
||||
id, _ := strconv.Atoi(r.FormValue("id"))
|
||||
actor := manualActor(w)
|
||||
msg := "Поручение сохранено"
|
||||
if over := manualQtyOverAvailable(rc, r.FormValue("depo_client"), in); over != "" {
|
||||
if id == 0 {
|
||||
d := base("Новое поручение")
|
||||
d.Mode, d.O, d.Handbook, d.Flash = "edit", in, handbookParticipants(), over
|
||||
render(w, tpl, d)
|
||||
return
|
||||
}
|
||||
back(w, r, fmt.Sprintf("/admin/manual/%d", id), over, "#mf")
|
||||
return
|
||||
}
|
||||
if id == 0 {
|
||||
in.Status, in.CreatedBy = "draft", actor
|
||||
if err := globalManual.Create(in); err != nil {
|
||||
@@ -265,6 +275,13 @@ func registerManual(mux *http.ServeMux, rc *RuntimeConfig, svc *Service) {
|
||||
})
|
||||
log.Printf("lk-gateway: ручной ввод %s (%s): отправка — %s", o.Number(), o.FullName(), msg)
|
||||
back(w, r, card, msg, "")
|
||||
case "delete":
|
||||
if err := globalManual.Delete(id); err != nil {
|
||||
back(w, r, card, err.Error(), "")
|
||||
return
|
||||
}
|
||||
back(w, r, "/admin/manual", fmt.Sprintf("Черновик %d удалён", id), "")
|
||||
return
|
||||
case "decline":
|
||||
reason := strings.TrimSpace(r.FormValue("reason"))
|
||||
err := globalManual.Update(id, func(o *ManualOrder) error {
|
||||
|
||||
Reference in New Issue
Block a user