Example #1
0
        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());
     }
 }
Example #3
0
        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();
        }
Example #5
0
        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);
            }
        }
Example #7
0
        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);
            }
        }
Example #11
0
        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);
        }
Example #13
0
 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());
     }
 }
Example #14
0
 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();
        }
Example #17
0
        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);
        }
Example #18
0
 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());
     }
 }
Example #20
0
        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();
        }
Example #21
0
        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());
            }
        }
Example #22
0
        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();
        }