Exemple #1
0
 /// <summary>
 /// 初始修改信息
 /// </summary>
 /// <param name="dto"></param>
 public void InitModify(BankCardDto dto)
 {
     ModifyBankCardDto = dto;
     BankBranch        = dto.BankBranch;
     CardNo            = dto.CardNo;
     SelectedBankInfo  = Banks.FirstOrDefault(p => p.Name.Equals(dto.Name));
     SelectedState     = States.FirstOrDefault(p => p.State.Equals(dto.Province));
     Citys             = CityData.GetCity(dto.Province);
     SelectedCity      = Citys.FirstOrDefault(p => p.City.Equals(dto.City));
     IsAdded           = false;
 }
        private void ExcuteAddNewCategoryCommand()
        {
            var category = new Categories(NameTypes.Bank);

            category.ShowDialog();
            var dialogueResult = category.DialogResult;

            if (dialogueResult != null && (bool)dialogueResult)
            {
                LoadBanks();
                SelectedBank = Banks.FirstOrDefault(b => b.DisplayName.ToLower().Contains(category.TxtCategoryName.Text.ToLower()));
            }
        }
 private void ExecuteAddNewAccountCommand()
 {
     SelectedFinancialAccount = new FinancialAccountDTO
     {
         WarehouseId = SelectedWarehouse.Id
     };
     if (Banks != null)
     {
         var comercialBank = Banks.FirstOrDefault(b => b.DisplayName.ToLower().Contains("commercial"));
         SelectedBank = comercialBank ?? Banks.FirstOrDefault();
     }
     AddNewAccountCommandVisibility = true;
 }
        private void ExcuteAddNewCategoryCommand()
        {
            var category = new Categories(NameTypes.Bank);

            category.ShowDialog();
            var dialogueResult = category.DialogResult;

            if (dialogueResult == null || !(bool)dialogueResult)
            {
                return;
            }
            LoadBanks();
            SelectedBank = Banks.FirstOrDefault();
        }
Exemple #5
0
        private void SelectBank()
        {
            if (inputModel.Bank == null || String.IsNullOrEmpty(InputModel.Bank.BankName))
            {
                if (Banks.Count > 0)
                {
                    SelectedBank = Banks[0];
                }
                return;
            }

            var exist = Banks.FirstOrDefault(m => m.Name == inputModel.Bank.BankName);

            SelectedBank = exist;
        }
Exemple #6
0
        public void OnDialogOpened(IDialogParameters parameters)
        {
            if (parameters.TryGetValue("ShareInfo", out _issue))
            {
                RaisePropertyChanged(nameof(Issue));
                RaisePropertyChanged(nameof(Banks));

                Title        = $"{Issue.CompanyName} ({Issue.Action})";
                SelectedBank = Banks?.FirstOrDefault();

                Boid          = _client.Me.Demat;
                Branch        = BankDetails.BranchName;
                AccountNumber = BankDetails.AccountNumber;
                var disclaimer = _client.GetPurchaseDisclaimer();

                Disclaimer = disclaimer?.FieldValue;
            }
            else
            {
                RequestClose?.Invoke(new DialogResult(ButtonResult.Abort));
                return;
            }
        }
        void ParseCounterparty(XmlNode node)
        {
            bool         error = false;
            bool         isVodInternalDuplicate = false;
            Counterparty counterparty           = null;
            var          codeAttr = node.Attributes["Код"];

            if (codeAttr == null)
            {
                return;
            }

            var code1c = codeAttr.Value;

            counterparty = VodovozCounterparties.FirstOrDefault(x => x.Code1c == code1c);

            if (counterparty == null)
            {
                ErrorLog("Не загружен", code1c, "", "Не найден контрагент");
                SkipedCounterparty++;
                return;
            }

            var internalNumberAttr = node.Attributes["ВремНомер"];
            int internalNumber     = 0;

            if (internalNumberAttr != null && int.TryParse(internalNumberAttr.Value, out internalNumber))
            {
                //Убираем из словаря внутренний номер для нахождения дубликатов
                int  buffer            = 0;
                bool restoreDictionary = false;
                if (internalNumbers.ContainsKey(counterparty.Id))
                {
                    buffer = internalNumbers[counterparty.Id];
                    internalNumbers.Remove(counterparty.Id);
                    restoreDictionary = true;
                }

                //Нахождение дубликата
                bool internalNumberExists = internalNumbers.ContainsValue(internalNumber);

                //Восстановление словаря
                if (restoreDictionary)
                {
                    internalNumbers.Add(counterparty.Id, buffer);
                }

                //Отметка дубликата для испраления в дальнейшем
                if (internalNumberExists)
                {
                    isVodInternalDuplicate = true;
                    //Записываем номер для того чтобы отобразить его в логе
                    counterparty.VodovozInternalId = internalNumber;
                }
                else
                {
                    if (!internalNumbers.ContainsKey(counterparty.Id))
                    {
                        internalNumbers.Add(counterparty.Id, internalNumber);
                    }
                    counterparty.VodovozInternalId = internalNumber;
                }
            }

            var nameAttr = node.Attributes["Наименование"];

            if (nameAttr != null)
            {
                counterparty.Name = nameAttr.Value;
                string orgType = TryGetOrganizationType(counterparty.Name);
                if (!string.IsNullOrEmpty(orgType))
                {
                    counterparty.TypeOfOwnership = orgType;
                }
            }

            var fullNameAttr = node.Attributes["ОфициальноеНаименование"];

            if (fullNameAttr != null)
            {
                counterparty.FullName = fullNameAttr.Value;
            }

            var innkppAttr = node.Attributes["ИНН"];

            if (innkppAttr != null)
            {
                string innStr = GetINN(innkppAttr.Value);
                if (counterparty.TypeOfOwnership == "ИП" ? Regex.IsMatch(innStr, "^[0-9]{12,12}$") : Regex.IsMatch(innStr, "^[0-9]{10,10}$"))
                {
                    counterparty.INN = innStr;
                }
                else if (!string.IsNullOrEmpty(innStr))
                {
                    ErrorLog("Загружен с ошибками", code1c, "", string.Format("Не корректный ИНН: {0}", innStr));
                    error = true;
                }

                string kppStr = GetKPP(innkppAttr.Value);
                if (Regex.IsMatch(kppStr, "^[0-9]{9,9}$"))
                {
                    counterparty.KPP = kppStr;
                }
                else if (!string.IsNullOrEmpty(kppStr))
                {
                    ErrorLog("Загружен с ошибками", code1c, "", string.Format("Не корректный КПП: {0}", kppStr));
                    error = true;
                }
            }

            var personTypeAttr = node.Attributes["ВидКонтрагента"];

            if (personTypeAttr != null)
            {
                var isJur = personTypeAttr.Value == "ЮрЛица" || personTypeAttr.Value == "СвоиЮрЛица";
                counterparty.PersonType    = isJur ? PersonType.legal : PersonType.natural;
                counterparty.PaymentMethod = isJur ? PaymentType.cashless : PaymentType.cash;
            }

            var addressAttr = node.Attributes["ФактАдрес"];

            if (addressAttr != null)
            {
                counterparty.Address = addressAttr.Value;
            }

            var JurAddressAttr = node.Attributes["ЮрАдрес"];

            if (JurAddressAttr != null)
            {
                counterparty.RawJurAddress = JurAddressAttr.Value;
            }

            var ringupPhoneAttr = node.Attributes["ТелДляОбзвона"];

            if (ringupPhoneAttr != null)
            {
                counterparty.RingUpPhone = ringupPhoneAttr.Value;
            }

            var mailsAttr = node.Attributes["Почта"];

            if (mailsAttr != null)
            {
                var mails = Regex.Matches(mailsAttr.Value.ToLower(), @"[a-z0-9-]{1,30}@[a-z0-9-]{1,65}.[a-z]{1,}");
                for (int i = 0; i < mails.Count; i++)
                {
                    if (!counterparty.Emails.Any(x => x.Address == mails[i].Value))
                    {
                        counterparty.Emails.Add(new Email {
                            Address = mails[i].Value
                        });
                    }
                }
            }
            string comment     = null;
            var    commentAttr = node.Attributes["Комментариий"];

            if (commentAttr != null)
            {
                if (string.IsNullOrEmpty(comment))
                {
                    comment = string.Format("\n{0}", commentAttr.Value);
                }
                else
                {
                    comment += string.Format("\n{0}", commentAttr.Value);
                }
            }

            var phonesAttr = node.Attributes["Телефоны"];

            if (phonesAttr != null)
            {
                if (string.IsNullOrEmpty(comment))
                {
                    comment = string.Format("\n{0}", phonesAttr.Value);
                }
                else
                {
                    comment += string.Format("\n{0}", phonesAttr.Value);
                }
            }

            if (!string.IsNullOrEmpty(comment))
            {
                counterparty.Comment = comment;
            }

            var accountAttr = node.Attributes["НомерСчета"];
            var bikAttr     = node.Attributes["БИК"];

            if (accountAttr != null && bikAttr != null)
            {
                string  accountNumber = accountAttr.Value;
                string  bik           = bikAttr.Value;
                Account account       = counterparty.Accounts.FirstOrDefault(x => x.Number == accountNumber);
                if (account == null)
                {
                    if (bik.Length == 8)
                    {
                        bik = string.Format("0{0}", bik);
                    }
                    if (!Regex.IsMatch(bik, "^[0-9]{9,9}$"))
                    {
                        ErrorLog("Загружен с ошибками", code1c, "", string.Format("Не корректный БИК: {0}", bik));
                        error = true;
                    }
                    if (!Regex.IsMatch(accountNumber, "^[0-9]{20,25}$") && !string.IsNullOrEmpty(accountNumber))
                    {
                        ErrorLog("Загружен с ошибками", code1c, "", string.Format("Не корректный счет: {0}", accountNumber));
                        error = true;
                    }
                    else
                    {
                        Bank bank = Banks.FirstOrDefault(b => b.Bik == bik);
                        if (bank != null)
                        {
                            account = new Account {
                                Number   = accountNumber,
                                Owner    = counterparty,
                                Name     = "Основной",
                                InBank   = bank,
                                Inactive = false
                            };
                            counterparty.Accounts.Add(account);
                            counterparty.DefaultAccount = account;
                        }
                        else
                        {
                            ErrorLog("Загружен с ошибками", code1c, "", string.Format("Для счета : {0} не найден банк БИК: {1}", accountNumber, bik));
                            error = true;
                        }
                    }
                }
            }

            if (error)
            {
                ErrorsCounterparty++;
            }
            else
            {
                SuccessCounterparty++;
            }

            if (isVodInternalDuplicate)
            {
                CounterpatiesInternalDuplicateList.Add(counterparty);
                return;
            }

            CounterpatiesList.Add(counterparty);
        }