123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- using System.Collections.Generic;
- using InABox.Core;
- using InABox.Integration.V6;
- namespace PRSDesktop.Integrations.V6
- {
- public class V6Project : V6Object
- {
- [NullEditor]
- public int ID { get; set; }
-
- [NullEditor]
- public int Revision { get; set; }
-
- [IntegerEditor(Width=80)]
- [Caption("Quote")]
- [EditorSequence(1)]
- public int Number { get; set; }
-
- [TextBoxEditor(Width = 100)]
- [EditorSequence(3)]
- public string ClientID { get; set; }
-
- [TextBoxEditor(Visible = Visible.Hidden)]
- [EditorSequence(4)]
- public string ClientName { get; set; }
-
- [TextBoxEditor]
- [EditorSequence(5)]
- public string Title { get; set; }
-
- [MemoEditor(Visible = Visible.Hidden)]
- [EditorSequence(6)]
- public string Street { get; set; }
-
- [TextBoxEditor]
- [EditorSequence(7)]
- public string City { get; set; }
-
- [TextBoxEditor]
- [EditorSequence(8)]
- public string State { get; set; }
-
- [TextBoxEditor]
- [EditorSequence(9)]
- public string PostCode { get; set; }
-
- [CurrencyEditor]
- [EditorSequence(10)]
- public double SellPrice {get; set; }
- public override void ValidateQuery(string sql, List<string> errors)
- {
- ValidateField(sql, nameof(ID), errors);
- ValidateField(sql, nameof(Revision), errors);
- ValidateField(sql, nameof(Number), errors);
- ValidateField(sql, nameof(ClientID), errors);
- ValidateField(sql, nameof(ClientName), errors);
- ValidateField(sql, nameof(Title), errors);
- ValidateField(sql, nameof(Street), errors);
- ValidateField(sql, nameof(City), errors);
- ValidateField(sql, nameof(State), errors);
- ValidateField(sql, nameof(PostCode), errors);
- ValidateField(sql, nameof(SellPrice), errors);
- }
- public string GetReference()
- {
- var result = $"V6:{Number}";
- return result;
- }
- public static bool ParseReference(string? reference, out int quotenumber)
- {
- quotenumber = 0;
- if (reference?.StartsWith("V6:") != true)
- return false;
- var comps = reference.Split(':');
- if (comps.Length < 2)
- return false;
- if (!int.TryParse(comps[1], out quotenumber))
- return false;
- return true;
- }
-
- public static string SQL = $@"
- select distinct
- q.quote_id as {nameof(ID)},
- q.quote_vers as {nameof(Revision)},
- q.quote_num as {nameof(Number)},
- c.cust_code as {nameof(ClientID)},
- c.cust_name as {nameof(ClientName)},
- coalesce(a.addr_1,'') + coalesce(char(13)+char(10)+a.addr_2,'') as {nameof(Street)},
- a.addr_3 as {nameof(City)},
- a.addr_4 as {nameof(State)},
- a.addr_5 as {nameof(PostCode)},
- q.quote_title as {nameof(Title)},
- q.nett_sell_price + q.nett_sell_prc_lab as {nameof(SellPrice)}
- from quote q
- left outer join customer c on q.cust_id = c.cust_id
- left outer join addr a on q.del_addr_id = a.addr_id
- where
- 1=1
- and
- q.quote_vers = (select max(quote_vers) from quote where quote_id = q.quote_id)
- and
- coalesce(q.quote_num_suff,'') = ''
- order by
- q.quote_num";
-
- }
-
- }
|