DEPO: версионная карточка лица — счета по SELF_ID (поиск в ручном вводе и сверка)
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -111,7 +111,10 @@ func depoResolveParty(ctx context.Context, db *sql.DB, fs FancyMSSQLSettings, se
|
|||||||
num = strings.TrimSpace(num)
|
num = strings.TrimSpace(num)
|
||||||
if ser != "" && num != "" {
|
if ser != "" && num != "" {
|
||||||
e := db.QueryRowContext(ctx,
|
e := db.QueryRowContext(ctx,
|
||||||
`SELECT TOP 1 ID, ISNULL(NAME,''), DATE_BIRTH FROM OD_FACES WHERE REPLACE(ISNULL(DOC_SER,''),' ','')=@p1 AND DOC_NUM=@p2`,
|
// Карточка лица в DEPO версионная: действующая версия (LAST_FLAG=1) даёт ФИО и дату рождения,
|
||||||
|
// а счета и опции привязаны к исходной записи (SELF_ID).
|
||||||
|
`SELECT TOP 1 ISNULL(NULLIF(SELF_ID,0),ID), ISNULL(NAME,''), DATE_BIRTH FROM OD_FACES WHERE REPLACE(ISNULL(DOC_SER,''),' ','')=@p1 AND DOC_NUM=@p2
|
||||||
|
ORDER BY ISNULL(LAST_FLAG,0) DESC, ID DESC`,
|
||||||
sql.Named("p1", ser), sql.Named("p2", num)).Scan(&p.faceID, &p.faceName, &p.birth)
|
sql.Named("p1", ser), sql.Named("p2", num)).Scan(&p.faceID, &p.faceName, &p.birth)
|
||||||
p.faceOK = e == nil
|
p.faceOK = e == nil
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -68,11 +68,12 @@ func manualDepoSearch(rc *RuntimeConfig, q string) ([]manualDepoFace, string) {
|
|||||||
defer cancel()
|
defer cancel()
|
||||||
defer db.Close()
|
defer db.Close()
|
||||||
digits := strings.ReplaceAll(q, " ", "")
|
digits := strings.ReplaceAll(q, " ", "")
|
||||||
rows, err := db.QueryContext(ctx, `SELECT TOP 20 f.ID, ISNULL(f.NAME,''), f.DATE_BIRTH, ISNULL(f.DOC_TYPE,0), ISNULL(f.DOC_SER,''), ISNULL(f.DOC_NUM,''),
|
// Действующая версия карточки (LAST_FLAG=1); счета привязаны к исходной записи (SELF_ID).
|
||||||
|
rows, err := db.QueryContext(ctx, `SELECT TOP 20 ISNULL(NULLIF(f.SELF_ID,0),f.ID), ISNULL(f.NAME,''), f.DATE_BIRTH, ISNULL(f.DOC_TYPE,0), ISNULL(f.DOC_SER,''), ISNULL(f.DOC_NUM,''),
|
||||||
f.DOC_DAT, ISNULL(f.DOC_PLACE,''), ISNULL(f.DOC_CODE,''), ISNULL(f.PHONE,'')
|
f.DOC_DAT, ISNULL(f.DOC_PLACE,''), ISNULL(f.DOC_CODE,''), ISNULL(f.PHONE,'')
|
||||||
FROM OD_FACES f
|
FROM OD_FACES f
|
||||||
WHERE ISNULL(f.LAST_FLAG,1)=1 AND (UPPER(f.NAME) LIKE UPPER(@q) OR f.DOC_NUM=@d OR REPLACE(ISNULL(f.DOC_SER,''),' ','')+f.DOC_NUM=@d)
|
WHERE ISNULL(f.LAST_FLAG,1)=1 AND (UPPER(f.NAME) LIKE UPPER(@q) OR f.DOC_NUM=@d OR REPLACE(ISNULL(f.DOC_SER,''),' ','')+f.DOC_NUM=@d)
|
||||||
AND EXISTS (SELECT 1 FROM OD_CLIENTS c WHERE c.FACE=f.ID AND c.NUMBER LIKE N'ВТНКЦ%' AND c.STATE=0 AND c.D_CLOSE IS NULL)
|
AND EXISTS (SELECT 1 FROM OD_CLIENTS c WHERE c.FACE=ISNULL(NULLIF(f.SELF_ID,0),f.ID) AND c.NUMBER LIKE N'ВТНКЦ%' AND c.STATE=0 AND c.D_CLOSE IS NULL)
|
||||||
ORDER BY f.NAME`, sql.Named("q", q+"%"), sql.Named("d", digits))
|
ORDER BY f.NAME`, sql.Named("q", q+"%"), sql.Named("d", digits))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, "поиск в DEPO: " + err.Error()
|
return nil, "поиск в DEPO: " + err.Error()
|
||||||
|
|||||||
Reference in New Issue
Block a user