private bool ApplySettings()
        {
            bool result = false;

            if (null != InvSettings)
            {
                UInt32 vatRate;
                UInt32 paymentDays;

                string   vatRateStr     = TextBoxVATRate.Text;
                string   paymentDaysStr = TextBoxPaymentDays.Text;
                DateTime issueDate      = DatePickerIssueDate.SelectedDate ?? DateTime.Now;

                ParseFailReason reason = InputParser.ParseInvoiceSettings
                                             (vatRateStr, out vatRate, paymentDaysStr, out paymentDays);

                if (ParseFailReason.None != reason)
                {
                    GUIInfoHelper.DisplayInputParseError(reason);
                }
                else
                {
                    InvSettings.DaysForPayment = paymentDays;
                    InvSettings.VATRate        = vatRate;
                    InvSettings.IssueDate      = issueDate;
                    result = true;
                }
            }

            return(result);
        }
Exemplo n.º 2
0
        public static void DisplayInputParseError(ParseFailReason reason)
        {
            const string defaultErrorMsg       = "Nieznany błąd";
            const string emptyInputMsg         = "Wypełnij wszystkie wymagane pola";
            const string wrongInputMsg         = "Nieprawidłowe dane wejściowe";
            const string overflowInputMsg      = "Została wprowadzona zbyt duża warotść";
            const string invalidInputLenghtMsg = "Wprowadzona wartość ma nieprawidłową długość";

            string errorMessage = defaultErrorMsg;

            switch (reason)
            {
            case ParseFailReason.EmptyInput:
                errorMessage = emptyInputMsg;
                break;

            case ParseFailReason.WrongInput:
                errorMessage = wrongInputMsg;
                break;

            case ParseFailReason.InputOverflow:
                errorMessage = overflowInputMsg;
                break;

            case ParseFailReason.InvalidInputLenght:
                errorMessage = invalidInputLenghtMsg;
                break;
            }

            MessageBox.Show(errorMessage, "Błąd", MessageBoxButton.OK, MessageBoxImage.Information);
        }
Exemplo n.º 3
0
        public static ParseFailReason ParseInvoiceSettings(string VATRate, out UInt32 oVatRate,
                                                           string paymentDays, out UInt32 oPaymentDays)
        {
            ParseFailReason reason = ParseFailReason.None;

            oVatRate = oPaymentDays = 0;

            if (null != VATRate && null != paymentDays)
            {
                if (0 == VATRate.Length || 0 == paymentDays.Length)
                {
                    reason = ParseFailReason.EmptyInput;
                }
                else
                {
                    try
                    {
                        oVatRate     = UInt32.Parse(VATRate);
                        oPaymentDays = UInt32.Parse(paymentDays);
                    }
                    catch (Exception ex)
                    {
                        reason = SetFailReason(ex);
                    }
                }
            }
            else
            {
                reason = ParseFailReason.NullArgument;
            }

            return(reason);
        }
        /// <summary>
        /// Generates company settings class instance from input provided by user.
        /// Displays error if input provided by user is incorrect
        /// </summary>
        /// <returns>True if user passed correct values and CompanySettings class instance was created.
        /// False otherwise</returns>
        private Company GenerateSettings()
        {
            Company newSettings = null;

            UInt64 REGON;
            UInt64 NIP;
            UInt16 houseNumber;
            UInt32 postalCode;

            //Postal code if combination of two text boxes values. Spaces should be removed in case user inserted some
            string postalCodeStr = (TextBoxAddressPostCode1.Text + TextBoxAddressPostCode2.Text).Replace(" ", string.Empty);

            ParseFailReason reason = InputParser.ParseCompanySettigns(TextBoxCompanyName.Text, TextBoxNIP.Text, out NIP,
                                                                      TextBoxREGON.Text, out REGON, TextBoxAddressStreet.Text, TextBoxAddressHouseNumber.Text, out houseNumber,
                                                                      TextBoxAddressCity.Text, postalCodeStr, out postalCode);

            if (ParseFailReason.None == reason)
            {
                newSettings = new Company(TextBoxCompanyName.Text, NIP, REGON, TextBoxAddressStreet.Text,
                                          houseNumber, TextBoxAddressCity.Text, postalCode, TextBoxBankAccountNumber.Text);
            }
            else
            {
                GUIInfoHelper.DisplayInputParseError(reason);
            }

            return(newSettings);
        }
Exemplo n.º 5
0
        private static ParseFailReason SetFailReason(Exception ex)
        {
            ParseFailReason reason = ParseFailReason.None;

            if (null != ex)
            {
                if (ex is FormatException)
                {
                    reason = ParseFailReason.WrongInput;
                }
                else if (ex is OverflowException)
                {
                    reason = ParseFailReason.InputOverflow;
                }
                else
                {
                    reason = ParseFailReason.Unkown;
                }
            }
            else
            {
                reason = ParseFailReason.Unkown;
            }

            return(reason);
        }
Exemplo n.º 6
0
        public static ParseFailReason ParseInvoice(string paymentDays, out UInt32 oPaymentDays)
        {
            ParseFailReason reason = ParseFailReason.None;

            oPaymentDays = 0;

            if (null == paymentDays)
            {
                reason = ParseFailReason.NullArgument;
            }
            else if (0 == paymentDays.Length)
            {
                reason = ParseFailReason.EmptyInput;
            }
            else
            {
                try
                {
                    UInt32.Parse(paymentDays);
                }
                catch (Exception ex)
                {
                    SetFailReason(ex);
                }
            }

            return(reason);
        }
Exemplo n.º 7
0
        private void BeginAddItemToGridView()
        {
            UInt32 vatRate    = 0;
            double nettoPrice = 0.0f;
            UInt32 quantity   = 0;

            ParseFailReason parseFailReason = InputParser.ParseGridInvoiceItem
                                                  (TextBoxItemName.Text, TextBoxVATRate.Text, out vatRate, TextBoxNettoPrice.Text,
                                                  out nettoPrice, TextBoxQuantity.Text, out quantity);

            if (ParseFailReason.None == parseFailReason)
            {
                AddInvoiceItemToGridView(TextBoxItemName.Text, TextBoxComment.Text, nettoPrice, vatRate, quantity);
                DataGridInvoiceItems.Items.Refresh();
            }
            else
            {
                GUIInfoHelper.DisplayInputParseError(parseFailReason);
            }
        }
Exemplo n.º 8
0
        public static ParseFailReason ParseCompanySettigns(string companyName, string NIP, out UInt64 oNIP,
                                                           string REGON, out UInt64 oREGON, string street, string houseNumber, out UInt16 oHouseNumber
                                                           , string city, string postalCode, out UInt32 oPostalCode)
        {
            ParseFailReason reason = ParseFailReason.None;

            oNIP = oREGON = oPostalCode = oHouseNumber = 0;

            if (null == companyName || null == NIP && null == REGON && null == street ||
                null == houseNumber || null == city || null == postalCode)
            {
                reason = ParseFailReason.NullArgument;
            }
            else if (0 == companyName.Length || 0 == NIP.Length || 0 == REGON.Length || 0 == street.Length ||
                     0 == houseNumber.Length || 0 == city.Length || 0 == postalCode.Length)
            {
                reason = ParseFailReason.EmptyInput;
            }
            else if (PostalCodeInputLenght != postalCode.Length)
            {
                reason = ParseFailReason.InvalidInputLenght;
            }
            else
            {
                try
                {
                    oNIP         = UInt64.Parse(NIP);
                    oREGON       = UInt64.Parse(REGON);
                    oHouseNumber = UInt16.Parse(houseNumber);
                    oPostalCode  = UInt32.Parse(postalCode);
                }
                catch (Exception ex)
                {
                    SetFailReason(ex);
                }
            }

            return(reason);
        }
Exemplo n.º 9
0
        /// <summary>
        /// Checks whether all parameters are correct to create invoice item
        /// </summary>
        /// <returns>Exception if</returns>
        public static ParseFailReason ParseGridInvoiceItem(string itemName, string vatRate, out UInt32 oVatRate,
                                                           string nettoPrice, out double oNettoPrice, string quantity, out UInt32 oQuantity)
        {
            ParseFailReason reason = ParseFailReason.None;

            oVatRate    = 0;
            oQuantity   = 0;
            oNettoPrice = 0.0d;

            if (null != itemName && null != vatRate && null != nettoPrice)
            {
                if (0 == itemName.Length || 0 == vatRate.Length || 0 == nettoPrice.Length || 0 == quantity.Length)
                {
                    reason = ParseFailReason.EmptyInput;
                }
                else
                {
                    try
                    {
                        oVatRate    = UInt32.Parse(vatRate);
                        oQuantity   = UInt32.Parse(quantity);
                        oNettoPrice = double.Parse(nettoPrice);
                    }
                    catch (Exception ex)
                    {
                        reason = SetFailReason(ex);
                    }
                }
            }
            else
            {
                reason = ParseFailReason.NullArgument;
            }

            return(reason);
        }
 internal ParseException(ParseFailReason failReason, string message) : base(message)
 {
     FailReason = failReason;
 }