public async Task <AccDocumentHeader> AddAccDocumentHeaderAsync(AccDocumentHeader accDocumentHeader) { _uow.AccDocumentHeaders.Add(accDocumentHeader); await _uow.SaveChangesAsync().ConfigureAwait(false); return(accDocumentHeader); }
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)); }
public AccDocumentHeader AddAccDocumentHeader(AccDocumentHeader accDocumentHeader) { using (var context = new Saina.Data.Context.SainaDbContext()) { context.AccDocumentHeaders.Add(accDocumentHeader); context.SaveChanges(); } return(accDocumentHeader); }
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); } }
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; }
private async void OnDeleteAccDocumentHeader(AccDocumentHeader accDocumentHeader) { if (Deleting()) { try { await _accDocumentHeadersService.DeleteAccDocumentHeaderAsync(accDocumentHeader.AccDocumentHeaderId); AccDocumentHeaders.Remove(accDocumentHeader); Deleted(); } catch (Exception ex) { Failed(ex); } } }
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); //بررسی کن اگه سندی که هیچ آیتم ندارد را حذف کند }
public AttachmentListWindowViewModel() { AccDocumentHeader = new AccDocumentHeader(); }
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(); }
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; } } } } } } } } } }
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("سند با موفقیت ثبت شد"); } } } } } }