edit
This commit is contained in:
@@ -1930,13 +1930,19 @@ ORDER BY names.NMTP, tips.TP, sizeInfo.DPZN, sizeInfo.NNGSRS;";
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!verificationTypeLoaded)
|
||||
var effectiveVerificationTypeId = template.IdSpvdmk;
|
||||
if (!effectiveVerificationTypeId.HasValue || effectiveVerificationTypeId.Value <= 0)
|
||||
{
|
||||
verificationTypeId = LoadVerificationTypeId(connection, transaction);
|
||||
verificationTypeLoaded = true;
|
||||
if (!verificationTypeLoaded)
|
||||
{
|
||||
verificationTypeId = LoadVerificationTypeId(connection, transaction);
|
||||
verificationTypeLoaded = true;
|
||||
}
|
||||
|
||||
effectiveVerificationTypeId = verificationTypeId;
|
||||
}
|
||||
|
||||
var cardId = InsertEkzMk(connection, transaction, verificationTypeId, document, normalizedNumber, instrumentId, template, pendingLine);
|
||||
var cardId = InsertEkzMk(connection, transaction, effectiveVerificationTypeId.Value, document, normalizedNumber, instrumentId, template, pendingLine);
|
||||
if (!string.IsNullOrWhiteSpace(pendingLine.VerificationDocumentNumber))
|
||||
{
|
||||
if (!pendingLine.VerificationDocumentFormId.HasValue || !pendingLine.VerificationDocumentLinkTypeId.HasValue)
|
||||
@@ -2200,6 +2206,7 @@ ORDER BY names.NMTP, tips.TP, sizeInfo.DPZN, sizeInfo.NNGSRS;";
|
||||
private static bool IsPendingLineReadyForSave(PsvDocumentLine line)
|
||||
{
|
||||
return line != null
|
||||
&& line.IsPendingInsert
|
||||
&& (line.InstrumentId > 0
|
||||
|| (line.TypeSizeId > 0 && !string.IsNullOrWhiteSpace(line.SerialNumber)));
|
||||
}
|
||||
@@ -2227,6 +2234,11 @@ ORDER BY names.NMTP, tips.TP, sizeInfo.DPZN, sizeInfo.NNGSRS;";
|
||||
throw new InvalidOperationException("Для новой строки ПСВ не указан заводской номер.");
|
||||
}
|
||||
|
||||
if (serialNumber.Length > EkzDirectoryRules.SerialNumberMaxLength)
|
||||
{
|
||||
throw new InvalidOperationException(string.Format("Заводской номер не должен превышать {0} символов.", EkzDirectoryRules.SerialNumberMaxLength));
|
||||
}
|
||||
|
||||
if (!document.CustomerId.HasValue)
|
||||
{
|
||||
throw new InvalidOperationException("Для добавления прибора по типу должен быть выбран заказчик ПСВ.");
|
||||
@@ -2269,7 +2281,7 @@ SELECT TOP (1) z.IDEKZ
|
||||
FROM dbo.EKZ z
|
||||
WHERE z.IDTPRZ = @TypeSizeId
|
||||
AND z.IDFRPDV = @CustomerId
|
||||
AND z.NNZV = @SerialNumber
|
||||
AND LTRIM(RTRIM(z.NNZV)) = @SerialNumber
|
||||
AND ISNULL(z.IsDeleted, 0) = 0
|
||||
ORDER BY z.IDEKZ DESC;";
|
||||
|
||||
@@ -2278,7 +2290,7 @@ ORDER BY z.IDEKZ DESC;";
|
||||
command.CommandTimeout = SqlServerConnectionFactory.Current.Options.CommandTimeoutSeconds;
|
||||
command.Parameters.Add("@TypeSizeId", SqlDbType.Int).Value = typeSizeId;
|
||||
command.Parameters.Add("@CustomerId", SqlDbType.Int).Value = customerId;
|
||||
command.Parameters.Add("@SerialNumber", SqlDbType.VarChar, 30).Value = serialNumber;
|
||||
command.Parameters.Add("@SerialNumber", SqlDbType.NVarChar, EkzDirectoryRules.SerialNumberMaxLength).Value = serialNumber;
|
||||
|
||||
var result = command.ExecuteScalar();
|
||||
return result == null || result == DBNull.Value ? (int?)null : Convert.ToInt32(result);
|
||||
@@ -2315,7 +2327,7 @@ SELECT CAST(SCOPE_IDENTITY() AS int);";
|
||||
command.Parameters.Add("@TypeSizeId", SqlDbType.Int).Value = typeSizeId;
|
||||
command.Parameters.Add("@CustomerId", SqlDbType.Int).Value = customerId;
|
||||
command.Parameters.Add("@Klsipr", SqlDbType.Int).Value = 1;
|
||||
command.Parameters.Add("@SerialNumber", SqlDbType.VarChar, 30).Value = serialNumber;
|
||||
command.Parameters.Add("@SerialNumber", SqlDbType.NVarChar, EkzDirectoryRules.SerialNumberMaxLength).Value = serialNumber;
|
||||
command.Parameters.Add("@GuidEkz", SqlDbType.UniqueIdentifier).Value = Guid.NewGuid();
|
||||
return Convert.ToInt32(command.ExecuteScalar());
|
||||
}
|
||||
@@ -2419,7 +2431,7 @@ ORDER BY m.NNZVPV;";
|
||||
command.CommandTimeout = SqlServerConnectionFactory.Current.Options.CommandTimeoutSeconds;
|
||||
command.Parameters.Add("@CustomerId", SqlDbType.Int).Value = customerId;
|
||||
command.Parameters.Add("@TypeSizeId", SqlDbType.Int).Value = candidateLine.TypeSizeId;
|
||||
command.Parameters.Add("@SerialNumber", SqlDbType.VarChar, 30).Value = candidateLine.SerialNumber.Trim();
|
||||
command.Parameters.Add("@SerialNumber", SqlDbType.NVarChar, EkzDirectoryRules.SerialNumberMaxLength).Value = candidateLine.SerialNumber.Trim();
|
||||
command.Parameters.Add("@CurrentDocumentNumber", SqlDbType.NVarChar, 60).Value = currentDocumentNumber ?? string.Empty;
|
||||
|
||||
using (var reader = command.ExecuteReader())
|
||||
@@ -2521,7 +2533,7 @@ ORDER BY m.NNZVPV;";
|
||||
command.CommandTimeout = SqlServerConnectionFactory.Current.Options.CommandTimeoutSeconds;
|
||||
command.Parameters.Add("@CustomerId", SqlDbType.Int).Value = customerId;
|
||||
command.Parameters.Add("@TypeSizeId", SqlDbType.Int).Value = candidateLine.TypeSizeId;
|
||||
command.Parameters.Add("@SerialNumber", SqlDbType.VarChar, 30).Value = candidateLine.SerialNumber.Trim();
|
||||
command.Parameters.Add("@SerialNumber", SqlDbType.NVarChar, EkzDirectoryRules.SerialNumberMaxLength).Value = candidateLine.SerialNumber.Trim();
|
||||
command.Parameters.Add("@CurrentDocumentNumber", SqlDbType.NVarChar, 60).Value = currentDocumentNumber ?? string.Empty;
|
||||
},
|
||||
cancellationToken).ConfigureAwait(false);
|
||||
@@ -3688,8 +3700,17 @@ WHERE z.IDEKZ = @InstrumentId;";
|
||||
const string sql = @"
|
||||
SELECT TOP (1) IDSPVDMK
|
||||
FROM dbo.SPVDMK
|
||||
WHERE OBVDMK = N'П' OR NMVDMK = N'Поверка'
|
||||
ORDER BY CASE WHEN OBVDMK = N'Рџ' THEN 0 ELSE 1 END, IDSPVDMK;";
|
||||
WHERE UPPER(LTRIM(RTRIM(ISNULL(OBVDMK, N'')))) = N'П'
|
||||
OR UPPER(LTRIM(RTRIM(ISNULL(NMVDMK, N'')))) = N'ПОВЕРКА'
|
||||
OR UPPER(LTRIM(RTRIM(ISNULL(NMVDMK, N'')))) LIKE N'ПОВЕРК%'
|
||||
OR UPPER(LTRIM(RTRIM(ISNULL(NMVDMK, N'')))) LIKE N'%ПОВЕРК%'
|
||||
ORDER BY CASE
|
||||
WHEN UPPER(LTRIM(RTRIM(ISNULL(OBVDMK, N'')))) = N'П' THEN 0
|
||||
WHEN UPPER(LTRIM(RTRIM(ISNULL(NMVDMK, N'')))) = N'ПОВЕРКА' THEN 1
|
||||
WHEN UPPER(LTRIM(RTRIM(ISNULL(NMVDMK, N'')))) LIKE N'ПОВЕРК%' THEN 2
|
||||
ELSE 3
|
||||
END,
|
||||
IDSPVDMK;";
|
||||
|
||||
using (var command = new SqlCommand(sql, connection, transaction))
|
||||
{
|
||||
@@ -3719,6 +3740,7 @@ WITH TemplateCandidates AS
|
||||
m.IDSPMU,
|
||||
m.IDGRSI,
|
||||
m.IDKSPRL,
|
||||
m.IDSPVDMK,
|
||||
m.IDSPVDMC,
|
||||
m.IDFRPD,
|
||||
m.IDSPMPOB,
|
||||
@@ -3757,6 +3779,7 @@ WITH TemplateCandidates AS
|
||||
m.IDSPMU,
|
||||
m.IDGRSI,
|
||||
m.IDKSPRL,
|
||||
m.IDSPVDMK,
|
||||
m.IDSPVDMC,
|
||||
m.IDFRPD,
|
||||
m.IDSPMPOB,
|
||||
@@ -3805,6 +3828,7 @@ ORDER BY Priority;";
|
||||
IdSpmu = GetNullableInt32(reader, "IDSPMU"),
|
||||
IdGrsi = GetNullableInt32(reader, "IDGRSI"),
|
||||
IdKsprl = GetNullableInt32(reader, "IDKSPRL"),
|
||||
IdSpvdmk = GetNullableInt32(reader, "IDSPVDMK"),
|
||||
IdSpvdmc = GetNullableInt32(reader, "IDSPVDMC"),
|
||||
IdFrpd = GetInt32(reader, "IDFRPD"),
|
||||
IdSpmpob = GetNullableInt32(reader, "IDSPMPOB"),
|
||||
@@ -3906,6 +3930,7 @@ WHERE z.IDEKZ = @InstrumentId
|
||||
IdSpmu = null,
|
||||
IdGrsi = GetNullableInt32(reader, "IDGRSI"),
|
||||
IdKsprl = null,
|
||||
IdSpvdmk = null,
|
||||
IdSpvdmc = GetNullableInt32(reader, "IDSPVDMC"),
|
||||
IdFrpd = GetInt32(reader, "IDFRPD"),
|
||||
IdSpmpob = null,
|
||||
|
||||
Reference in New Issue
Block a user