Пример #1
0
        private void DocumentHistoryListWindow_Loaded(object sender, RoutedEventArgs e)
        {
            using (var _uow = new Saina.Data.Context.SainaDbContext())
            {
                var auditEntries = _uow.Database.SqlQuery <AuditEntryX>($@"SELECT e.AuditEntryID,
       e.EntitySetName,
       e.EntityTypeName,
       e.State,
       CASE e.State WHEN 0 THEN N'افزودن' WHEN 1 THEN N'حذف'  WHEN 2 THEN N'تغییر' ELSE e.StateName END AS StateName,
       e.CreatedBy,
       e.CreatedDate FROM dbo.AuditEntries e
	INNER JOIN dbo.AuditEntryProperties p ON p.AuditEntryID = e.AuditEntryID
	WHERE e.EntityTypeName='AccDocumentItem' AND p.PropertyName='AccDocumentItemId' 
	AND p.NewValue IN (SELECT AccDocumentItemId FROM Acc.AccDocumentItems WHERE AccDocumentHeaderId={accDocumentHeaderId})"    ).ToList(); //_uow.AuditEntries.Where(X => X.EntityTypeName == "AccDocumentHeader").ToList();
                documentsHistoriesRadGridView.ItemsSource = auditEntries;
            }
        }
Пример #2
0
        private void OnExport()
        {
            if (_accessUtility.HasAccess(61))
            {
                var errorMessage         = "";
                var getDocumentNumbering = _accDocumentHeadersService.GetDocumentNumbering();
                var dateDocument         = _appContextService.CurrentFinancialYear;
                EndNumber = getDocumentNumbering.EndNumber;
                var lastAccDocumentHeaderCode = _accDocumentHeadersService.GetLastAccDocumentHeaderCode(_appContextService.CurrentFinancialYear);
                if (lastAccDocumentHeaderCode > EndNumber)
                {
                    Error("شماره گذاری اسناد به پایان رسیده،لطفا شماره گذاری اسناد را بررسی نمایید");
                }
                else
                {
                    var             startYear       = _currencyExchangesService.GetStartFinancialYear(dateDocument);
                    PersianCalendar persianCalendar = new PersianCalendar();
                    if (DocumentDate == null)
                    {
                        Error("تاریخ تسعیر خالی می باشد");
                    }
                    else if (DocumentDate != null)
                    {
                        var DocDate = persianCalendar.GetYear(DocumentDate.Value);

                        if (DocDate != dateDocument)
                        {
                            Error("تاریخ تسعیر با سال مالی تطابق ندارد");
                        }

                        else
                        {
                            var GetEnd = GetEndExchange(dateDocument);
                            AccDocumentItems = new ObservableCollection <AccDocumentItemGroupedDTO>(_currencyExchangesService.GetGroupedAccDocumentItems(GetEnd.Value.Date, DocumentDate.Value.Date));
                            var c = AccDocumentItems.Count;
                            //   AccDocumentItems = new ObservableCollection<AccDocumentItemGroupedDTO>(await _currencyExchangesService.GetGroupedAccDocumentItemsAsync(StartFinancialYear.Date, DocumentDate.Value.Date));
                            if (!AccDocumentItems.Any())
                            {
                                Error("سندی تا این تاریخ برای تسعیر وجود ندارد");
                            }
                            else
                            {
                                if (AccHeaderDate == null)
                                {
                                    Error("تاریخ سند خالی می باشد");
                                }

                                else if (AccHeaderDate != null)
                                {
                                    var accHeaderDate = persianCalendar.GetYear(AccHeaderDate.Value);

                                    if (accHeaderDate > dateDocument)
                                    {
                                        Error(" تاریخ سند با سال مالی تطابق ندارد");
                                    }

                                    else
                                    {
                                        if (SL == null)
                                        {
                                            errorMessage += $"لطفا معین خود را انتخاب کنید {Environment.NewLine}";

                                            // Error("معین خود را انتخاب کنید.");
                                        }
                                        else if (SL != null)
                                        {
                                            if (SL.DLType1 != 0 && DLs1 == null)
                                            {
                                                errorMessage += $"تفصیل اول نمی تواند خالی باشد {Environment.NewLine}";
                                            }
                                            if (SL.DLType2 != 0 && DLs2 == null)
                                            {
                                                errorMessage += $" تفصیل دوم نمی تواند خالی باشد {Environment.NewLine}";
                                            }
                                            if (Description1 == "" || Description1 == null)
                                            {
                                                errorMessage += $" شرح آرتیکل 1  نباید خالی باشد {Environment.NewLine}";
                                            }
                                        }
                                        if (errorMessage.Length > 0)
                                        {
                                            Error(errorMessage);
                                        }
                                        else
                                        {
                                            var getHeader = _tLDocumentsService.GetAccDocumentHeaders(GetEnd.Value.Date, DocumentDate.Value.Date);
                                            if (getHeader == true)
                                            {
                                                Information?.Invoke("در بین اسناد وضعیت پیش نویس وجود دارد");
                                            }
                                            else
                                            {
                                                IsBusy = true;

                                                AccDocumentHeader = new AccDocumentHeader();
                                                var startNumber = getDocumentNumbering.StartNumber;

                                                if (lastAccDocumentHeaderCode == 0)
                                                {
                                                    lastAccDocumentHeaderCode = startNumber;
                                                }
                                                else
                                                {
                                                    lastAccDocumentHeaderCode++;
                                                }
                                                Enabled  = false;
                                                IsEnable = false;
                                                //lastAccDocumentHeaderCode = _accDocumentHeadersService.GetLastAccDocumentHeaderCode(dateDocument);
                                                var lastDailyNumberCode             = _accDocumentHeadersService.GetLastDailyNumberCode1();
                                                var stringLastAccDocumentHeaderCode = lastAccDocumentHeaderCode.ToString();
                                                var stringlastDailyNumberCode       = lastDailyNumberCode.ToString();
                                                var lastAccDocumentHeadersCode      = stringLastAccDocumentHeaderCode;
                                                var lastDayAccDocumentHeadersCode   = stringLastAccDocumentHeaderCode;
                                                AccDocumentHeader.DailyNumber          = int.Parse($"{stringlastDailyNumberCode}");
                                                AccDocumentHeader.DocumentNumber       = int.Parse($"{lastAccDocumentHeadersCode}");
                                                AccDocumentHeader.ManualDocumentNumber = int.Parse($"{lastAccDocumentHeadersCode}");
                                                AccDocumentHeader.SystemFixNumber      = int.Parse($"{lastAccDocumentHeadersCode}");
                                                AccDocumentHeader.HeaderDescription    = "هدر سند تسعیر";
                                                AccDocumentHeader.DocumentDate         = AccHeaderDate.Value;
                                                AccDocumentHeader.Exporter             = _appContextService.CurrentUser.FriendlyName;
                                                AccDocumentHeader.SystemName           = System.Environment.MachineName;
                                                AccDocumentHeader.Status = StatusEnum.Temporary;

                                                AccDocumentHeader.TypeDocumentId = 6;
                                                AccRow = 1;
                                                string AccRowCode = AccRow.ToString();
                                                //  var editingAccDocumentHeader = Mapper.Map<EditableAccDocumentHeader, AccDocumentHeader>(AccDocumentHeader);
                                                // Mapper.Map( AccDocumentItemListViewModel.AccDocumentItems.ToList(), editingAccDocumentHeader.AccDocumentItems);
                                                if (DocumentDate == null)
                                                {
                                                    DocumentDate = _currencyExchangesService.GetEndFinancialYear1(dateDocument);
                                                }
                                                var accItems = new ObservableCollection <AccDocumentItemGroupedDTO>(_currencyExchangesService.GetGroupedAccDocumentItems(GetEnd.Value.Date, DocumentDate.Value.Date));
                                                var accList  = AccDocumentItems.Select((xd, i) => new AccDocumentItem
                                                {
                                                    AccDocumentHeaderId = AccDocumentHeader.AccDocumentHeaderId,
                                                    CurrencyId          = xd.CurrencyId,
                                                    SLId         = (xd.SLId),
                                                    DL1Id        = (xd.DL1Id),
                                                    DL2Id        = (xd.DL2Id),
                                                    Description1 = Description1,
                                                    Description2 = Description2,
                                                    Credit       = (xd.SumDebit - xd.SumCredit) < 0 ? Math.Abs(xd.SumDebit - xd.SumCredit) : 0,
                                                    Debit        = (xd.SumDebit - xd.SumCredit) > 0 ? Math.Abs(xd.SumDebit - xd.SumCredit) : 0,
                                                    //  HasExchange= xd.HasExchange = true
                                                });
                                                using (var _uow = new Saina.Data.Context.SainaDbContext())
                                                {
                                                    foreach (var item in AccDocumentItems)
                                                    {
                                                        var cmd = $@"UPDATE Acc.AccDocumentItems SET HasExchange=1 WHERE AccDocumentItemId={item.AccDocumentItemId} ";

                                                        _uow.Database.ExecuteSqlCommand(cmd);
                                                    }
                                                }
                                                AccDocumentHeader.AccDocumentItems = new ObservableCollection <AccDocumentItem>(accList.ToList());
                                                _accDocumentHeadersService.AddAccDocumentHeader(AccDocumentHeader);
                                                // _accDocumentItemsService.AddAccDocumentItemsAsync(accList);
                                                var remainRial = accList.Sum(di => di.Debit - di.Credit);

                                                // var remainCurrencies = sumDebitCurrencies - sumCreditCurrencies;
                                                var remainCurrencies = _currencyExchangesService.GetRemainExchanges(GetEnd.Value.Date, DocumentDate.Value.Date);
                                                if (remainCurrencies == null)
                                                {
                                                    remainCurrencies = 0;
                                                }
                                                var lastCurrency = _currencyExchangesService.GetLastCurrencyDocAsync();

                                                var remain = (remainCurrencies) - remainRial;
                                                if (remain > 0)
                                                {
                                                    Debit  = Math.Abs(remain.Value);
                                                    Credit = 0;
                                                }
                                                else
                                                {
                                                    Credit = Math.Abs(remain.Value);
                                                    Debit  = 0;
                                                }
                                                if (remain != 0)
                                                {
                                                    var accItem = new AccDocumentItem {
                                                        AccDocumentHeaderId = AccDocumentHeader.AccDocumentHeaderId, SLId = (SL.SLId), DL1Id = AccDocumentItem.DL1Id, DL2Id = AccDocumentItem.DL2Id, Description1 = Description1, Description2 = Description2, Credit = Credit, Debit = Debit
                                                    };
                                                    _accDocumentItemsService.AddAccDocumentItemAsync(accItem);
                                                }


                                                EndFinancialYear = _currencyExchangesService.GetEndFinancialYear1(_appContextService.CurrentFinancialYear);
                                                GetEnd           = GetEndExchange(dateDocument);

                                                //  AccDocumentItems = new ObservableCollection<AccDocumentItemGroupedDTO>(await _currencyExchangesService.GetGroupedAccDocumentItemsAsync(GetEnd.Value.Date, EndFinancialYear.Date));
                                                AccDocumentItems = new ObservableCollection <AccDocumentItemGroupedDTO>(_currencyExchangesService.GetGroupedAccDocumentItems(GetEnd.Value.Date, EndFinancialYear.Date));
                                                Information("سند با موفقیت ثبت شد");

                                                Enabled  = true;
                                                IsEnable = true;
                                                IsBusy   = false;
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }