コード例 #1
0
 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());
     }
 }
コード例 #2
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);
     }
 }
コード例 #3
0
ファイル: BLL.cs プロジェクト: MohammadChamanpara/Ghanavaat
 /// <summary>
 ///<para> .دلخواه را برای ما انجام می دهد Select است که هر  Generic این تابع یک تابع </para>
 ///<para> برای شما بر گرداند Select که بعد از نام تابع می نویسید نوع لیستی را مشخص می کند که می خواهید  Generic نوع  </para>
 /// </summary>
 /// <typeparam name="CUSTOM_TYPE">
 /// برای شما برگرداند  Select نوع لیستی که می خواهید
 /// </typeparam>
 /// <param name="storedProcedureName">
 /// .نام پروسیجری که می خواهید فراخوانی شود
 /// </param>
 /// <param name="parameters">
 /// <para> رکوردی که مقادیر پارامترهای پروسیجر را در خود دارد</para>
 /// <para> .در این قسمت باید یک رکورد به تابع بدهید تا مقادیر پارامترهای پروسیجر از آن استخراج شود </para>
 /// </param>
 /// <returns></returns>
 private List <RT> CustomSelect(string storedProcedureName, RT inputRecord)
 {
     allRecords = DDB.Select <RT>(storedProcedureName, inputRecord);
     if (allRecords == null)
     {
         allRecords = new List <RT>();
     }
     if (allRecords.Count > 0)
     {
         foreach (PropertyInfo property in typeof(RT).GetProperties())
         {
             if (property.Name.EndsWith("_date"))
             {
                 foreach (RT record in allRecords)
                 {
                     property.SetValue(record, APMDateTime.dateWithSlash((string)property.GetValue(record, null)), null);
                 }
             }
         }
     }
     return(allRecords);
 }
コード例 #4
0
        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();
        }
コード例 #5
0
        static public object[] RetrieveParametersFromRecord(object Record, MethodInfo storedProcedure, List <RefrencePair> refrencePairs)
        {
            int    parametersCount = storedProcedure.GetParameters().Count();       // Get count of parameters of calling stored procedure
            int    valuesIndex = 0;                                                 // first value is the property and second is the position in values
            int    findedParameters = 0, finded;
            string notFindedParameters = "";

            ParameterInfo[] methodParameters = storedProcedure.GetParameters();
            object[]        parametersValues = new object[parametersCount];         // Array for Collecting Parameter Values from Record
            foreach (ParameterInfo parameter in methodParameters)
            {
                finded = 1;
                if (parameter.Name.ToLower() == "fiscal_year_id")
                {
                    parametersValues[valuesIndex++] =
                        GlobalVariables.current_fiscal_year_id;
                }
                else if (parameter.Name.ToLower() == "branch_id")
                {
                    parametersValues[valuesIndex++] =
                        GlobalVariables.current_branch_id;
                }
                else if (parameter.Name.ToLower() == "user_id")
                {
                    parametersValues[valuesIndex++] =
                        GlobalVariables.current_user_id;
                }
                else
                {
                    finded = 0;
                    foreach (PropertyInfo property in Record.GetType().GetProperties())
                    {
                        if (parameter.Name.ToLower() == property.Name.ToLower())          // related Prperty finded to get data from.
                        {
                            if (refrencePairs != null && parameter.ParameterType.IsByRef) // this parameter is a refrence(output) property and we must save it.
                            {
                                refrencePairs.Add                                         // saving the property and the position in values.
                                    (new RefrencePair()
                                {
                                    ValuePosition = valuesIndex,                         // position of value in parametersValues
                                    Property      = property                             // property of record to get output value from S.P.
                                });
                            }
                            object parameterValue = property.GetValue(Record, null);

                            if (parameterValue != null && property.Name.EndsWith("_password"))
                            {
                                parametersValues[valuesIndex++] =
                                    Encryption.EncryptPassword_String(parameterValue.ToString());
                            }
                            else if ((parameterValue is string) && parameterValue != null && parameterValue.ToString().Trim() == "")
                            {
                                parametersValues[valuesIndex++] = null;
                            }
                            else if (parameterValue != null && property.Name.EndsWith("_date"))
                            {
                                parametersValues[valuesIndex++] =
                                    APMDateTime.dateWithNoSlash(parameterValue.ToString());
                            }

                            else if (property.Name.EndsWith("_id") && (parameterValue is long) && (long)parameterValue == 0)
                            {
                                parametersValues[valuesIndex++] = null;
                            }
                            else
                            {
                                parametersValues[valuesIndex++] = parameterValue;
                            }
                            finded = 1;
                            break;
                        }
                    }
                }

                findedParameters += finded;
                if (finded == 0)
                {
                    notFindedParameters = notFindedParameters + "," + parameter.Name;
                }
            }
            if (findedParameters < parametersCount)                                         // if finded properties is less than parameters.
            {
                Messages.ErrorMessage("." + "با نام فیلد های متناظر در پایگاه داده متفاوت است " +
                                      storedProcedure.Name + " نام پارامتر های " + "\n"
                                      + " : نام پارامتر های یافت نشده " + "\n" + notFindedParameters); // less parameters is because of the diffrence between
                // parameters names and Database field Names.
                return(null);                                                                          // Operation Failed.
            }
            return(parametersValues);
        }