edit
This commit is contained in:
656
XLAB2/PsvModels.cs
Normal file
656
XLAB2/PsvModels.cs
Normal file
@@ -0,0 +1,656 @@
|
||||
using System;
|
||||
|
||||
namespace XLAB2
|
||||
{
|
||||
public sealed class GroupOption
|
||||
{
|
||||
public string Key { get; set; }
|
||||
|
||||
public string Title { get; set; }
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
return Title ?? string.Empty;
|
||||
}
|
||||
}
|
||||
|
||||
public sealed class CustomerReference
|
||||
{
|
||||
public int CustomerId { get; set; }
|
||||
|
||||
public string CustomerName { get; set; }
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
return CustomerName ?? string.Empty;
|
||||
}
|
||||
}
|
||||
|
||||
public sealed class PsvDocumentSummary : ObservableObject
|
||||
{
|
||||
private DateTime? _acceptedOn;
|
||||
private string _customerName;
|
||||
private int? _customerId;
|
||||
private string _departmentName;
|
||||
private string _documentKey;
|
||||
private string _documentNumber;
|
||||
private int _failedCount;
|
||||
private bool _isDraft;
|
||||
private int _issuedCount;
|
||||
private DateTime? _issuedOn;
|
||||
private int _itemCount;
|
||||
private int _passedCount;
|
||||
|
||||
public DateTime? AcceptedOn
|
||||
{
|
||||
get { return _acceptedOn; }
|
||||
set
|
||||
{
|
||||
if (SetProperty(ref _acceptedOn, value))
|
||||
{
|
||||
OnPropertyChanged("AcceptedMonthGroup");
|
||||
RaiseOpenDocumentTimelinePropertiesChanged();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public string AcceptedMonthGroup
|
||||
{
|
||||
get { return AcceptedOn.HasValue ? AcceptedOn.Value.ToString("yyyy-MM") : "Без даты"; }
|
||||
}
|
||||
|
||||
public string CustomerName
|
||||
{
|
||||
get { return _customerName; }
|
||||
set { SetProperty(ref _customerName, value); }
|
||||
}
|
||||
|
||||
public int? CustomerId
|
||||
{
|
||||
get { return _customerId; }
|
||||
set { SetProperty(ref _customerId, value); }
|
||||
}
|
||||
|
||||
public string DepartmentName
|
||||
{
|
||||
get { return _departmentName; }
|
||||
set { SetProperty(ref _departmentName, value); }
|
||||
}
|
||||
|
||||
public string DocumentKey
|
||||
{
|
||||
get { return _documentKey; }
|
||||
set { SetProperty(ref _documentKey, value); }
|
||||
}
|
||||
|
||||
public string DocumentNumber
|
||||
{
|
||||
get { return _documentNumber; }
|
||||
set { SetProperty(ref _documentNumber, value); }
|
||||
}
|
||||
|
||||
public int FailedCount
|
||||
{
|
||||
get { return _failedCount; }
|
||||
set { SetProperty(ref _failedCount, value); }
|
||||
}
|
||||
|
||||
public bool IsDraft
|
||||
{
|
||||
get { return _isDraft; }
|
||||
set { SetProperty(ref _isDraft, value); }
|
||||
}
|
||||
|
||||
public int IssuedCount
|
||||
{
|
||||
get { return _issuedCount; }
|
||||
set { SetProperty(ref _issuedCount, value); }
|
||||
}
|
||||
|
||||
public DateTime? IssuedOn
|
||||
{
|
||||
get { return _issuedOn; }
|
||||
set
|
||||
{
|
||||
if (SetProperty(ref _issuedOn, value))
|
||||
{
|
||||
RaiseOpenDocumentTimelinePropertiesChanged();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public int ItemCount
|
||||
{
|
||||
get { return _itemCount; }
|
||||
set { SetProperty(ref _itemCount, value); }
|
||||
}
|
||||
|
||||
public int PassedCount
|
||||
{
|
||||
get { return _passedCount; }
|
||||
set { SetProperty(ref _passedCount, value); }
|
||||
}
|
||||
|
||||
public DateTime? DueOn
|
||||
{
|
||||
get { return AcceptedOn.HasValue ? AcceptedOn.Value.Date.AddDays(30) : (DateTime?)null; }
|
||||
}
|
||||
|
||||
public string TimelineDisplay
|
||||
{
|
||||
get
|
||||
{
|
||||
if (IssuedOn.HasValue)
|
||||
{
|
||||
return string.Format("Выдача: {0:d}", IssuedOn.Value);
|
||||
}
|
||||
|
||||
return DueOn.HasValue
|
||||
? string.Format("Срок: {0:d}", DueOn.Value)
|
||||
: string.Empty;
|
||||
}
|
||||
}
|
||||
|
||||
public bool IsOpenDocumentOverdue
|
||||
{
|
||||
get
|
||||
{
|
||||
return !IssuedOn.HasValue
|
||||
&& DueOn.HasValue
|
||||
&& DateTime.Today.Date >= DueOn.Value.Date;
|
||||
}
|
||||
}
|
||||
|
||||
public bool IsOpenDocumentAtTwentyDays
|
||||
{
|
||||
get
|
||||
{
|
||||
return !IssuedOn.HasValue
|
||||
&& AcceptedOn.HasValue
|
||||
&& !IsOpenDocumentOverdue
|
||||
&& (DateTime.Today.Date - AcceptedOn.Value.Date).TotalDays >= 20;
|
||||
}
|
||||
}
|
||||
|
||||
public bool IsOpenDocumentAtTenDays
|
||||
{
|
||||
get
|
||||
{
|
||||
return !IssuedOn.HasValue
|
||||
&& AcceptedOn.HasValue
|
||||
&& !IsOpenDocumentOverdue
|
||||
&& !IsOpenDocumentAtTwentyDays
|
||||
&& (DateTime.Today.Date - AcceptedOn.Value.Date).TotalDays >= 10;
|
||||
}
|
||||
}
|
||||
|
||||
private void RaiseOpenDocumentTimelinePropertiesChanged()
|
||||
{
|
||||
OnPropertyChanged("DueOn");
|
||||
OnPropertyChanged("TimelineDisplay");
|
||||
OnPropertyChanged("IsOpenDocumentOverdue");
|
||||
OnPropertyChanged("IsOpenDocumentAtTwentyDays");
|
||||
OnPropertyChanged("IsOpenDocumentAtTenDays");
|
||||
}
|
||||
}
|
||||
|
||||
public sealed class PsvDocumentLine : ObservableObject
|
||||
{
|
||||
private bool _isBatchSelected;
|
||||
|
||||
public int CardId { get; set; }
|
||||
|
||||
public int InstrumentId { get; set; }
|
||||
|
||||
public int TypeSizeId { get; set; }
|
||||
|
||||
public string SerialNumber { get; set; }
|
||||
|
||||
public string InventoryNumber { get; set; }
|
||||
|
||||
public string CustomerName { get; set; }
|
||||
|
||||
public string InstrumentType { get; set; }
|
||||
|
||||
public string InstrumentName { get; set; }
|
||||
|
||||
public string MeasurementArea { get; set; }
|
||||
|
||||
public string RangeText { get; set; }
|
||||
|
||||
public string RegistryNumber { get; set; }
|
||||
|
||||
public string AccuracyText { get; set; }
|
||||
|
||||
public string VerificationType { get; set; }
|
||||
|
||||
public int PeriodMonths { get; set; }
|
||||
|
||||
public DateTime? AcceptedOn { get; set; }
|
||||
|
||||
public DateTime? IssuedOn { get; set; }
|
||||
|
||||
public bool? IsPassed { get; set; }
|
||||
|
||||
public DateTime? VerificationPerformedOn { get; set; }
|
||||
|
||||
public int? VerifierId { get; set; }
|
||||
|
||||
public string VerifierName { get; set; }
|
||||
|
||||
public string StickerNumber { get; set; }
|
||||
|
||||
public int? VerificationDocumentFormId { get; set; }
|
||||
|
||||
public int? VerificationDocumentLinkTypeId { get; set; }
|
||||
|
||||
public string VerificationDocumentNumber { get; set; }
|
||||
|
||||
public DateTime? VerificationDocumentDate { get; set; }
|
||||
|
||||
public string RejectionReason { get; set; }
|
||||
|
||||
public string Notes { get; set; }
|
||||
|
||||
public bool IsPendingInsert { get; set; }
|
||||
|
||||
public bool IsBatchSelected
|
||||
{
|
||||
get { return _isBatchSelected; }
|
||||
set { SetProperty(ref _isBatchSelected, value); }
|
||||
}
|
||||
|
||||
public string DuplicateKey
|
||||
{
|
||||
get
|
||||
{
|
||||
return BuildDuplicateKey(InstrumentType, RangeText, RegistryNumber, SerialNumber);
|
||||
}
|
||||
}
|
||||
|
||||
public string OpenDocumentConflictKey
|
||||
{
|
||||
get
|
||||
{
|
||||
return BuildOpenDocumentConflictKey(TypeSizeId, SerialNumber);
|
||||
}
|
||||
}
|
||||
|
||||
public string ResultText
|
||||
{
|
||||
get
|
||||
{
|
||||
if (!IsPassed.HasValue)
|
||||
{
|
||||
return string.Empty;
|
||||
}
|
||||
|
||||
return IsPassed.Value ? "Годен" : "Не годен";
|
||||
}
|
||||
}
|
||||
|
||||
public string VerificationDateDisplay
|
||||
{
|
||||
get
|
||||
{
|
||||
var verificationDate = VerificationPerformedOn ?? VerificationDocumentDate;
|
||||
return verificationDate.HasValue ? verificationDate.Value.ToString("d") : string.Empty;
|
||||
}
|
||||
}
|
||||
|
||||
public string VerificationDocumentDisplay
|
||||
{
|
||||
get
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(VerificationDocumentNumber))
|
||||
{
|
||||
return VerificationDocumentDate.HasValue ? VerificationDocumentDate.Value.ToString("d") : string.Empty;
|
||||
}
|
||||
|
||||
if (!VerificationDocumentDate.HasValue)
|
||||
{
|
||||
return VerificationDocumentNumber;
|
||||
}
|
||||
|
||||
return string.Format("{0} от {1:d}", VerificationDocumentNumber, VerificationDocumentDate.Value);
|
||||
}
|
||||
}
|
||||
|
||||
public static string BuildDuplicateKey(string instrumentType, string rangeText, string registryNumber, string serialNumber)
|
||||
{
|
||||
return string.Join("|",
|
||||
NormalizeKeyPart(instrumentType),
|
||||
NormalizeKeyPart(rangeText),
|
||||
NormalizeKeyPart(registryNumber),
|
||||
NormalizeKeyPart(serialNumber));
|
||||
}
|
||||
|
||||
public static string BuildOpenDocumentConflictKey(int typeSizeId, string serialNumber)
|
||||
{
|
||||
return string.Format("{0}|{1}", typeSizeId, NormalizeKeyPart(serialNumber));
|
||||
}
|
||||
|
||||
private static string NormalizeKeyPart(string value)
|
||||
{
|
||||
return string.IsNullOrWhiteSpace(value) ? string.Empty : value.Trim().ToUpperInvariant();
|
||||
}
|
||||
}
|
||||
|
||||
public sealed class PsvDocumentGroupSummary : ObservableObject
|
||||
{
|
||||
private bool _isBatchSelected;
|
||||
|
||||
public string InstrumentType { get; set; }
|
||||
|
||||
public string RangeText { get; set; }
|
||||
|
||||
public string RegistryNumber { get; set; }
|
||||
|
||||
public int InVerificationCount { get; set; }
|
||||
|
||||
public int VerifiedCount { get; set; }
|
||||
|
||||
public int GoodCount { get; set; }
|
||||
|
||||
public int RejectedCount { get; set; }
|
||||
|
||||
public bool IsBatchSelected
|
||||
{
|
||||
get { return _isBatchSelected; }
|
||||
set { SetProperty(ref _isBatchSelected, value); }
|
||||
}
|
||||
|
||||
public bool Matches(PsvDocumentLine line)
|
||||
{
|
||||
return line != null
|
||||
&& string.Equals(InstrumentType ?? string.Empty, line.InstrumentType ?? string.Empty, StringComparison.OrdinalIgnoreCase)
|
||||
&& string.Equals(RangeText ?? string.Empty, line.RangeText ?? string.Empty, StringComparison.OrdinalIgnoreCase)
|
||||
&& string.Equals(RegistryNumber ?? string.Empty, line.RegistryNumber ?? string.Empty, StringComparison.OrdinalIgnoreCase);
|
||||
}
|
||||
}
|
||||
|
||||
public sealed class AvailableInstrumentItem : ObservableObject
|
||||
{
|
||||
private bool _isSelected;
|
||||
|
||||
public string AccuracyText { get; set; }
|
||||
|
||||
public string CustomerName { get; set; }
|
||||
|
||||
public bool HasTemplate { get; set; }
|
||||
|
||||
public int InstrumentId { get; set; }
|
||||
|
||||
public string InstrumentName { get; set; }
|
||||
|
||||
public string InstrumentType { get; set; }
|
||||
|
||||
public string InventoryNumber { get; set; }
|
||||
|
||||
public bool IsSelected
|
||||
{
|
||||
get { return _isSelected; }
|
||||
set { SetProperty(ref _isSelected, value); }
|
||||
}
|
||||
|
||||
public DateTime? LastAcceptedOn { get; set; }
|
||||
|
||||
public string LastDocumentNumber { get; set; }
|
||||
|
||||
public string MeasurementArea { get; set; }
|
||||
|
||||
public string RangeText { get; set; }
|
||||
|
||||
public string RegistryNumber { get; set; }
|
||||
|
||||
public string SerialNumber { get; set; }
|
||||
|
||||
public string TemplateSource { get; set; }
|
||||
|
||||
public int TypeSizeId { get; set; }
|
||||
}
|
||||
|
||||
public sealed class PersonReference
|
||||
{
|
||||
public int PersonId { get; set; }
|
||||
|
||||
public string FullName { get; set; }
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
return FullName ?? string.Empty;
|
||||
}
|
||||
}
|
||||
|
||||
public sealed class SpnmtpDirectoryItem
|
||||
{
|
||||
public int Id { get; set; }
|
||||
|
||||
public string Name { get; set; }
|
||||
|
||||
public string SpecialName { get; set; }
|
||||
}
|
||||
|
||||
internal sealed class SpnmtpDeleteResult
|
||||
{
|
||||
public bool IsDeleted { get; set; }
|
||||
|
||||
public string WarningMessage { get; set; }
|
||||
}
|
||||
|
||||
public sealed class SpoiDirectoryItem
|
||||
{
|
||||
public int Id { get; set; }
|
||||
|
||||
public string Code { get; set; }
|
||||
|
||||
public string Name { get; set; }
|
||||
}
|
||||
|
||||
internal sealed class SpoiDeleteResult
|
||||
{
|
||||
public bool IsDeleted { get; set; }
|
||||
|
||||
public string WarningMessage { get; set; }
|
||||
}
|
||||
|
||||
internal static class SpoiDirectoryRules
|
||||
{
|
||||
public const int CodeMaxLength = 3;
|
||||
|
||||
public const int NameMaxLength = 80;
|
||||
}
|
||||
|
||||
internal static class SpnmtpDirectoryRules
|
||||
{
|
||||
public const int NameMaxLength = 150;
|
||||
|
||||
public const int SpecialNameMaxLength = 150;
|
||||
}
|
||||
|
||||
public sealed class DocumentFormReference
|
||||
{
|
||||
public int DocumentFormId { get; set; }
|
||||
|
||||
public int LinkTypeId { get; set; }
|
||||
|
||||
public string DocumentKindName { get; set; }
|
||||
|
||||
public string DocumentFormName { get; set; }
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
return DocumentFormName ?? string.Empty;
|
||||
}
|
||||
}
|
||||
|
||||
public sealed class DocumentEditorResult
|
||||
{
|
||||
public string DocumentNumber { get; set; }
|
||||
|
||||
public DateTime AcceptedOn { get; set; }
|
||||
|
||||
public DateTime? IssuedOn { get; set; }
|
||||
|
||||
public int? CustomerId { get; set; }
|
||||
}
|
||||
|
||||
public sealed class InstrumentTypeSelectionResult
|
||||
{
|
||||
public AvailableInstrumentItem TypeItem { get; set; }
|
||||
|
||||
public string SerialNumber { get; set; }
|
||||
}
|
||||
|
||||
public sealed class VerificationEditSeed
|
||||
{
|
||||
public DocumentFormReference DocumentForm { get; set; }
|
||||
|
||||
public bool IsPassed { get; set; }
|
||||
|
||||
public string RejectionReason { get; set; }
|
||||
|
||||
public string StickerNumber { get; set; }
|
||||
|
||||
public DateTime? VerificationDate { get; set; }
|
||||
|
||||
public string VerificationDocumentNumber { get; set; }
|
||||
|
||||
public int? VerifierId { get; set; }
|
||||
}
|
||||
|
||||
public sealed class CloneVerificationSeed
|
||||
{
|
||||
public string SourceSerialNumber { get; set; }
|
||||
|
||||
public string VerificationSummary { get; set; }
|
||||
}
|
||||
|
||||
public sealed class VerificationEditResult
|
||||
{
|
||||
public int DocumentFormId { get; set; }
|
||||
|
||||
public int DocumentLinkTypeId { get; set; }
|
||||
|
||||
public bool IsPassed { get; set; }
|
||||
|
||||
public string RejectionReason { get; set; }
|
||||
|
||||
public string StickerNumber { get; set; }
|
||||
|
||||
public DateTime VerificationDate { get; set; }
|
||||
|
||||
public string VerificationDocumentNumber { get; set; }
|
||||
|
||||
public int VerifierId { get; set; }
|
||||
|
||||
public string VerifierName { get; set; }
|
||||
}
|
||||
|
||||
internal sealed class OpenDocumentConflictInfo
|
||||
{
|
||||
public string DocumentNumber { get; set; }
|
||||
|
||||
public int TypeSizeId { get; set; }
|
||||
|
||||
public string SerialNumber { get; set; }
|
||||
|
||||
public string OpenDocumentConflictKey
|
||||
{
|
||||
get
|
||||
{
|
||||
return PsvDocumentLine.BuildOpenDocumentConflictKey(TypeSizeId, SerialNumber);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
internal sealed class DocumentDeleteResult
|
||||
{
|
||||
public int DeletedEkzMkFctvlCount { get; set; }
|
||||
|
||||
public int DeletedEkzMkCount { get; set; }
|
||||
|
||||
public int DeletedDmsCount { get; set; }
|
||||
}
|
||||
|
||||
internal sealed class DocumentGroupDeleteResult
|
||||
{
|
||||
public int DeletedEkzMkFctvlCount { get; set; }
|
||||
|
||||
public int DeletedEkzMkCount { get; set; }
|
||||
|
||||
public int DeletedDmsCount { get; set; }
|
||||
}
|
||||
|
||||
internal sealed class DocumentSaveResult
|
||||
{
|
||||
public string DocumentNumber { get; set; }
|
||||
|
||||
public int InsertedEkzMkCount { get; set; }
|
||||
|
||||
public int SkippedDuplicateCount { get; set; }
|
||||
|
||||
public int SkippedWithoutTemplateCount { get; set; }
|
||||
|
||||
public int UpdatedEkzMkCount { get; set; }
|
||||
}
|
||||
|
||||
internal sealed class EkzMkTemplate
|
||||
{
|
||||
public string Dpznmp { get; set; }
|
||||
|
||||
public string Hrtcmp { get; set; }
|
||||
|
||||
public int? IdEkzetl { get; set; }
|
||||
|
||||
public int IdFrpd { get; set; }
|
||||
|
||||
public int? IdGrsi { get; set; }
|
||||
|
||||
public int? IdKsp { get; set; }
|
||||
|
||||
public int? IdKsprl { get; set; }
|
||||
|
||||
public int? IdPrsn { get; set; }
|
||||
|
||||
public int? IdPrsnpr { get; set; }
|
||||
|
||||
public int? IdPrsnsd { get; set; }
|
||||
|
||||
public int? IdPrsnvd { get; set; }
|
||||
|
||||
public int? IdPrsnvy { get; set; }
|
||||
|
||||
public int? IdSpkmmk { get; set; }
|
||||
|
||||
public int? IdSpmpob { get; set; }
|
||||
|
||||
public int? IdSpmu { get; set; }
|
||||
|
||||
public int? IdSpssmp { get; set; }
|
||||
|
||||
public int? IdSptsmp { get; set; }
|
||||
|
||||
public int? IdSpvdkl { get; set; }
|
||||
|
||||
public int? IdSpvdsbmk { get; set; }
|
||||
|
||||
public int? IdSpvdmc { get; set; }
|
||||
|
||||
public decimal? NcSrmk { get; set; }
|
||||
|
||||
public decimal? Nrvrmmp { get; set; }
|
||||
|
||||
public decimal? Nrvrmndmp { get; set; }
|
||||
|
||||
public int Prmk { get; set; }
|
||||
|
||||
public string SourceDescription { get; set; }
|
||||
|
||||
public decimal? Stmk { get; set; }
|
||||
|
||||
public decimal? Stmkdp { get; set; }
|
||||
|
||||
public decimal? Vrmkfk { get; set; }
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user