コード例 #1
0
        public async Task <AccDocumentHeader> AddAccDocumentHeaderAsync(AccDocumentHeader accDocumentHeader)
        {
            _uow.AccDocumentHeaders.Add(accDocumentHeader);
            await _uow.SaveChangesAsync().ConfigureAwait(false);

            return(accDocumentHeader);
        }
コード例 #2
0
        public async Task <AccDocumentHeader> UpdateAccDocumentHeaderAsync(AccDocumentHeader accDocumentHeader)
        {
            //    CultureInfo us = new CultureInfo("en-us");

            //    var cmd = $"EXEC AccDocumentHeader_Update @AccDocumentHeaderId = {accDocumentHeader.AccDocumentHeaderId}," +
            //$" @DocumentNumber = {accDocumentHeader.DocumentNumber}," +
            // $" @DailyNumber = {accDocumentHeader.DailyNumber}," +
            // $" @SystemFixNumber = {accDocumentHeader.SystemFixNumber}," +
            // $" @DocumentDate = '{accDocumentHeader.DocumentDate.ToString(us)}'," +
            // $" @SystemName = N'{accDocumentHeader.SystemName}'," +
            // $" @Exporter = N'{accDocumentHeader.Exporter}'," +
            // $" @Seconder = N'{accDocumentHeader.Seconder}'," +
            // $" @HeaderDescription = N'{accDocumentHeader.HeaderDescription}'," +
            // $" @ManualDocumentNumber = {accDocumentHeader.ManualDocumentNumber}," +
            // $" @BaseDocument = N'{accDocumentHeader.BaseDocument}'," +
            // $" @Seconder = N'{accDocumentHeader.Seconder}'," +
            // $" @TypeDocumentId = {accDocumentHeader.TypeDocumentId}," +
            // $" @DocumentHistory = N'{accDocumentHeader.DocumentHistory}'," +
            // $" @Attachment = N'{accDocumentHeader.Attachment}'," +
            // $" @Status = {Convert.ToInt16(accDocumentHeader.Status)}";
            //    await _uow.Database.ExecuteSqlCommandAsync(cmd).ConfigureAwait(false);
            _uow.Entry(accDocumentHeader).State = EntityState.Modified;
            await _uow.SaveChangesAsync().ConfigureAwait(false);

            return(accDocumentHeader);
        }
        public int DeleteDocumentHeader(AccDocumentHeader accDocumentHeader)
        {
            _uow.RejectChanges();
            var q = $"delete Acc.AccDocumentItems where AccDocumentHeaderId={accDocumentHeader.AccDocumentHeaderId} delete Acc.AccDocumentHeaders where AccDocumentHeaderId={accDocumentHeader.AccDocumentHeaderId}";

            return(_uow.Database.ExecuteSqlCommand(q));
        }
コード例 #4
0
 public AccDocumentHeader AddAccDocumentHeader(AccDocumentHeader accDocumentHeader)
 {
     using (var context = new Saina.Data.Context.SainaDbContext())
     {
         context.AccDocumentHeaders.Add(accDocumentHeader);
         context.SaveChanges();
     }
     return(accDocumentHeader);
 }
コード例 #5
0
 public async Task <AccDocumentHeader> AddAccDocumentHeaderAsync(AccDocumentHeader accDocumentHeader)
 {
     using (var context = new Saina.Data.Context.SainaDbContext())
     {
         context.AccDocumentHeaders.Add(accDocumentHeader);
         await context.SaveChangesAsync().ConfigureAwait(false);
     }
     return(accDocumentHeader);
 }
 public bool HasHeaderItem(AccDocumentHeader accDocumentHeader)
 {
     if (_uow.AccDocumentItems.Any(x => x.AccDocumentHeaderId == accDocumentHeader.AccDocumentHeaderId))
     {
         return(true);
     }
     else
     {
         return(false);
     }
 }
コード例 #7
0
        public void SetAccDocumentHeader(AccDocumentHeader accDocumentHeader)
        {
            if (EditMode == false)
            {
                AccDocumentItemListViewModel.AccDocumentItems = new ObservableCollection <EditableAccDocumentItem>();
            }

            AccDocumentHeader = Mapper.Map <AccDocumentHeader, EditableAccDocumentHeader>(accDocumentHeader);
            AccDocumentHeader.PropertyChanging   += AccDocumentHeader_PropertyChanging;
            AccDocumentHeader.PropertyChanged    += AccDocumentHeader_PropertyChanged;
            AccDocumentHeader.ValidationDelegate += AccDocumentHeader_ValidationDelegate;

            AccDocumentHeader.ErrorsChanged += RaiseCanExecuteChanged;
        }
コード例 #8
0
        private async void OnDeleteAccDocumentHeader(AccDocumentHeader accDocumentHeader)
        {
            if (Deleting())
            {
                try
                {
                    await _accDocumentHeadersService.DeleteAccDocumentHeaderAsync(accDocumentHeader.AccDocumentHeaderId);

                    AccDocumentHeaders.Remove(accDocumentHeader);
                    Deleted();
                }
                catch (Exception ex)
                {
                    Failed(ex);
                }
            }
        }
コード例 #9
0
 public async Task SaveHeaderAndItemsAsync(AccDocumentHeader accDocumentHeader, IEnumerable <AccDocumentItem> accDocumentItems, IEnumerable <AccDocumentItem> itemsToBeDeleted)
 {
     // TODO: Ensure only Destinations & Lodgings are passed in
     _uow.AccDocumentHeaders.Add(accDocumentHeader);
     if (accDocumentHeader.AccDocumentHeaderId > 0)
     {
         var test = _uow.Entry(accDocumentHeader).State;
         _uow.Entry(accDocumentHeader).State = EntityState.Modified;
     }
     accDocumentItems.ToList().ForEach(accDocumentHeader.AccDocumentItems.Add);
     if (accDocumentHeader.AccDocumentItems?.Any() == true)
     {
         var arr = accDocumentHeader.AccDocumentItems.ToArray();
         for (int i = 0; i < arr.Length; i++)
         {
             if (arr[i].AccDocumentItemId > 0)
             {
                 arr[i].SL  = null;
                 arr[i].DL1 = null;
                 arr[i].DL2 = null;
                 _uow.AccDocumentItems.Attach(arr[i]);
                 _uow.Entry(arr[i]).State = EntityState.Modified;
             }
             else
             {
                 arr[i].SL  = null;
                 arr[i].DL1 = null;
                 arr[i].DL2 = null;
                 _uow.AccDocumentItems.Attach(arr[i]);
                 _uow.Entry(arr[i]).State = EntityState.Added;
             }
             //_uow.AccDocumentItems.AddOrUpdate(x => x.AccDocumentItemId, arr[i]);
         }
     }
     if (itemsToBeDeleted?.Any() == true)
     {
         foreach (var accDocumentItem in itemsToBeDeleted)
         {
             _uow.Entry(accDocumentItem).State = EntityState.Deleted;
         }
     }
     await _uow.SaveChangesAsync();
 }
        private async void OnDraft()
        {
            //_uow.AccDocumentHeaders.
            AccDocumentHeader.Status = StatusEnum.Draft;
            //_accDocumentItemListViewModel.SaveCommand.Execute(null);
            var test0 = _uow.Entry(testAccDocumentHeader).State;

            testAccDocumentHeader = Mapper.Map <EditableAccDocumentHeader, AccDocumentHeader>(_accDocumentHeader, testAccDocumentHeader);
            var test   = _uow.Entry(testAccDocumentHeader).State;
            var test2v = _uow.Entry(testAccDocumentHeader.AccDocumentItems.First()).State;

            testAccDocumentHeader.AccDocumentItems = Mapper.Map(AccDocumentItemListViewModel.AccDocumentItems.ToList(), testAccDocumentHeader.AccDocumentItems);
            ////IEnumerable<AccDocumentItem> itemsToBeDeleted = new List<AccDocumentItem>();
            ////Mapper.Map(AccDocumentItemListViewModel.ItemsToBeDeleted, itemsToBeDeleted);
            var test2 = _uow.Entry(testAccDocumentHeader.AccDocumentItems.First()).State;

            _uow.SaveChanges();

            //await _accDocumentHeadersService.SaveHeaderAndItemsAsync(testAccDocumentHeader, testAccDocumentHeader.AccDocumentItems, itemsToBeDeleted);
        }
        public int HasExport(AccDocumentHeader accDocumentHeader)
        {
            int hasAccResult = 0;
            //var cc = _uow.GLs.FirstOrDefault(x => x.GLId == id)?.TLs;
            //return _uow.GLs.FirstOrDefault(x => x.GLId == id)?.TLs?.Any() == true;



            var result = _uow.AccDocumentHeaders.Any(x => x.AccDocumentHeaderId == accDocumentHeader.AccDocumentHeaderId && x.TypeDocumentId != 2);
            var type   = _uow.AccDocumentHeaders.Where(x => x.TypeDocumentId != 2 && x.AccDocumentHeaderId == accDocumentHeader.AccDocumentHeaderId).Select(x => x.TypeDocumentId).FirstOrDefault();

            if (type != 0)
            {
                if (type == 1)
                {
                    hasAccResult = 1;
                }
                else if (type == 3)
                {
                    hasAccResult = 3;
                }
                else if (type == 4)
                {
                    hasAccResult = 4;
                }
                else if (type == 6)
                {
                    hasAccResult = 6;
                }
            }

            return(hasAccResult);


            //بررسی کن اگه سندی که هیچ آیتم ندارد را حذف کند
        }
コード例 #12
0
 public AttachmentListWindowViewModel()
 {
     AccDocumentHeader = new AccDocumentHeader();
 }
コード例 #13
0
 private void OnEditAccDocumentHeader(AccDocumentHeader accDocumentHeader)
 {
     EditAccDocumentHeaderRequested(accDocumentHeader);
 }
 public void AddAccDocumentHeader(AccDocumentHeader accDocumentHeader)
 {
     _uow.AccDocumentHeaders.Add(accDocumentHeader);
 }
        // public long lastAccDocumentHeaderCode { get; set; }
        private async void OnExport()
        {
            if (_accessUtility.HasAccess(68))
            {
                var errorMessage         = "";
                var getDocumentNumbering = await _accDocumentHeadersService.GetDocumentNumberingAsync();

                var dateDocument = _appContextService.CurrentFinancialYear;
                EndNumber = getDocumentNumbering.EndNumber;
                var lastAccDocumentHeaderCode = _accDocumentHeadersService.GetLastAccDocumentHeaderCode(_appContextService.CurrentFinancialYear);
                if (lastAccDocumentHeaderCode > EndNumber)
                {
                    Error("شماره گذاری اسناد به پایان رسیده،لطفا شماره گذاری اسناد را بررسی نمایید");
                }
                else
                {
                    if (AccDocumentItems1.Count == 0)
                    {
                        Error("سندی برای سود زیانی وجود ندارد");
                    }
                    else
                    {
                        var startYear = _currencyExchangesService.GetStartFinancialYear(dateDocument);

                        PersianCalendar persianCalendar = new PersianCalendar();
                        if (AccHeaderDate == null)
                        {
                            Error("تاریخ سند خالی می باشد");
                        }
                        else
                        {
                            var x = persianCalendar.GetYear(AccHeaderDate.Value);

                            if (x != 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 startNumber = getDocumentNumbering.StartNumber;

                                    if (lastAccDocumentHeaderCode == 0)
                                    {
                                        lastAccDocumentHeaderCode = startNumber;
                                    }
                                    else
                                    {
                                        lastAccDocumentHeaderCode++;
                                    }
                                    AccDocumentHeader = new AccDocumentHeader();
                                    var lastDailyNumberCode = await _accDocumentHeadersService.GetLastDailyNumberCode();

                                    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.Status         = StatusEnum.Temporary;
                                    AccDocumentHeader.DocumentDate   = AccHeaderDate.Value;
                                    AccDocumentHeader.Exporter       = _appContextService.CurrentUser.FriendlyName;
                                    AccDocumentHeader.SystemName     = System.Environment.MachineName;
                                    AccDocumentHeader.TypeDocumentId = 1;
                                    AccRow = 1;
                                    //  string AccRowCode = AccRow.ToString();
                                    //  var editingAccDocumentHeader = Mapper.Map<EditableAccDocumentHeader, AccDocumentHeader>(AccDocumentHeader);
                                    // Mapper.Map( AccDocumentItemListViewModel.AccDocumentItems.ToList(), editingAccDocumentHeader.AccDocumentItems);
                                    await _accDocumentHeadersService.AddAccDocumentHeaderAsync(AccDocumentHeader);

                                    if (DocumentDate == null)
                                    {
                                        DocumentDate = await _currencyExchangesService.GetEndFinancialYear(dateDocument);
                                    }
                                    var accItems = new ObservableCollection <AccDocumentItemGroupedDTO>(_closeProfitLossAccountsService.GetGroupedAccDocumentItems(_appContextService.CurrentFinancialYear));
                                    var accList  = AccDocumentItems1.Select((xd, i) => new AccDocumentItem {
                                        AccDocumentHeaderId = AccDocumentHeader.AccDocumentHeaderId, 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
                                    });
                                    _accDocumentItemsService.AddAccDocumentItemsAsync(accList);
                                    var remainSum = accList.Sum(di => di.Debit - di.Credit);
                                    if (remainSum > 0)
                                    {
                                        Credit = remainSum;
                                        Debit  = 0;
                                    }
                                    else
                                    {
                                        Debit  = Math.Abs(remainSum);
                                        Credit = 0;
                                    }
                                    if (remainSum != 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 = await _currencyExchangesService.GetEndFinancialYear(dateDocument);

                                    AccDocumentItems  = new ObservableCollection <AccDocumentItemGroupedDTO>(_closeProfitLossAccountsService.GetGroupedAccDocumentItems(_appContextService.CurrentFinancialYear));
                                    AccDocumentItems1 = null;
                                    AccDocumentItems1 = new ObservableCollection <AccDocumentItemGroupedDTO>();
                                    //  AccDocumentItems1 = new ObservableCollection<AccDocumentItemGroupedDTO>(AccDocumentItems1.Except(selectedAccDocumentItems.Cast<AccDocumentItemGroupedDTO>()));

                                    Information("سند با موفقیت ثبت شد");
                                }
                            }
                        }
                    }
                }
            }
        }
 public void Load(AccDocumentHeader accDocumentHeader)
 {
     var items = _uow.AccDocumentItems.Where(x => x.AccDocumentHeaderId == accDocumentHeader.AccDocumentHeaderId).ToIList();
 }
コード例 #17
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;
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
コード例 #18
0
        private async void OnAddAccDocument()
        {
            AccDocumentHeader = new AccDocumentHeader();

            var getDocumentNumbering = await _accDocumentHeadersService.GetDocumentNumberingAsync();

            var dateDocument = _appContextService.CurrentFinancialYear;

            StartYear = await _currencyExchangesService.GetStartFinancialYear(dateDocument);

            EndYear = await _currencyExchangesService.GetEndFinancialYear(dateDocument);

            EndNumber = getDocumentNumbering.EndNumber;
            var lastAccDocumentHeaderCode = _accDocumentHeadersService.GetLastAccDocumentHeaderCode(_appContextService.CurrentFinancialYear);

            if (lastAccDocumentHeaderCode > EndNumber)
            {
                Error("شماره گذاری اسناد به پایان رسیده،لطفا شماره گذاری اسناد را بررسی نمایید");
            }
            else
            {
                if (DocumentDate == null)
                {
                    Error(".تاریخ سند خالی می باشد");
                }
                else if (DocumentDate != null)
                {
                    PersianCalendar persianCalendar = new PersianCalendar();

                    var accHeaderDate = persianCalendar.GetYear(DocumentDate.Date);

                    if (accHeaderDate != dateDocument)
                    {
                        Error("تاریخ سند را درست وارد نمایید");
                    }


                    else
                    {
                        var getHeader = _tLDocumentsService.GetAccDocumentHeaders(StartYear.Date, DocumentDate.Date);
                        if (getHeader == true)
                        {
                            Information?.Invoke("در بین اسناد وضعیت پیش نویس وجود دارد");
                        }
                        else
                        {
                            var startNumber = getDocumentNumbering.StartNumber;

                            if (lastAccDocumentHeaderCode == 0)
                            {
                                lastAccDocumentHeaderCode = startNumber;
                            }
                            else
                            {
                                lastAccDocumentHeaderCode++;
                            }

                            var accountDocumentId = getDocumentNumbering.AccountDocumentId;
                            var style             = getDocumentNumbering.StyleId;
                            var countingWayId     = getDocumentNumbering.CountingWayId;

                            //  var lastAccDocumentHeaderCode = _accDocumentHeadersService.GetLastAccDocumentHeaderCode(_appContextService.CurrentFinancialYear);
                            var lastDailyNumberCode = await _accDocumentHeadersService.GetLastDailyNumberCode();

                            if (lastAccDocumentHeaderCode == 0)
                            {
                                lastAccDocumentHeaderCode = startNumber;
                            }
                            else
                            {
                                lastAccDocumentHeaderCode++;
                            }
                            var stringLastAccDocumentHeaderCode = lastAccDocumentHeaderCode.ToString();
                            var stringlastDailyNumberCode       = lastDailyNumberCode.ToString();
                            var lastAccDocumentHeadersCode      = stringLastAccDocumentHeaderCode;
                            var lastDayAccDocumentHeadersCode   = stringLastAccDocumentHeaderCode;
                            if (lastAccDocumentHeaderCode <= EndNumber)
                            {
                                //  var accDocumentHeader = Mapper.Map<EditableAccDocumentHeader, AccDocumentHeader>(AccDocumentHeader);
                                AccDocumentHeader.DailyNumber          = int.Parse($"{stringlastDailyNumberCode}");
                                AccDocumentHeader.DocumentNumber       = int.Parse($"{lastAccDocumentHeadersCode}");
                                AccDocumentHeader.ManualDocumentNumber = int.Parse($"{lastAccDocumentHeadersCode}");
                                AccDocumentHeader.SystemFixNumber      = int.Parse($"{lastAccDocumentHeadersCode}");
                                AccDocumentHeader.SystemName           = Environment.MachineName;
                                AccDocumentHeader.Exporter             = _appContextService.CurrentUser.FriendlyName;
                                AccDocumentHeader.Status       = StatusEnum.Temporary;
                                AccDocumentHeader.DocumentDate = DocumentDate;
                                AccRow = 1;
                                string AccRowCode = AccRow.ToString();
                                if (TypeHeader == 4)
                                {
                                    AccDocumentItems = new ObservableCollection <AccDocumentItemOpenCloseDTO>(await _openingClosingsService.AddCloseAccAsync(StartYear.Date, EndYear.Date));

                                    AccDocumentHeader.HeaderDescription = "بابت سند اختتامیه";
                                    AccDocumentHeader.TypeDocumentId    = 4;
                                    await _accDocumentHeadersService.AddAccDocumentHeaderAsync(AccDocumentHeader);

                                    var accItems = new ObservableCollection <AccDocumentItemOpenCloseDTO>(await _openingClosingsService.AddCloseAccAsync(StartYear.Date, EndYear.Date));
                                    var accList  = AccDocumentItems.Select((xd, i) => new AccDocumentItem
                                    {
                                        AccDocumentHeaderId = AccDocumentHeader.AccDocumentHeaderId,
                                        SLId           = (xd.SLId),
                                        DL1Id          = (xd.DL1Id),
                                        DL2Id          = (xd.DL2Id),
                                        Description1   = "بابت سند اختتامیه",
                                        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,
                                        CurrencyId     = xd.CurrencyId,
                                        CurrencyAmount = xd.SumCurrencyAmount
                                    });
                                    _accDocumentItemsService.AddAccDocumentItemsAsync(accList);
                                }
                                else if (TypeHeader == 3)
                                {
                                    AccDocumentItems = new ObservableCollection <AccDocumentItemOpenCloseDTO>(await _openingClosingsService.AddOpenAccAsync(StartYear.Date, EndYear.Date));
                                    AccDocumentHeader.DocumentDate      = StartYear.AddYears(1);
                                    AccDocumentHeader.HeaderDescription = "بابت سند افتتاحیه";
                                    AccDocumentHeader.TypeDocumentId    = 3;

                                    await _accDocumentHeadersService.AddAccDocumentHeaderAsync(AccDocumentHeader);

                                    var accItems = new ObservableCollection <AccDocumentItemOpenCloseDTO>(await _openingClosingsService.AddOpenAccAsync(StartYear.Date, EndYear.Date));
                                    var accList  = AccDocumentItems.Select((xd, i) => new AccDocumentItem
                                    {
                                        AccDocumentHeaderId = AccDocumentHeader.AccDocumentHeaderId,
                                        SLId           = (xd.SLId),
                                        DL1Id          = (xd.DL1Id),
                                        DL2Id          = (xd.DL2Id),
                                        Description1   = "بابت سند افتتاحیه",
                                        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,
                                        CurrencyId     = xd.CurrencyId,
                                        CurrencyAmount = xd.SumCurrencyAmount
                                    });
                                    _accDocumentItemsService.AddAccDocumentItemsAsync(accList);
                                }
                                // await _accDocumentHeadersService.AddAccDocumentHeaderAsync(AccDocumentHeader);


                                dateDocument = _appContextService.CurrentFinancialYear;

                                var getAcc = await _openingClosingsService.GetAccDocumentItemsAsync(dateDocument);

                                GetAcc  = getAcc.Count;
                                Opening = await _openingClosingsService.GetCloseAccAsync(dateDocument);

                                var newOpening = await _openingClosingsService.GetOpenAccAsync(dateDocument + 1);

                                Closing = await _openingClosingsService.GetCloseProfitLossAccountAsync(dateDocument);

                                if (GetAcc > 0 && Closing == true && Opening == false)
                                {
                                    CheckType = "اختتامیه";
                                    Enable    = true;
                                }

                                else if (GetAcc > 0 && Opening == true && newOpening == false)
                                {
                                    CheckType = "افتتاحیه";
                                    Enable    = true;
                                }

                                else if (GetAcc > 0 && Opening == true && newOpening == true)
                                {
                                    CheckType = "سند افتتاحیه و اختتامیه صادر شده است";
                                    Enable    = false;
                                }
                                else if (GetAcc > 0 && Closing == false)
                                {
                                    CheckType = "سندهای سود و زیانی بسته نشده است";
                                    Enable    = false;
                                }
                                else if (GetAcc == 0)
                                {
                                    CheckType = "هیچ سندی صادر نشده است.";
                                    Enable    = false;
                                }
                                Information("سند با موفقیت ثبت شد");
                            }
                        }
                    }
                }
            }
        }