private void btnPrintHelps_Click(object sender, RoutedEventArgs e) { var db = DDB.NewContext(); var list = db.tbl_gnt_creditor.Where(x => x.gnt_creditor_account_number.Trim() != "").ToList(); ShowHelpsReport(list); }
private void DeleteFromCreditorAccount() { try { var db = DDB.NewContext(); var accountRecords = db.tbl_gnt_creditor_account.Where(x => x.gnt_creditor_account_gnt_service_id == selectedRecord.gnt_service_id); if (accountRecords.Count() > 0) { foreach (var record in accountRecords) { db.tbl_gnt_creditor_account.DeleteObject(record); } db.SaveChanges(); Messages.InformationMessage("مبلغ این سند از حساب سهامدار کسر شد"); } else { Messages.WarningMessage("این سند در حساب سهامدار یافت نشد"); } } catch (Exception exception) { Messages.ErrorMessage("بروز خطا هنگام به روز رسانی حساب سهامدار. متن کامل خطا : \r\n" + exception.CompleteMessages()); } }
private void btnPrintAllCreditors_Click(object sender, RoutedEventArgs e) { var db = DDB.NewContext(); var list = db.tbl_gnt_creditor.OrderBy(x => x.gnt_creditor_child_code).ToList(); ShowAllCreditorsReport(list); }
private void txt_gnt_deal_article_sell_jeribMinuteSecond_LostFocus(object sender, RoutedEventArgs e) { var dataBase = DDB.NewContext(); if (selectedArticle.gnt_deal_article_gnt_water_id == 0) { return; } var ownership = new tbl_gnt_ownership(); ownership.tbl_gnt_water = dataBase.tbl_gnt_water.Where(w => w.gnt_water_id == selectedArticle.gnt_deal_article_gnt_water_id).First(); ownership.gnt_ownership_jerib = selectedArticle.gnt_deal_article_sell_jerib; ownership.gnt_ownership_minute = selectedArticle.gnt_deal_article_sell_minute; ownership.gnt_ownership_second = selectedArticle.gnt_deal_article_sell_second; selectedArticle.gnt_deal_article_sell_jerib = ownership.gnt_ownership_correct_jerib; selectedArticle.gnt_deal_article_sell_minute = ownership.gnt_ownership_correct_minute; selectedArticle.gnt_deal_article_sell_second = ownership.gnt_ownership_correct_second; selectedArticle.gnt_deal_article_sell_credit = ownership.gnt_ownership_correct_credit; selectedArticle.gnt_deal_article_sell_earth = ownership.gnt_ownership_correct_earth; selectedArticle.gnt_deal_article_sell_all_price = (int)Math.Round(selectedArticle.gnt_deal_article_sell_credit * selectedArticle.gnt_deal_article_sell_price); selectedArticle.gnt_deal_article_sell_agreement_price = selectedArticle.gnt_deal_article_sell_all_price; MoveCollectionViewArticle(); }
private void btnPrintDebtors_Click(object sender, RoutedEventArgs e) { var db = DDB.NewContext(); var list = db.tbl_gnt_creditor.OrderBy(x => x.gnt_creditor_child_code).ToList().Where(x => x.gnt_creditor_account_remaining < 0).ToList(); ShowDebtorsReport(list); }
private void btn_TransferCreditorsAccountToNewFiscalYear_Click(object sender, RoutedEventArgs e) { try { var db = DDB.NewContext(); var fiscalYears = db.tbl_glb_fiscal_year.OrderByDescending(x => x.glb_fiscal_year_id).ToList(); var lastFiscalYear = fiscalYears.First(); if (GlobalVariables.current_fiscal_year_id != lastFiscalYear.glb_fiscal_year_id) { throw new Exception(string.Format("سال مالی جاری سال {0} و آخرین سال مالی سال {1} می باشد. لطفا با آخرین سال مالی وارد برنامه شوید.", GlobalVariables.current_fiscal_year_name, lastFiscalYear.glb_fiscal_year_name)); } if (fiscalYears.Count == 1) { throw new Exception("برنامه تنها یک سال مالی دارد"); } var oldFiscalYear = fiscalYears[1]; int fine; if (!int.TryParse(txtFine.Text, out fine)) { Messages.ErrorMessage("میزان جریمه را وارد نمائید"); return; } tbl_gnt_creditor.TransferCreditorAccountsToNewfiscalYear(fine, oldFiscalYear.glb_fiscal_year_id, lastFiscalYear.glb_fiscal_year_id); Messages.SuccessMessage("انتقال حساب"); } catch (Exception exception) { Messages.ExceptionMessage(exception); } }
public override void LoadData() { try { var levels = FindSelectedLevels(); var context = DDB.NewContext(); List <tbl_acc_document_article> articles = new List <tbl_acc_document_article>(); foreach (var document in ref_acc_document.ListAfterChange) { articles.AddRange(context.tbl_acc_document_article.Where(x => x.acc_document_article_acc_document_id == document.acc_document_id).ToList()); } allRecords = new List <stp_acc_rpt_cover_selResult>(); foreach (int levelNo in levels) { foreach (var article in articles) { var parentCA = GetParentCA(article, levelNo); if (parentCA == null) { continue; } var findedCA = allRecords.Find(x => x.acc_rpt_cover_acc_chart_account_id == parentCA.acc_rpt_cover_acc_chart_account_id); if (findedCA == null) { allRecords.Add(parentCA); } else { findedCA.acc_rpt_cover_acc_chart_account_credit += parentCA.acc_rpt_cover_acc_chart_account_credit; findedCA.acc_rpt_cover_acc_chart_account_debt += parentCA.acc_rpt_cover_acc_chart_account_debt; } } } foreach (var record in allRecords) { record.acc_rpt_cover_remaining = Math.Abs(record.acc_rpt_cover_acc_chart_account_debt.Value - record.acc_rpt_cover_acc_chart_account_credit.Value); if (record.acc_rpt_cover_acc_chart_account_debt > record.acc_rpt_cover_acc_chart_account_credit) { record.acc_rpt_cover_specification = "بدهکار"; } else if (record.acc_rpt_cover_acc_chart_account_debt < record.acc_rpt_cover_acc_chart_account_credit) { record.acc_rpt_cover_specification = "بستانکار"; } else { record.acc_rpt_cover_specification = "تراز"; } } allRecords = allRecords.OrderBy(x => x.acc_rpt_cover_acc_chart_account_code).ToList(); } catch (Exception exception) { MessageBox.Show(exception.Message); } }
private void btnCopyCosts_Click(object sender, RoutedEventArgs e) { try { var db = DDB.NewContext(); var fiscalYears = db.tbl_glb_fiscal_year.OrderByDescending(x => x.glb_fiscal_year_id).ToList(); var newFiscalYear = fiscalYears.First(); if (GlobalVariables.current_fiscal_year_id != newFiscalYear.glb_fiscal_year_id) { throw new Exception(string.Format("سال مالی جاری سال {0} و آخرین سال مالی سال {1} می باشد. لطفا با آخرین سال مالی وارد برنامه شوید.", GlobalVariables.current_fiscal_year_name, newFiscalYear.glb_fiscal_year_name)); } if (fiscalYears.Count == 1) { throw new Exception("برنامه تنها یک سال مالی دارد"); } var oldFiscalYear = fiscalYears[1]; if (txtIncrease.Text.Trim() == "") { Messages.ErrorMessage("لطفا میزان افزایش تعرفه را وارد نمایید "); return; } var result = Messages.QuestionMessage_YesNo(string.Format("آیا مایلید تعرفه های دوره مالی {0} به تعرفه های دوره مالی {1} اضافه شود؟", oldFiscalYear.glb_fiscal_year_name, newFiscalYear.glb_fiscal_year_name)); if (result != MessageBoxResult.Yes) { return; } var oldCosts = db.tbl_gnt_cost_type.Where ( x => x.gnt_cost_type_glb_fiscal_year_id == oldFiscalYear.glb_fiscal_year_id && x.gnt_cost_type_glb_branch_id == GlobalVariables.current_branch_id ); int increase = int.Parse(txtIncrease.Text); foreach (var oldCost in oldCosts) { var newCost = new tbl_gnt_cost_type() { gnt_cost_type_glb_branch_id = oldCost.gnt_cost_type_glb_branch_id, gnt_cost_type_glb_fiscal_year_id = newFiscalYear.glb_fiscal_year_id, gnt_cost_type_is_public = oldCost.gnt_cost_type_is_public, gnt_cost_type_name = oldCost.gnt_cost_type_name, gnt_cost_type_price = (int)Math.Round(oldCost.gnt_cost_type_price * (1 + (double)increase / 100)), }; db.tbl_gnt_cost_type.AddObject(newCost); } db.SaveChanges(); Messages.SuccessMessage("انتقال تعرفه ها"); } catch (Exception exception) { Messages.ErrorMessage(exception.CompleteMessages()); } }
public override void Window_Loaded(object sender, RoutedEventArgs e) { base.Window_Loaded(sender, e); var dataBase = DDB.NewContext(); if (dataBase.tbl_gnt_settings.Count() == 0) { Messages.ErrorMessage("تنظیمات سهام وارد نشده است"); return; } this.OneCreditPrice = dataBase.tbl_gnt_settings.First().gnt_settings_one_credit_price; }
private void SaveDealToOwnerships() { try { var dataBase = DDB.NewContext(); var deal = dataBase.tbl_gnt_deal.Where(d => d.gnt_deal_id == selectedRecord.gnt_deal_id).First(); foreach (var article in deal.tbl_gnt_deal_article) { var ownership = tbl_gnt_ownership.FindRecord(dataBase, article.gnt_deal_article_gnt_ownership_id); if (ownership == null) { Messages.ErrorMessage("مالکیت سهامدار یافت نشد"); return; } if (ownership.TotalSeconds > article.TotlaSeconds) { ownership.TotalSeconds -= article.TotlaSeconds; /* Decrease old Ownership */ dataBase.tbl_gnt_ownership.ApplyCurrentValues(ownership); } else if (ownership.TotalSeconds == article.TotlaSeconds) { dataBase.tbl_gnt_ownership.DeleteObject(ownership); } else { string message = "سهام انتقال یافته بیش از سهام مالک است" + "\n" + "نام مالک :" + ownership.tbl_gnt_creditor.gnt_creditor_family + "\n" + "نام آب :" + ownership.tbl_gnt_water.gnt_water_name; Messages.ErrorMessage(message); return; } tbl_gnt_ownership newOwnership = new tbl_gnt_ownership(); /* Create New Ownership with amount of selling*/ newOwnership.gnt_ownership_gnt_water_id = ownership.gnt_ownership_gnt_water_id; newOwnership.gnt_ownership_gnt_creditor_id = article.gnt_deal_article_gnt_buy_creditor_id; newOwnership.TotalSeconds = article.TotlaSeconds; newOwnership.gnt_ownership_glb_branch_id = GlobalVariables.current_branch_id; dataBase.tbl_gnt_ownership.AddObject(newOwnership); } dataBase.SaveChanges(); } catch (Exception exception) { string message = "خطا در ذخیره سازی تغییرات" + "\n" + exception.Message; if (exception.InnerException != null) { message += "\n" + "خطای پایگاه داده " + "\n" + exception.InnerException.Message; } Messages.ErrorMessage(message); } }
public override void Window_Loaded(object sender, RoutedEventArgs e) { this.RecordParameter.gnt_ownership_gnt_water_id = this.CurrentWater.gnt_water_id; base.Window_Loaded(sender, e); lbl_water_name.Content = this.CurrentWater.gnt_water_name; var dataBase = DDB.NewContext(); if (dataBase.tbl_gnt_settings.Count() == 0) { Messages.ErrorMessage("تنظیمات سیستم سهام وارد نشده اند"); return; } }
public override bool ValidationForInsert() { if (!base.ValidationForInsert()) { return(false); } var lastFiscalYear = DDB.NewContext().tbl_glb_fiscal_year.OrderByDescending(x => x.glb_fiscal_year_id).First(); if (GlobalVariables.current_fiscal_year_id != lastFiscalYear.glb_fiscal_year_id) { Messages.ErrorMessage(string.Format("سال مالی جاری سال {0} و آخرین سال مالی سال {1} می باشد. لطفا با آخرین سال مالی وارد برنامه شوید.", GlobalVariables.current_fiscal_year_name, lastFiscalYear.glb_fiscal_year_name)); return(false); } return(true); }
private static void ShowAllCreditorsReport(List <tbl_gnt_creditor> creditorsList) { try { var db = DDB.NewContext(); var printForm = new WindowPrint <tbl_gnt_settings, tbl_gnt_creditor>(new gnt_rpt_all_creditors()); printForm.articleList = creditorsList; printForm.selectedRecord = db.tbl_gnt_settings.First(); printForm.AddCustomParameter("Title2", "لیست مشخصات کل سهامداران شرکت "); printForm.ShowDialog(); } catch (Exception exception) { Messages.ErrorMessage(exception.CompleteMessages()); } }
private static void ShowDebtorsReport(List <tbl_gnt_creditor> creditorsList) { try { var db = DDB.NewContext(); var printForm = new WindowPrint <tbl_gnt_settings, tbl_gnt_creditor>(new gnt_rpt_creditor_debtors()); printForm.articleList = creditorsList; printForm.selectedRecord = db.tbl_gnt_settings.First(); printForm.AddCustomParameter("Title2", "لیست مانده بدهی سهامداران شرکت در سال " + GlobalVariables.current_fiscal_year_name); printForm.ShowDialog(); } catch (Exception exception) { Messages.ErrorMessage(exception.CompleteMessages()); } }
private void UpdateCreditorAccount() { try { Boolean oldRecordDeleted = false; var db = DDB.NewContext(); var accountRecords = db.tbl_gnt_creditor_account.Where(x => x.gnt_creditor_account_gnt_service_id == selectedRecord.gnt_service_id); if (accountRecords.Count() > 0) { oldRecordDeleted = true; foreach (var record in accountRecords) { db.tbl_gnt_creditor_account.DeleteObject(record); } } db.tbl_gnt_creditor_account.AddObject(new tbl_gnt_creditor_account() { gnt_creditor_account_gnt_service_id = selectedRecord.gnt_service_id, gnt_creditor_account_date = APMDateTime.dateWithNoSlash(selectedRecord.gnt_service_date), gnt_creditor_account_credit = 0, gnt_creditor_account_debt = bindingListArticle.Sum(x => x.gnt_service_article_total_price), gnt_creditor_account_gnt_creditor_id = CurrentCreditor.gnt_creditor_id, gnt_creditor_account_title = string.Format("خدمات خصوصی به شماره سند {0}", selectedRecord.gnt_service_code), gnt_creditor_account_description = selectedRecord.gnt_service_description, gnt_creditor_account_is_public_cost = false, gnt_creditor_account_glb_fiscal_year_id = GlobalVariables.current_fiscal_year_id, gnt_creditor_account_is_opening = false }); db.SaveChanges(); string message = ""; if (oldRecordDeleted) { message = "مبلغ سند قبلی از حساب سهامدار حذف و مبلغ سند جدید به حساب سهامدار افزوده شد"; } else { message = "مبلغ این سند به حساب سهامدار افزوده شد"; } Messages.InformationMessage(message); } catch (Exception exception) { Messages.ErrorMessage("بروز خطا هنگام به روز رسانی حساب سهامدار. متن کامل خطا : \r\n" + exception.CompleteMessages()); } }
public override void Window_Loaded(object sender, RoutedEventArgs e) { this.RecordParameter.gnt_service_gnt_creditor_id = this.CurrentCreditor.gnt_creditor_id; lbl_creditor.Content = this.CurrentCreditor.gnt_creditor_name; base.Window_Loaded(sender, e); if (allRecords.Count == 0) { ShowSomeRecords(RecordParameter); } var dataBase = DDB.NewContext(); if (dataBase.tbl_gnt_settings.Count() == 0) { Messages.ErrorMessage("تنظیمات سهام وارد نشده است"); return; } CalculateTotal(); }
public static bool CurrentUserHasAccessTo(string controlName) { var AccessDeniedList = DDB.NewContext().tbl_glb_user_access .Where ( x => x.glb_user_access_glb_user_id == GlobalVariables.current_user_id && x.tbl_glb_user_access_items.glb_user_access_items_control_name.ToLower() == controlName.ToLower() ) .ToList(); if (AccessDeniedList.Count > 0) { return(false); } return(true); }
private void btnPrintStockSheet_Click(object sender, RoutedEventArgs e) { try { var db = DDB.NewContext(); var printForm = new WindowPrint <tbl_gnt_creditor, tbl_gnt_creditor>(new gnt_rpt_creditor_stock()); var settings = db.tbl_gnt_settings.FirstOrDefault(); var creditor = db.tbl_gnt_creditor.Where(x => x.gnt_creditor_id == selectedRecord.gnt_creditor_id).FirstOrDefault(); creditor.gnt_creditor_birth_date = APMDateTime.dateWithSlash(creditor.gnt_creditor_birth_date); printForm.selectedRecord = creditor; printForm.AddCustomParameter("chairman", settings.gnt_settings_chairman_name); printForm.AddCustomParameter("executive_manager", settings.gnt_settings_executive_manager_name); printForm.ShowDialog(); } catch (Exception exception) { Messages.ErrorMessage(exception.Message); } }
private void chkSelectAllCreditors_Click(object sender, RoutedEventArgs e) { try { if (chkSelectAllCreditors.IsChecked == true) { selectedCreditorsCount = DDB.NewContext().tbl_gnt_creditor.Count(); } else { selectedCreditorsCount = 0; } lbl_selected_creditors.Content = selectedCreditorsCount; } catch (Exception exception) { Messages.ErrorMessage(exception.CompleteMessages()); } }
private void btnRefreshEmptyCodes_Click(object sender, RoutedEventArgs e) { var db = DDB.NewContext(); var codes = db.tbl_gnt_creditor.Select(x => x.gnt_creditor_child_code).Cast <int>().ToList(); codes.Sort(); int lastCode = 0; lst_empty_codes.Items.Clear(); foreach (int code in codes) { if (code > lastCode + 1) { for (int j = lastCode + 1; j < code; j++) { lst_empty_codes.Items.Add(j.ToString()); } } lastCode = code; } lblEmptyCodesCount.Content = lst_empty_codes.Items.Count.ToString(); }
private static void ShowHelpsReport(List <tbl_gnt_creditor> creditorsList) { try { var db = DDB.NewContext(); var printForm = new WindowPrint <tbl_gnt_settings, tbl_gnt_creditor>(new gnt_rpt_creditor_helps()); printForm.articleList = creditorsList; creditorsList.ForEach ( x => { if (x.gnt_creditor_mobile == null || x.gnt_creditor_mobile.Trim() == "") { x.gnt_creditor_mobile = x.gnt_creditor_tel; } } ); var setting = db.tbl_gnt_settings.First(); printForm.selectedRecord = setting; int helpPrice = 0; if (setting.gnt_settings_help_price.HasValue) { helpPrice = setting.gnt_settings_help_price.Value; } printForm.AddCustomParameter("price", helpPrice.DigitGrouping()); printForm.AddCustomParameter("Title1", "سازمان جهاد کشاورزی استان اصفهان"); printForm.AddCustomParameter("Title2", "مدیریت جهاد کشاورزی شهرستان نجف آباد"); printForm.AddCustomParameter("Title3", "لیست پرداخت کمک های بلاعوض به خسارت دیدگان ناشی از خشکسالی سال"); printForm.ShowDialog(); } catch (Exception exception) { Messages.ErrorMessage(exception.CompleteMessages()); } }
private void CreateNewCode() { SahaamEntities db = DDB.NewContext(); long maxCode; if (db.tbl_gnt_creditor.Count() == 0) { maxCode = 1; } else { maxCode = long.Parse(db.tbl_gnt_creditor.Select(x => x.gnt_creditor_child_code).Max()); } var digitCount = db.tbl_glb_entity_type_option .Where(x => x.glb_entity_type_option_glb_entity_type_id == 12) .First() .glb_entity_type_option_digit_count; newCode = (maxCode + 1).ToString(); GlobalFunctions.PutZeroBeforeCode(newCode, digitCount); }
public override void Window_Loaded(object sender, System.Windows.RoutedEventArgs e) { SahaamEntities dataBase = DDB.NewContext(); base.Window_Loaded(sender, e); if (allRecords.Count == 0) { dataBase.tbl_gnt_settings.AddObject( new tbl_gnt_settings() { gnt_settings_credit_meters = 1000, gnt_settings_total_credit_count = 1, gnt_settings_total_credit_price = 1, gnt_settings_accountant_name = "-", gnt_settings_chairman_name = "-", gnt_settings_executive_manager_name = "-" }); dataBase.SaveChanges(); APMTools.Messages.InformationMessage("تنظیمات به طور خودکار اضافه شد"); RefreshClick(); } CalculateOneCreditPrice(); }
public override void Window_Loaded(object sender, RoutedEventArgs e) { try { DDB.Connect(); base.Window_Loaded(sender, e); var db = DDB.NewContext(); if (db.tbl_glb_branch.Count() == 0) { Messages.ErrorMessage("شعبه تعریف نشده است"); return; } GlobalVariables.current_branch_id = db.tbl_glb_branch.First().glb_branch_id; GlobalVariables.current_branch_name = db.tbl_glb_branch.First().glb_branch_name; if (db.tbl_glb_fiscal_year.Count() == 0) { Messages.ErrorMessage("دوره مالی تعریف نشده است"); return; } var fiscalYearList = db.tbl_glb_fiscal_year.ToList(); cmbfiscalYear.ItemsSource = fiscalYearList; cmbfiscalYear.DisplayMemberPath = FieldNames <stp_glb_fiscal_year_selResult> .Name; cmbfiscalYear.SelectedIndex = cmbfiscalYear.Items.Count - 1; UsersList = BLL.GetAllRecord_Password(); cmbUserName.ItemsSource = UsersList; cmbUserName.DisplayMemberPath = FieldNames <stp_glb_user_selResult> .Name; FindLastUser(); FocusFirstControl(grp_Login); } catch (Exception exception) { Messages.ErrorMessage(exception.CompleteMessages()); } }
private void btnUpdateCreditorAccount_Click(object sender, RoutedEventArgs e) { try { if (selectedCreditorsCount == 0) { Messages.ErrorMessage("سهامداران انتخاب نشده اند"); return; } SahaamEntities db = DDB.NewContext(); if (chkSelectAllCreditors.IsChecked == true) { foreach (var creditor in db.tbl_gnt_creditor.ToArray()) { creditor.UpdateAccountForPublicCosts(); } } else { foreach (var oldcreditor in creditorsArticlePackage.ListAfterChange) { oldcreditor.ToEntity().UpdateAccountForPublicCosts(); } } Messages.SuccessMessage(string.Format("اعمال هزینه های عمومی در حساب {0} سهامدر", (selectedCreditorsCount == 1) ? "یک" : selectedCreditorsCount.ToString())); selectedCreditorsCount = 0; lbl_selected_creditors.Content = selectedCreditorsCount; chkSelectAllCreditors.IsChecked = false; creditorsArticlePackage.Clear(); } catch (Exception exception) { Messages.ErrorMessage(exception.CompleteMessages()); } }
public override void PrintClick() { string address = "..."; try { var db = DDB.NewContext(); var list = db.tbl_gnt_earth.Where(x => x.gnt_earth_gnt_creditor_id == CurrentCreditor.gnt_creditor_id); if (list.Count() > 0) { var earth = list.First(); address = "خیابان {0} ، ردیف {1} ، بلوک {2} ، پلاک {3}".FormatWith(earth.gnt_earth_street, earth.gnt_earth_line, earth.gnt_earth_block, earth.gnt_earth_plaque); } } catch { address = "---"; } var parameterForm = new frm_gnt_service_report_parameters(this.CurrentCreditor.gnt_creditor_name, address); if (parameterForm.ShowDialog() != true) { return; } var sentence = parameterForm.Sentence; var reportFile = new gnt_rpt_service(); var printForm = new WindowPrint <tbl_gnt_creditor, stp_gnt_service_article_selResult>(reportFile); printForm.articleList = bindingListArticle.ToList(); printForm.selectedRecord = this.CurrentCreditor.ToEntity(); printForm.AddCustomParameter("gnt_service_code", selectedRecord.gnt_service_code); printForm.AddCustomParameter("gnt_service_date", selectedRecord.gnt_service_date); printForm.AddCustomParameter("below_sentence", sentence); printForm.ShowDialog(); }
public void CreateClosingAndOpeningAccountingDocument() { var db = DDB.NewContext(); var fiscalYears = db.tbl_glb_fiscal_year.OrderByDescending(x => x.glb_fiscal_year_id).ToList(); var newFiscalYear = fiscalYears.First(); if (GlobalVariables.current_fiscal_year_id != newFiscalYear.glb_fiscal_year_id) { throw new Exception(string.Format("سال مالی جاری سال {0} و آخرین سال مالی سال {1} می باشد. لطفا با آخرین سال مالی وارد برنامه شوید.", GlobalVariables.current_fiscal_year_name, newFiscalYear.glb_fiscal_year_name)); } if (fiscalYears.Count == 1) { throw new Exception("برنامه تنها یک سال مالی دارد"); } var oldFiscalYear = fiscalYears[1]; GlobalVariables.current_fiscal_year_id = oldFiscalYear.glb_fiscal_year_id; new BLL <stp_acc_chart_account_calculate_debt_creditResult>().DoDataBaseOperation(); GlobalVariables.current_fiscal_year_id = newFiscalYear.glb_fiscal_year_id; var documents = db.tbl_acc_document.ToList(); Boolean closingDeleted = false; var closings = db.tbl_acc_document .Where ( x => x.acc_document_is_closing == true && x.acc_document_glb_fiscal_year_id == oldFiscalYear.glb_fiscal_year_id ).ToList(); if (closings.Count > 0) { closingDeleted = true; db.tbl_acc_document.DeleteObject(closings.First()); } var openings = db.tbl_acc_document .Where ( x => x.acc_document_is_opening == true && x.acc_document_glb_fiscal_year_id == newFiscalYear.glb_fiscal_year_id ).ToList(); if (openings.Count > 0) { db.tbl_acc_document.DeleteObject(openings.First()); } long newDocumentCode = CreateNewDocumentCode(db, oldFiscalYear.glb_fiscal_year_id); var newDocumentNo = CreateNewDocumentNo(db, oldFiscalYear.glb_fiscal_year_id); if (closingDeleted && newDocumentCode > 1) { newDocumentCode--; } if (closingDeleted && newDocumentNo > 1) { newDocumentNo--; } var closingDocumentType = FindAccDocumentType(db, "اخ"); var openningDocumentType = FindAccDocumentType(db, "اف"); string closingDescription = "سند اختتامیه سال " + oldFiscalYear.glb_fiscal_year_name; string openningDescription = "سند افتتاحیه سال " + newFiscalYear.glb_fiscal_year_name; var closingDocument = new tbl_acc_document() { acc_document_acc_document_type_id = closingDocumentType.acc_document_type_id, acc_document_date = APMDateTime.dateWithNoSlash(APMDateTime.Today), acc_document_description = closingDescription, acc_document_glb_branch_id = GlobalVariables.current_branch_id, acc_document_glb_fiscal_year_id = oldFiscalYear.glb_fiscal_year_id, acc_document_from_inventory = false, acc_document_is_closing = true, acc_document_is_opening = false, acc_document_register_date = APMDateTime.dateWithNoSlash(APMDateTime.Today), acc_document_register_time = APMDateTime.SystemTime, acc_document_registerer_glb_user_id = GlobalVariables.current_user_id, acc_document_status_glb_coding_id = (long)AccDocumentStatus.Temporary, acc_document_code = newDocumentCode.ToString(), acc_document_no = newDocumentNo }; var openningDocument = new tbl_acc_document() { acc_document_acc_document_type_id = openningDocumentType.acc_document_type_id, acc_document_date = APMDateTime.dateWithNoSlash(APMDateTime.Today), acc_document_description = openningDescription, acc_document_glb_branch_id = GlobalVariables.current_branch_id, acc_document_glb_fiscal_year_id = newFiscalYear.glb_fiscal_year_id, acc_document_from_inventory = false, acc_document_is_closing = false, acc_document_is_opening = true, acc_document_register_date = APMDateTime.dateWithNoSlash(APMDateTime.Today), acc_document_register_time = APMDateTime.SystemTime, acc_document_registerer_glb_user_id = GlobalVariables.current_user_id, acc_document_status_glb_coding_id = (long)AccDocumentStatus.Temporary, acc_document_code = (newDocumentCode + 1).ToString(), acc_document_no = 1 }; var accounts = db.tbl_acc_chart_account.ToList(); foreach (tbl_acc_chart_account account in accounts) { if (!account.acc_chart_account_acc_detail_id.HasValue) { continue; } double debt = (account.acc_chart_account_debt.HasValue ? account.acc_chart_account_debt.Value : 0); double credit = (account.acc_chart_account_credit.HasValue ? account.acc_chart_account_credit.Value : 0); double remaining = credit - debt; credit = (remaining > 0 ? remaining : 0); debt = (remaining < 0 ? -remaining : 0); if (debt == credit) { continue; } var closingArticle = new tbl_acc_document_article() { acc_document_article_acc_chart_account_id = account.acc_chart_account_id, acc_document_article_credit = debt, acc_document_article_debt = credit, acc_document_article_description = closingDescription, acc_document_article_glb_branch_id = GlobalVariables.current_branch_id, }; closingDocument.tbl_acc_document_article.Add(closingArticle); var openningArticle = new tbl_acc_document_article() { acc_document_article_acc_chart_account_id = account.acc_chart_account_id, acc_document_article_credit = credit, acc_document_article_debt = debt, acc_document_article_description = openningDescription, acc_document_article_glb_branch_id = GlobalVariables.current_branch_id, }; openningDocument.tbl_acc_document_article.Add(openningArticle); } db.tbl_acc_document.AddObject(closingDocument); db.tbl_acc_document.AddObject(openningDocument); db.SaveChanges(); }