コード例 #1
0
        public void Calc_Operation()
        {
            Account           = new SubAccount();
            Khazna_Moved_List = new List <Entry>();

            Khazna_Moved = new Entry();


            Khazna_Moved_List = db.Entry.ToList().Where(o => o.SubAccount_id == int.Parse(AccountDropID.SelectedValue) &
                                                        o.Date <= ExtendedMethod.FormatDate(ToDateTxt.Text)).ToList();
            //Khazna_Moved.GetEntry_ByAccountIDByDate(int.Parse(AccountDropID.SelectedValue), ToDateTxt.Text);


            SubAccount sub_Account = new SubAccount();

            sub_Account = db.SubAccount.ToList().FirstOrDefault(o => o.ID == int.Parse(AccountDropID.SelectedValue));
            // sub_Account.GetSubAccount_ByID(int.Parse(AccountDropID.SelectedValue)).ElementAtOrDefault(0);
            float Account_Sum = float.Parse(sub_Account.ABalance.ToString());

            Account_Operations           = new AccountOperationsGrd();
            AccountOperations_List       = new List <AccountOperationsGrd>();
            Account_Mony_Operations_List = new List <Entry>();
            Account_Operations_List      = new List <AccountOperationsGrd>();
            List <AccountOperationsGrd> FinalGrd = new List <AccountOperationsGrd>();

            //  DateTime.Parse(operation.Date.ToString()).Year
            //DateTime RD= DateTime.ParseExact(sub_Account.RegisterDate.ToString(), "yyyy-MM-dd", null);
            if (sub_Account.BType == "مدين")
            {
                FinalGrd.Add(new AccountOperationsGrd()
                {
                    OperationID   = 0,
                    OperationDate = (DateTime)sub_Account.RegisterDate,

                    CreditBalance   = 0,
                    Credit_Movement = 0,
                    IndebtBalance   = float.Parse(sub_Account.ABalance.ToString()),
                    //InDebt_Movement = float.Parse(sub_Account.ABalance.ToString()),
                    Description = "رصيد افتتاحى",
                });
            }
            else
            {
                FinalGrd.Add(new AccountOperationsGrd()
                {
                    OperationID   = 0,
                    OperationDate = (DateTime)sub_Account.RegisterDate,

                    CreditBalance   = 0,
                    Credit_Movement = 0,
                    IndebtBalance   = -float.Parse(sub_Account.ABalance.ToString()),
                    //InDebt_Movement = float.Parse(sub_Account.ABalance.ToString()),
                    Description = "رصيد افتتاحى",
                });
            }



            //كل العمليات مع الخزنة الخاصة بaccount
            foreach (var Khazna in Khazna_Moved_List)
            {
                Account_Mony_Operations_List.Add(new Entry
                {
                    ID            = (int)Khazna.EntryID,
                    status        = Khazna.status,
                    value         = Khazna.value,
                    description   = Khazna.description,
                    SubAccount_id = Khazna.SubAccount_id,
                    Date          = Khazna.Date
                });
            }


            Account_Mony_Operations_List.OrderByDescending(a => a.Date);

            //Concatination
            foreach (var operation in Account_Mony_Operations_List)
            {
                string date = DateTime.Parse(operation.Date.ToString()).Year + "-" + DateTime.Parse(operation.Date.ToString()).Month + "-" + DateTime.Parse(operation.Date.ToString()).Day;
                float  sum  = Account_Sum > float.Parse(operation.value.ToString()) ? Account_Sum - float.Parse(operation.value.ToString()) : float.Parse(operation.value.ToString()) - Account_Sum;

                // Account_Sum
                if (operation.status == "دائن")//مستلم
                {
                    Account_Operations_List.Add(new AccountOperationsGrd()
                    {
                        OperationID     = operation.ID,
                        OperationDate   = ExtendedMethod.FormatDate(date),
                        Description     = operation.description,
                        CreditBalance   = sum,
                        IndebtBalance   = 0,
                        Credit_Movement = float.Parse(operation.value.ToString()),
                        InDebt_Movement = 0,
                        state           = false,
                        ABalance        = float.Parse(sub_Account.ABalance.ToString())
                    });
                }
                else//مصروف
                {
                    Account_Operations_List.Add(new AccountOperationsGrd()
                    {
                        OperationID     = operation.ID,
                        OperationDate   = ExtendedMethod.FormatDate(date),
                        Description     = operation.description,
                        CreditBalance   = 0,
                        IndebtBalance   = sum,
                        Credit_Movement = 0,
                        InDebt_Movement = float.Parse(operation.value.ToString()),
                        state           = true,
                        ABalance        = float.Parse(sub_Account.ABalance.ToString())
                    });
                }
            }
            Account_Operations_List = Account_Operations_List.OrderBy(o => o.OperationDate).ToList();
            string Todate = ReformateDateFromPicker(ToDateTxt.Text); //DateTime.Parse(ToDateTxt.Text).Year + "-" + DateTime.Parse(ToDateTxt.Text).Month + "-" + DateTime.Parse(ToDateTxt.Text).Day;

            FinalGrd.AddRange(Account_Operations_List.Where(o => o.OperationDate <= ExtendedMethod.FormatDate(Todate)));
            ////FinalGrd.AddRange(Account_Operations_List.Where(o => o.OperationDate >= DateTime.Parse(fromdate) & o.OperationDate <= DateTime.Parse(Todate)));
            //FinalGrd.Add(new AccountOperationsGrd()
            //{
            //    CreditBalance = FinalGrd.Sum(g => g.CreditBalance),
            //    Credit_Movement = FinalGrd.Sum(g => g.Credit_Movement),
            //    IndebtBalance = FinalGrd.Sum(g => g.IndebtBalance),
            //    InDebt_Movement = FinalGrd.Sum(g => g.InDebt_Movement),
            //    OperationID = 0,
            //    Description = "",
            //    OperationDate = FinalGrd.LastOrDefault().OperationDate
            //});

            float lastBalance = FinalGrd.FirstOrDefault().state == true ? (FinalGrd.FirstOrDefault().CreditBalance) + (FinalGrd.Sum(c => c.Credit_Movement)) - (FinalGrd.Sum(c => c.InDebt_Movement)) :
                                (FinalGrd.FirstOrDefault().IndebtBalance) + (FinalGrd.Sum(c => c.InDebt_Movement)) - (FinalGrd.Sum(c => c.Credit_Movement));

            if (sub_Account.BType == "مدين")
            {
                Account_Operations = new AccountOperationsGrd()
                {
                    CreditBalance   = FinalGrd.Sum(g => g.CreditBalance),
                    Credit_Movement = FinalGrd.Sum(g => g.Credit_Movement),
                    IndebtBalance   = FinalGrd.Sum(g => g.IndebtBalance),
                    InDebt_Movement = FinalGrd.Sum(g => g.InDebt_Movement),
                    OperationID     = 0,
                    Description     = AccountDropID.SelectedItem.Text,
                    OperationDate   = FinalGrd.LastOrDefault().OperationDate,
                    ABalance        = float.Parse(sub_Account.ABalance.ToString()),
                    LastBalance     = lastBalance
                };
            }
            else
            {
                Account_Operations = new AccountOperationsGrd()
                {
                    CreditBalance   = FinalGrd.Sum(g => g.CreditBalance),
                    Credit_Movement = FinalGrd.Sum(g => g.Credit_Movement),
                    IndebtBalance   = FinalGrd.Sum(g => g.IndebtBalance),
                    InDebt_Movement = FinalGrd.Sum(g => g.InDebt_Movement),
                    OperationID     = 0,
                    Description     = AccountDropID.SelectedItem.Text,
                    OperationDate   = FinalGrd.LastOrDefault().OperationDate,
                    ABalance        = -float.Parse(sub_Account.ABalance.ToString()),
                    LastBalance     = lastBalance
                };
            }

            FinalGrd.Clear();
            FinalGrd.Add(Account_Operations);
            FinalGrd1.Add(Account_Operations);
            AccountGrd.DataSource = FinalGrd1; //Account_Operations_List.Where(o=>o.OperationDate >= DateTime.Parse(FromDateTxt.Text) &  o.OperationDate <= DateTime.Parse(ToDateTxt.Text));
            AccountGrd.DataBind();
        }
コード例 #2
0
        public void Calc_Operation()
        {
            attemptValue      = 0;
            Account           = new SubAccount();
            Khazna_Moved_List = new List <Entry>();

            Khazna_Moved = new Entry();



            Khazna_Moved_List = db.Entry.ToList().Where(o => o.SubAccount_id == int.Parse(AccountDropID.SelectedValue) & (
                                                            o.Date >= ExtendedMethod.FormatDate(FromDateTxt.Text) & o.Date <= ExtendedMethod.FormatDate(ToDateTxt.Text))).ToList();// Khazna_Moved.GetEntry_ByAccountIDByDate(
            // int.Parse(AccountDropID.SelectedValue), FromDateTxt.Text, ToDateTxt.Text);



            SubAccount sub_Account = new SubAccount();

            sub_Account = db.SubAccount.ToList().FirstOrDefault(o => o.ID == int.Parse(AccountDropID.SelectedValue));
            //   sub_Account.GetSubAccount_ByID(int.Parse(AccountDropID.SelectedValue)).ElementAtOrDefault(0);
            float Account_Sum = float.Parse(sub_Account.ABalance.ToString());

            Account_Operations           = new AccountOperationsGrd();
            AccountOperations_List       = new List <AccountOperationsGrd>();
            Account_Mony_Operations_List = new List <Entry>();
            Account_Operations_List      = new List <AccountOperationsGrd>();
            List <AccountOperationsGrd> FinalGrd = new List <AccountOperationsGrd>();
            List <AccountOperationsGrd> LastGrd  = new List <AccountOperationsGrd>();

            //  DateTime.Parse(operation.Date.ToString()).Year
            //DateTime RD= DateTime.ParseExact(sub_Account.RegisterDate.ToString(), "yyyy-MM-dd", null);

            if (sub_Account.BType == "دائن")
            {
                FinalGrd.Add(new AccountOperationsGrd()
                {
                    OperationID   = 0,
                    OperationDate = (DateTime)sub_Account.RegisterDate,

                    CreditBalance   = float.Parse(sub_Account.ABalance.ToString()),
                    Credit_Movement = 0,
                    IndebtBalance   = 0,
                    InDebt_Movement = 0,
                    Description     = "رصيد افتتاحى",
                    State           = sub_Account.BType
                });
            }
            else
            {
                FinalGrd.Add(new AccountOperationsGrd()
                {
                    OperationID   = 0,
                    OperationDate = (DateTime)sub_Account.RegisterDate,

                    CreditBalance   = 0,
                    Credit_Movement = 0,
                    IndebtBalance   = float.Parse(sub_Account.ABalance.ToString()),
                    InDebt_Movement = 0,
                    Description     = "رصيد افتتاحى",
                    State           = sub_Account.BType
                });
            }

            //  LastGrd.Add(FinalGrd[0]);
            //كل العمليات مع الخزنة الخاصة بaccount
            foreach (var Khazna in Khazna_Moved_List)
            {
                Account_Mony_Operations_List.Add(new Entry
                {
                    ID            = (int)Khazna.EntryID,
                    status        = Khazna.status,
                    value         = Khazna.value,
                    description   = Khazna.description,
                    SubAccount_id = Khazna.SubAccount_id,
                    Date          = Khazna.Date
                });
            }



            // Account_Mony_Operations_List.OrderBy(a => a.Date);


            //Concatination//////////////////////////////////////////////////////////////////////////////////////////////////////////

            ConcatenationLists(Account_Mony_Operations_List, Account_Operations_List, Account_Sum);
            //الشغل على Account_Operations_List
            int i = 1;

            Account_Operations_List = Account_Operations_List.OrderBy(o => o.OperationDate).ToList();
            attemptValue            = FinalGrd[0].State == "دائن" ? FinalGrd[0].CreditBalance : FinalGrd[0].IndebtBalance;
            string CurrentState = "";

            foreach (var operation in Account_Operations_List)
            {
                //CurrentState = FinalGrd[i - 1].State == "مدين" ? Math.Sign(attemptValue + operation.InDebt_Movement - operation.Credit_Movement) >= 0 ? "مدين" : "دائن" :
                //     Math.Sign(attemptValue +  operation.Credit_Movement- operation.InDebt_Movement) >= 0 ? "دائن" : "مدين";

                if (FinalGrd[i - 1].State == "مدين")
                {
                    if (operation.InDebt_Movement > 0)
                    {
                        attemptValue = Math.Abs(attemptValue + operation.InDebt_Movement - operation.Credit_Movement);
                        if (attemptValue > 0)
                        {
                            CurrentState = "مدين";
                        }
                        else
                        {
                            CurrentState = "دائن";
                        }
                    }
                    else
                    {
                        attemptValue = (attemptValue - operation.Credit_Movement + operation.InDebt_Movement);
                        if (attemptValue > 0)
                        {
                            CurrentState = "مدين";
                        }
                        else
                        {
                            CurrentState = "دائن";
                            attemptValue = -attemptValue;
                        }
                    }
                }
                else
                {
                    if (operation.Credit_Movement > 0)
                    {
                        attemptValue = Math.Abs(attemptValue + operation.Credit_Movement - operation.InDebt_Movement);
                        if (attemptValue > 0)
                        {
                            CurrentState = "دائن";
                        }
                        else
                        {
                            CurrentState = "مدين";
                        }
                    }
                    else
                    {
                        attemptValue = (attemptValue - operation.InDebt_Movement + operation.Credit_Movement);
                        if (attemptValue > 0)
                        {
                            CurrentState = "دائن";
                        }
                        else
                        {
                            CurrentState = "مدين";
                            attemptValue = -attemptValue;
                        }
                    }
                }
                if (CurrentState == "دائن")
                {
                    FinalGrd.Add(new AccountOperationsGrd()
                    {
                        CreditBalance   = attemptValue,
                        Credit_Movement = operation.Credit_Movement,
                        IndebtBalance   = operation.IndebtBalance,
                        InDebt_Movement = operation.InDebt_Movement,
                        Description     = operation.Description,
                        OperationDate   = operation.OperationDate,
                        OperationID     = operation.OperationID,
                        State           = "دائن"
                    });
                }
                else
                {
                    //if (operation.InDebt_Movement  > 0)
                    //{
                    //    attemptValue = Math.Abs(attemptValue + operation.InDebt_Movement - operation.Credit_Movement);
                    //}
                    //else
                    //{
                    //    attemptValue = Math.Abs(attemptValue + operation.Credit_Movement - operation.InDebt_Movement);
                    //}

                    FinalGrd.Add(new AccountOperationsGrd()
                    {
                        CreditBalance   = operation.CreditBalance,
                        Credit_Movement = operation.Credit_Movement,
                        IndebtBalance   = attemptValue,// operation.IndebtBalance,
                        InDebt_Movement = operation.InDebt_Movement,
                        Description     = operation.Description,
                        OperationDate   = operation.OperationDate,
                        OperationID     = operation.OperationID,
                        State           = "مدين"
                    });
                }



                i++;
            }



            ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            // Account_Operations_List = Account_Operations_List.OrderBy(o => o.OperationDate).ToList();
            string fromdate = ReformateDateFromPicker(FromDateTxt.Text); //DateTime.Parse(FromDateTxt.Text).Year + "-" + DateTime.Parse(FromDateTxt.Text).Month + "-" + DateTime.Parse(FromDateTxt.Text).Day;
            string Todate   = ReformateDateFromPicker(ToDateTxt.Text);   //DateTime.Parse(ToDateTxt.Text).Year + "-" + DateTime.Parse(ToDateTxt.Text).Month + "-" + DateTime.Parse(ToDateTxt.Text).Day;

            LastGrd.Add(FinalGrd.Where(o => o.OperationDate < ExtendedMethod.FormatDate(fromdate)).LastOrDefault());
            if (LastGrd.Last() == null)
            {
                LastGrd.Remove(LastGrd.Last());
            }
            LastGrd.AddRange(FinalGrd.Where(o => o.OperationDate >= ExtendedMethod.FormatDate(fromdate) & o.OperationDate <= ExtendedMethod.FormatDate(Todate)));

            AccountGrd.DataSource = LastGrd;// FinalGrd.Where(o => o.OperationDate < DateTime.Parse(fromdate)).LastOrDefault() && o.OperationDate >= DateTime.Parse(fromdate) & o.OperationDate <= DateTime.Parse(Todate) ); //Account_Operations_List.Where(o=>o.OperationDate >= DateTime.Parse(FromDateTxt.Text) &  o.OperationDate <= DateTime.Parse(ToDateTxt.Text));
            AccountGrd.DataBind();
        }
コード例 #3
0
        public void Calc_Operation()
        {
            attemptValue      = 0;
            Account           = new SubAccount();
            Khazna_Moved_List = new List <KhznaMoved>();
            Bank_Moved_List   = new List <BankMoved>();
            Sales_Order_List  = new List <SalesInvoice>();
            Khazna_Moved      = new KhznaMoved();
            Bank_Moved        = new BankMoved();
            Sale_Order        = new SalesInvoice();

            // Khazna_Moved_List = Khazna_Moved.GetKhznaMoved_ByAccountIDByDate(int.Parse(AccountDropID.SelectedValue),FromDateTxt.Text,ToDateTxt.Text);
            // Bank_Moved_List = Bank_Moved.BankMoved_Between_Date_ForAccount(FromDateTxt.Text,ToDateTxt.Text, int.Parse(AccountDropID.SelectedValue));


            Khazna_Moved_List = db.KhznaMoved.ToList().Where(o => o.FinancialPostitionType == "عربة").ToList();                  //  Khazna_Moved.GetKhznaMoved_ByAccountID(int.Parse(AccountDropID.SelectedValue));
            Bank_Moved_List   = db.BankMoved.ToList().Where(o => o.FinancialPostitionType == "عربة").ToList();                   //Bank_Moved.GetBankMoved_ByAccountID(int.Parse(AccountDropID.SelectedValue));
            Sales_Order_List  = db.SalesInvoice.ToList().Where(c => c.CarId == int.Parse(AccountDropID.SelectedValue)).ToList(); //Sale_Order.GetOrdersByCustID(int.Parse(AccountDropID.SelectedValue));


            // SubAccount sub_Account = new SubAccount();
            // sub_Account = db.SubAccount.ToList().FirstOrDefault(s => s.ID == int.Parse(AccountDropID.SelectedValue));//  sub_Account.GetSubAccount_ByID(int.Parse(AccountDropID.SelectedValue)).ElementAtOrDefault(0);
            float Account_Sum = 0;//float.Parse(sub_Account.ABalance.ToString());

            Account_Operations           = new AccountOperationsGrd();
            AccountOperations_List       = new List <AccountOperationsGrd>();
            Account_Mony_Operations_List = new List <KhznaMoved>();
            Account_Operations_List      = new List <AccountOperationsGrd>();
            List <AccountOperationsGrd> FinalGrd = new List <AccountOperationsGrd>();
            List <AccountOperationsGrd> LastGrd  = new List <AccountOperationsGrd>();

            //  DateTime.Parse(operation.Date.ToString()).Year
            //DateTime RD= DateTime.ParseExact(sub_Account.RegisterDate.ToString(), "yyyy-MM-dd", null);

            //if (sub_Account.BType == "دائن")
            //{
            //    FinalGrd.Add(new AccountOperationsGrd()
            //    {
            //        OperationID = 0,
            //        OperationDate = (DateTime)sub_Account.RegisterDate,

            //        CreditBalance = float.Parse(sub_Account.ABalance.ToString()),
            //        Credit_Movement = 0,
            //        IndebtBalance = 0,
            //        InDebt_Movement = 0,
            //        Description = "رصيد افتتاحى",
            //        State = sub_Account.BType

            //    });
            //}
            //else
            //{
            //    FinalGrd.Add(new AccountOperationsGrd()
            //    {

            //        OperationID = 0,
            //        OperationDate = (DateTime)sub_Account.RegisterDate,

            //        CreditBalance = 0,
            //        Credit_Movement = 0,
            //        IndebtBalance = float.Parse(sub_Account.ABalance.ToString()),
            //        InDebt_Movement = 0,
            //        Description = "رصيد افتتاحى",
            //        State = sub_Account.BType
            //    });
            //}

            //  LastGrd.Add(FinalGrd[0]);
            //كل العمليات مع الخزنة الخاصة بaccount
            foreach (var Khazna in Khazna_Moved_List)
            {
                Account_Mony_Operations_List.Add(new KhznaMoved
                {
                    ID          = Khazna.ID,
                    state       = Khazna.state == true ? false : true,
                    Value       = Khazna.Value,
                    Description = Khazna.Description,
                    AccountID   = Khazna.AccountID,
                    Date        = Khazna.Date
                });
            }

            //كل العمليات الواقعة على التعاملات البنكية
            foreach (var bank in Bank_Moved_List)
            {
                Account_Mony_Operations_List.Add(new KhznaMoved
                {
                    ID          = bank.ID,
                    state       = bank.state == true ? false : true,
                    Value       = bank.Value,
                    Description = bank.Description,
                    AccountID   = bank.AccountID,
                    Date        = bank.Date
                });
            }

            //فواتير البيع
            foreach (var Sale in Sales_Order_List)
            {
                Account_Mony_Operations_List.Add(new KhznaMoved
                {
                    ID          = int.Parse(Sale.Id),
                    state       = bool.Parse(Sale.PurchaseType.ToString()),
                    Value       = decimal.Parse(Sale.Total.ToString()),
                    Description = bool.Parse(Sale.PurchaseType.ToString()) ? "اذن صرف" : "مرتجع بضاعة",
                    AccountID   = Sale.CarId,
                    Date        = DateTime.Parse(Sale.InvoiceDate.ToString(), CultureInfo.CreateSpecificCulture("ar-EG"))
                });
            }

            // Account_Mony_Operations_List.OrderBy(a => a.Date);


            //Concatination//////////////////////////////////////////////////////////////////////////////////////////////////////////

            ConcatenationLists(Account_Mony_Operations_List, Account_Operations_List, Account_Sum);
            //الشغل على Account_Operations_List
            int i = 1;

            Account_Operations_List = Account_Operations_List.OrderBy(o => o.OperationDate).ToList();
            FinalGrd.Add(Account_Operations_List[0]);
            Account_Operations_List.RemoveAt(0);
            attemptValue = FinalGrd[0].State == "دائن" ? FinalGrd[0].CreditBalance : FinalGrd[0].IndebtBalance;
            string CurrentState = "";

            foreach (var operation in Account_Operations_List)
            {
                //CurrentState = FinalGrd[i - 1].State == "مدين" ? Math.Sign(attemptValue + operation.InDebt_Movement - operation.Credit_Movement) >= 0 ? "مدين" : "دائن" :
                //     Math.Sign(attemptValue +  operation.Credit_Movement- operation.InDebt_Movement) >= 0 ? "دائن" : "مدين";

                if (FinalGrd[i - 1].State == "مدين")
                {
                    if (operation.InDebt_Movement > 0)
                    {
                        attemptValue = Math.Abs(attemptValue + operation.InDebt_Movement - operation.Credit_Movement);
                        if (attemptValue > 0)
                        {
                            CurrentState = "مدين";
                        }
                        else
                        {
                            CurrentState = "دائن";
                        }
                    }
                    else
                    {
                        attemptValue = (attemptValue - operation.Credit_Movement + operation.InDebt_Movement);
                        if (attemptValue > 0)
                        {
                            CurrentState = "مدين";
                        }
                        else
                        {
                            CurrentState = "دائن";
                            attemptValue = -attemptValue;
                        }
                    }
                }
                else
                {
                    if (operation.Credit_Movement > 0)
                    {
                        attemptValue = Math.Abs(attemptValue + operation.Credit_Movement - operation.InDebt_Movement);
                        if (attemptValue > 0)
                        {
                            CurrentState = "دائن";
                        }
                        else
                        {
                            CurrentState = "مدين";
                        }
                    }
                    else
                    {
                        attemptValue = (attemptValue - operation.InDebt_Movement + operation.Credit_Movement);
                        if (attemptValue > 0)
                        {
                            CurrentState = "دائن";
                        }
                        else
                        {
                            CurrentState = "مدين";
                            attemptValue = -attemptValue;
                        }
                    }
                }
                if (CurrentState == "دائن")
                {
                    FinalGrd.Add(new AccountOperationsGrd()
                    {
                        CreditBalance   = attemptValue,
                        Credit_Movement = operation.Credit_Movement,
                        IndebtBalance   = operation.IndebtBalance,
                        InDebt_Movement = operation.InDebt_Movement,
                        Description     = operation.Description,
                        OperationDate   = operation.OperationDate,
                        OperationID     = operation.OperationID,
                        State           = "دائن",
                        OperationType   = operation.OperationType
                    });
                }
                else
                {
                    //if (operation.InDebt_Movement  > 0)
                    //{
                    //    attemptValue = Math.Abs(attemptValue + operation.InDebt_Movement - operation.Credit_Movement);
                    //}
                    //else
                    //{
                    //    attemptValue = Math.Abs(attemptValue + operation.Credit_Movement - operation.InDebt_Movement);
                    //}

                    FinalGrd.Add(new AccountOperationsGrd()
                    {
                        CreditBalance   = operation.CreditBalance,
                        Credit_Movement = operation.Credit_Movement,
                        IndebtBalance   = attemptValue,// operation.IndebtBalance,
                        InDebt_Movement = operation.InDebt_Movement,
                        Description     = operation.Description,
                        OperationDate   = operation.OperationDate,
                        OperationID     = operation.OperationID,
                        State           = "مدين",
                        OperationType   = operation.OperationType
                    });
                }



                i++;
            }



            ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            // Account_Operations_List = Account_Operations_List.OrderBy(o => o.OperationDate).ToList();
            string fromdate = FromDateTxt.Text; //DateTime.Parse(FromDateTxt.Text).Year + "-" + DateTime.Parse(FromDateTxt.Text).Month + "-" + DateTime.Parse(FromDateTxt.Text).Day;
            string Todate   = ToDateTxt.Text;   //DateTime.Parse(ToDateTxt.Text).Year + "-" + DateTime.Parse(ToDateTxt.Text).Month + "-" + DateTime.Parse(ToDateTxt.Text).Day;
            var    mydate   = DateTime.Parse(fromdate, CultureInfo.CreateSpecificCulture("ar-EG"));
            var    mydateTo = DateTime.Parse(Todate, CultureInfo.CreateSpecificCulture("ar-EG"));

            LastGrd.Add(FinalGrd.Where(o => o.OperationDate <= mydate).LastOrDefault());
            if (LastGrd.Last() == null)
            {
                LastGrd.Remove(LastGrd.Last());
            }
            LastGrd.AddRange(FinalGrd.Where(o => o.OperationDate >= mydate & o.OperationDate <= mydateTo));
            AccountGrd.DataSource = LastGrd;// FinalGrd.Where(o => o.OperationDate < DateTime.Parse(fromdate)).LastOrDefault() && o.OperationDate >= DateTime.Parse(fromdate) & o.OperationDate <= DateTime.Parse(Todate) ); //Account_Operations_List.Where(o=>o.OperationDate >= DateTime.Parse(FromDateTxt.Text) &  o.OperationDate <= DateTime.Parse(ToDateTxt.Text));
            AccountGrd.DataBind();
        }
コード例 #4
0
        public void Calc_Operation()
        {
            attemptValue          = 0;
            Account               = new SubAccount();
            Khazna_Moved_List     = new List <KhznaMoved>();
            Bank_Moved_List       = new List <BankMoved>();
            Purchase_Invoice_List = new List <PurchaseInvoice>();
            Khazna_Moved          = new KhznaMoved();
            Bank_Moved            = new BankMoved();
            Purchase_Invoice      = new PurchaseInvoice();

            // Khazna_Moved_List = Khazna_Moved.GetKhznaMoved_ByAccountIDByDate(int.Parse(AccountDropID.SelectedValue),FromDateTxt.Text,ToDateTxt.Text);
            // Bank_Moved_List = Bank_Moved.BankMoved_Between_Date_ForAccount(FromDateTxt.Text,ToDateTxt.Text, int.Parse(AccountDropID.SelectedValue));

            Khazna_Moved_List = db.KhznaMoved.ToList().Where(o => o.AccountID == int.Parse(AccountDropID.SelectedValue)).ToList();
            // Khazna_Moved_List = Khazna_Moved.GetKhznaMoved_ByAccountID(int.Parse(AccountDropID.SelectedValue));

            Bank_Moved_List       = db.BankMoved.ToList().Where(o => o.AccountID == int.Parse(AccountDropID.SelectedValue)).ToList();
            Purchase_Invoice_List = db.PurchaseInvoice.ToList().Where(p => p.SubAccountId == int.Parse(AccountDropID.SelectedValue)).ToList();
            //Purchase_Invoice.GetPurchaseInvoiceBySubID(int.Parse(AccountDropID.SelectedValue));


            SubAccount sub_Account = new SubAccount();

            sub_Account = db.SubAccount.ToList().FirstOrDefault(s => s.ID == int.Parse(AccountDropID.SelectedValue));//  sub_Account.GetSubAccount_ByID(int.Parse(AccountDropID.SelectedValue)).ElementAtOrDefault(0);
            float Account_Sum = float.Parse(sub_Account.ABalance.ToString());

            Account_Operations           = new AccountOperationsGrd();
            AccountOperations_List       = new List <AccountOperationsGrd>();
            Account_Mony_Operations_List = new List <KhznaMoved>();
            Account_Operations_List      = new List <AccountOperationsGrd>();
            List <AccountOperationsGrd> FinalGrd = new List <AccountOperationsGrd>();
            List <AccountOperationsGrd> LastGrd  = new List <AccountOperationsGrd>();

            //  DateTime.Parse(operation.Date.ToString()).Year
            //DateTime RD= DateTime.ParseExact(sub_Account.RegisterDate.ToString(), "yyyy-MM-dd", null);

            if (sub_Account.BType == "دائن")
            {
                FinalGrd.Add(new AccountOperationsGrd()
                {
                    OperationID   = 0,
                    OperationDate = (DateTime)sub_Account.RegisterDate,

                    CreditBalance   = float.Parse(sub_Account.ABalance.ToString()),
                    Credit_Movement = 0,
                    IndebtBalance   = 0,
                    InDebt_Movement = 0,
                    Description     = "رصيد افتتاحى",
                    State           = sub_Account.BType
                });
            }
            else
            {
                FinalGrd.Add(new AccountOperationsGrd()
                {
                    OperationID   = 0,
                    OperationDate = (DateTime)sub_Account.RegisterDate,

                    CreditBalance   = 0,
                    Credit_Movement = 0,
                    IndebtBalance   = float.Parse(sub_Account.ABalance.ToString()),
                    InDebt_Movement = 0,
                    Description     = "رصيد افتتاحى",
                    State           = sub_Account.BType
                });
            }

            //  LastGrd.Add(FinalGrd[0]);
            //كل العمليات مع الخزنة الخاصة بaccount
            foreach (var Khazna in Khazna_Moved_List)
            {
                Account_Mony_Operations_List.Add(new KhznaMoved
                {
                    ID          = Khazna.ID,
                    state       = Khazna.state == true ? false : true,
                    Value       = Khazna.Value,
                    Description = Khazna.Description,
                    AccountID   = Khazna.AccountID,
                    Date        = Khazna.Date
                });
            }

            //كل العمليات الواقعة على التعاملات البنكية
            foreach (var bank in Bank_Moved_List)
            {
                Account_Mony_Operations_List.Add(new KhznaMoved
                {
                    ID          = bank.ID,
                    state       = bank.state == true ? false : true,
                    Value       = bank.Value,
                    Description = bank.Description,
                    AccountID   = bank.AccountID,
                    Date        = bank.Date
                });
            }


            //فواتير الشراء
            foreach (var Pur in Purchase_Invoice_List)
            {
                Account_Mony_Operations_List.Add(new KhznaMoved
                {
                    ID          = int.Parse(Pur.Id),
                    state       = (bool)Pur.PurchaseType,
                    Value       = decimal.Parse(Pur.Total.ToString()),
                    Description = Pur.PurchaseType == true?"شراء":"مرتجع شراء",
                    AccountID   = Pur.SubAccountId,
                    Date        = DateTime.Parse(Pur.InvoiceDate.ToString(), CultureInfo.CreateSpecificCulture("ar-EG"))
                });
            }
            List <TransportCommand> TransportComandList = new List <TransportCommand>();

            TransportComandList = db.TransportCommand.ToList();
            //اوامر النقل
            foreach (var Pur in TransportComandList)
            {
                Account_Mony_Operations_List.Add(new KhznaMoved
                {
                    ID          = Pur.Id,
                    state       = true,
                    Value       = decimal.Parse(Pur.TotalTransportPrice.ToString()),
                    Description = "امر نقل",
                    AccountID   = Pur.SubAccVendorId,
                    Date        = ExtendedMethod.FormatDate(ExtendedMethod.ParseDateToString(DateTime.Parse(Pur.TransportCommandTime.ToString())))
                });
            }


            // Account_Mony_Operations_List.OrderBy(a => a.Date);


            //Concatination//////////////////////////////////////////////////////////////////////////////////////////////////////////

            ConcatenationLists(Account_Mony_Operations_List, Account_Operations_List, Account_Sum);
            //الشغل على Account_Operations_List
            int i = 1;

            Account_Operations_List = Account_Operations_List.OrderBy(o => o.OperationDate).ToList();
            attemptValue            = FinalGrd[0].State == "دائن" ? FinalGrd[0].CreditBalance : FinalGrd[0].IndebtBalance;
            string CurrentState = "";

            foreach (var operation in Account_Operations_List)
            {
                //CurrentState = FinalGrd[i - 1].State == "مدين" ? Math.Sign(attemptValue + operation.InDebt_Movement - operation.Credit_Movement) >= 0 ? "مدين" : "دائن" :
                //     Math.Sign(attemptValue +  operation.Credit_Movement- operation.InDebt_Movement) >= 0 ? "دائن" : "مدين";

                if (FinalGrd[i - 1].State == "مدين")
                {
                    if (operation.InDebt_Movement > 0)
                    {
                        attemptValue = Math.Abs(attemptValue + operation.InDebt_Movement - operation.Credit_Movement);
                        if (attemptValue > 0)
                        {
                            CurrentState = "مدين";
                        }
                        else
                        {
                            CurrentState = "دائن";
                        }
                    }
                    else
                    {
                        attemptValue = (attemptValue - operation.Credit_Movement + operation.InDebt_Movement);
                        if (attemptValue > 0)
                        {
                            CurrentState = "مدين";
                        }
                        else
                        {
                            CurrentState = "دائن";
                            attemptValue = -attemptValue;
                        }
                    }
                }
                else
                {
                    if (operation.Credit_Movement > 0)
                    {
                        attemptValue = Math.Abs(attemptValue + operation.Credit_Movement - operation.InDebt_Movement);
                        if (attemptValue > 0)
                        {
                            CurrentState = "دائن";
                        }
                        else
                        {
                            CurrentState = "مدين";
                        }
                    }
                    else
                    {
                        attemptValue = (attemptValue - operation.InDebt_Movement + operation.Credit_Movement);
                        if (attemptValue > 0)
                        {
                            CurrentState = "دائن";
                        }
                        else
                        {
                            CurrentState = "مدين";
                            attemptValue = -attemptValue;
                        }
                    }
                }
                if (CurrentState == "دائن")
                {
                    FinalGrd.Add(new AccountOperationsGrd()
                    {
                        CreditBalance   = attemptValue,
                        Credit_Movement = operation.Credit_Movement,
                        IndebtBalance   = operation.IndebtBalance,
                        InDebt_Movement = operation.InDebt_Movement,
                        Description     = operation.Description,
                        OperationDate   = operation.OperationDate,
                        OperationID     = operation.OperationID,
                        State           = "دائن"
                    });
                }
                else
                {
                    //if (operation.InDebt_Movement  > 0)
                    //{
                    //    attemptValue = Math.Abs(attemptValue + operation.InDebt_Movement - operation.Credit_Movement);
                    //}
                    //else
                    //{
                    //    attemptValue = Math.Abs(attemptValue + operation.Credit_Movement - operation.InDebt_Movement);
                    //}

                    FinalGrd.Add(new AccountOperationsGrd()
                    {
                        CreditBalance   = operation.CreditBalance,
                        Credit_Movement = operation.Credit_Movement,
                        IndebtBalance   = attemptValue,// operation.IndebtBalance,
                        InDebt_Movement = operation.InDebt_Movement,
                        Description     = operation.Description,
                        OperationDate   = operation.OperationDate,
                        OperationID     = operation.OperationID,
                        State           = "مدين"
                    });
                }



                i++;
            }



            ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


            string fromdate = ReformateDateFromPicker(FromDateTxt.Text); // DateTime.Parse(FromDateTxt.Text).Year + "-" + DateTime.Parse(FromDateTxt.Text).Month + "-" + DateTime.Parse(FromDateTxt.Text).Day;
            string Todate   = ReformateDateFromPicker(ToDateTxt.Text);   //DateTime.Parse(ToDateTxt.Text).Year + "-" + DateTime.Parse(ToDateTxt.Text).Month + "-" + DateTime.Parse(ToDateTxt.Text).Day;
            var    mydate   = DateTime.Parse(fromdate, CultureInfo.CreateSpecificCulture("ar-EG"));
            var    mydateTo = DateTime.Parse(Todate, CultureInfo.CreateSpecificCulture("ar-EG"));

            LastGrd.Add(FinalGrd.Where(o => o.OperationDate < mydate).LastOrDefault());
            if (LastGrd.Last() == null)
            {
                LastGrd.Remove(LastGrd.Last());
            }
            LastGrd.AddRange(FinalGrd.Where(o => o.OperationDate >= mydate & o.OperationDate <= mydateTo));
            AccountGrd.DataSource = LastGrd;// FinalGrd.Where(o => o.OperationDate < DateTime.Parse(fromdate)).LastOrDefault() && o.OperationDate >= DateTime.Parse(fromdate) & o.OperationDate <= DateTime.Parse(Todate) ); //Account_Operations_List.Where(o=>o.OperationDate >= DateTime.Parse(FromDateTxt.Text) &  o.OperationDate <= DateTime.Parse(ToDateTxt.Text));
            AccountGrd.DataBind();

            GridView1.DataSource = LastGrd;
            GridView1.DataBind();
            Textbox1.Text      = FromDateTxt.Text;
            Textbox2.Text      = ToDateTxt.Text;
            Dropdownlist1.Text = AccountDropID.SelectedItem.Text;
        }