Своя организация в настройках (справочник НРД или вручную) вместо зашитого ИНН; ручной ввод: поиск клиента и бумаг в DEPO, одна бумага на поручение
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -4,13 +4,11 @@ package lkgateway
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"html/template"
|
||||
"log"
|
||||
"net/http"
|
||||
"net/url"
|
||||
"os"
|
||||
"strconv"
|
||||
"strings"
|
||||
"time"
|
||||
@@ -53,26 +51,6 @@ func manualActor(w http.ResponseWriter) string {
|
||||
return "без входа"
|
||||
}
|
||||
|
||||
func manualHandbook() []HandbookEntry {
|
||||
raw, err := os.ReadFile(handbookFile)
|
||||
if err != nil {
|
||||
return nil
|
||||
}
|
||||
var hb struct {
|
||||
Participants []HandbookEntry `json:"participants"`
|
||||
}
|
||||
if json.Unmarshal(raw, &hb) != nil {
|
||||
return nil
|
||||
}
|
||||
var out []HandbookEntry
|
||||
for _, p := range hb.Participants {
|
||||
if p.Kind != "place" && p.INN != "" {
|
||||
out = append(out, p)
|
||||
}
|
||||
}
|
||||
return out
|
||||
}
|
||||
|
||||
func registerManual(mux *http.ServeMux, rc *RuntimeConfig, svc *Service) {
|
||||
tpl, err := template.New("layout.html").Funcs(templateFuncs).ParseFS(templatesFS,
|
||||
"web/templates/layout.html", "web/templates/admin_manual.html")
|
||||
@@ -127,12 +105,14 @@ func registerManual(mux *http.ServeMux, rc *RuntimeConfig, svc *Service) {
|
||||
render(w, tpl, d)
|
||||
})
|
||||
|
||||
registerManualDepo(mux, rc)
|
||||
|
||||
mux.HandleFunc("/admin/manual/new", func(w http.ResponseWriter, r *http.Request) {
|
||||
d := base("Новое поручение")
|
||||
d.Mode = "edit"
|
||||
d.O = &ManualOrder{Status: "draft", DocType: "21", SettlePlace: "nrd", PaperDate: time.Now().Format("2006-01-02"),
|
||||
ReceivedVia: "лично в офисе", Securities: []ManualSec{{}}}
|
||||
d.Handbook = manualHandbook()
|
||||
d.Handbook = handbookParticipants()
|
||||
render(w, tpl, d)
|
||||
})
|
||||
|
||||
@@ -220,10 +200,13 @@ func registerManual(mux *http.ServeMux, rc *RuntimeConfig, svc *Service) {
|
||||
d.Mode = "print"
|
||||
}
|
||||
if o.Status == "draft" {
|
||||
d.Handbook = manualHandbook()
|
||||
d.Handbook = handbookParticipants()
|
||||
d.Problems = manualDataProblems(o)
|
||||
d.Blockers = manualSendBlockers(rc, o)
|
||||
d.DepoStale = o.Depo != nil && o.Depo.Hash != o.dataHash()
|
||||
if len(o.Securities) == 0 { // форма показывает строку бумаги всегда
|
||||
o.Securities = []ManualSec{{}}
|
||||
}
|
||||
}
|
||||
d.Progress = manualProgressFor(r.Context(), svc, o)
|
||||
d.Auto = rc.Snapshot().M2MAuto.Enabled
|
||||
@@ -366,7 +349,7 @@ func manualFromForm(r *http.Request) *ManualOrder {
|
||||
if o.RecvINN != "" {
|
||||
o.RecvCode = handbookCodeByINN(o.RecvINN)
|
||||
if o.RecvName == "" {
|
||||
for _, p := range manualHandbook() {
|
||||
for _, p := range handbookParticipants() {
|
||||
if p.INN == o.RecvINN && (o.RecvCode == "" || p.Code == o.RecvCode) {
|
||||
o.RecvName = p.Name
|
||||
break
|
||||
|
||||
Reference in New Issue
Block a user