private void toolStripMenuItem3_Click(object sender, EventArgs e)
        {
            string _str = "Are You Sure You Want To Delete This Voucher";

            if (!dbm.WarningMessage(_str, "Delete Voucher Warning"))
            {
                return;
            }
            var _obj = fGrid.SelectedRows[0].Tag as ic.expense_transC;

            var m_partition = string.Format("{0}{1}", _obj.exp_date.Value.Year, _obj.exp_date.Value.Month).ToInt32();

            datam.GetMonthExpenses(m_partition);
            var nlist = from k in datam.DATA_MONTH_EXPENSES[m_partition].Values
                        where k.voucher_id == _obj.voucher_id & k.voucher_status == em.voucher_statusS.valid
                        select k;

            if (_obj != null)
            {
                using (var xd = new xing())
                {
                    long _trans_id = xd.ExecuteScalarInt64(string.Format("select transaction_id from acc_expense_trans_tb where un_id={0} and voucher_status={1}", _obj.un_id, em.voucher_statusS.valid.ToByte()));
                    if (_trans_id > 0)
                    {
                        _str = string.Format("update acc_expense_vouchers_tb set status={0},{1},fs_time_stamp={2} where voucher_id={3} and status={4}", em.voucher_statusS.cancelled.ToByte(), dbm.ETS, SQLH.UnixStamp, _obj.voucher_id, em.voucher_statusS.valid.ToByte());
                        xd.UpdateFsTimeStamp("acc_expense_vouchers_tb");
                        if (xd.SingleUpdateCommand(_str))
                        {
                            _str = string.Format("select * from journal_tb where transaction_id in ({0})",
                                                 string.Format("select transaction_id from acc_expense_trans_tb where un_id={0} and voucher_status={1}", _obj.un_id, em.voucher_statusS.valid.ToByte()));
                            accn.DeleteJournal(_str, xd);
                            //

                            foreach (var _expense in nlist)
                            {
                                _expense.voucher_status = em.voucher_statusS.cancelled;
                                xd.SingleUpdateCommandALL("acc_expense_trans_tb", new string[]
                                {
                                    "voucher_status",
                                    "un_id"
                                }, new object[]
                                {
                                    em.voucher_statusS.cancelled.ToByte(),
                                    _expense.un_id
                                }, 1);
                                //
                                xd.SingleUpdateCommandALL("acc_expense_trans_child_tb", new string[]
                                {
                                    "voucher_status",
                                    "trans_id"
                                }, new object[]
                                {
                                    em.voucher_statusS.cancelled.ToByte(),
                                    _expense.un_id
                                }, 1);
                                if (datam.DATA_EXPENSE_ACCOUNTS[_expense.exp_acc_id].exp_acc_type == em.exp_acc_typeS.system_offertory_payment |
                                    datam.DATA_EXPENSE_ACCOUNTS[_expense.exp_acc_id].exp_acc_type == em.exp_acc_typeS.trust_fund)
                                {
                                    accn.DeleteExpenseAccountsPayable(xd, _trans_id);
                                }
                                if (!string.IsNullOrEmpty(_expense.w_dr_data))
                                {
                                    var _cheques = _expense.w_dr_data.Split(new char[] { ',' });
                                    xd.UpdateFsTimeStamp("acc_bank_withdraw_tb");
                                    string _st = null;
                                    foreach (var t in _cheques)
                                    {
                                        var _val = t.Split(new char[] { ':' });
                                        if (xd.ExecuteScalarInt(string.Format("select transfer_id from acc_bank_withdraw_tb where wdr_id={0}", _val[0].ToInt32())) > 0)
                                        {
                                            MessageBox.Show("You Have Already Closed This Cheque, This Operation Cannot Be Carried Out", "Closed Cheque Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                            xd.RollBackTransaction();
                                            return;
                                        }
                                        _st = string.Format("update acc_bank_withdraw_tb set cheque_balance=(cheque_balance+{0}),{1},fs_time_stamp={2} where wdr_id={3}", _val[1],
                                                            dbm.ETS, SQLH.UnixStamp, _val[0]);
                                        xd.InsertUpdateDelete(_st);
                                    }
                                }

                                //
                                fnn.ExecuteDeleteBase(xd, new ic.deleteBaseC()
                                {
                                    del_fs_date  = sdata.CURR_DATE,
                                    del_fs_id    = sdata.CURR_FS.fs_id,
                                    del_fs_time  = DateTime.Now.ToShortTimeString(),
                                    del_pc_us_id = sdata.PC_US_ID
                                }, "acc_expense_trans_tb", "un_id", _expense.un_id);
                                //
                                if (!string.IsNullOrEmpty(_expense.cheque_no))
                                {
                                    ic.bankAccountC _bank = datam.DATA_BANK_ACCOUNTS.Values.Where(y => y.sys_account_id == _expense.source_account_id).FirstOrDefault();
                                    xd.SingleUpdateCommandALL("acc_usedbank_cheques_tb", new string[]
                                    {
                                        "status",
                                        "bank_account_id",
                                        "cheque_no"
                                    }, new object[]
                                    {
                                        1,
                                        _bank.un_id,
                                        _expense.cheque_no
                                    }, 2);
                                }
                                fGrid.Rows.RemoveAt(fGrid.Rows[_expense.un_id.ToString()].Index);
                            }

                            xd.CommitTransaction();
                        }
                    }
                    else
                    {
                        MessageBox.Show("This Expense Record Has Already Been Deleted", "Delete Failure");
                    }
                }
                CheckForUpdates();
            }
        }
        private void buttonX1_Click(object sender, EventArgs e)
        {
            fGrid.CommitEditCurCell();
            var  _check     = new string[] { "start_date", "bank", "exp_account", "amount", };
            bool _roll_back = false;

            foreach (var k in _check)
            {
                if (fGrid.Rows[k].Cells[1].Value == null)
                {
                    MessageBox.Show("Important Field Left Blank", k);
                    fGrid.Focus();
                    fGrid.SetCurCell(k, 1);
                    return;
                }
            }

            string _str = "Are You Sure You Want To Save This Record ??";

            if (!dbm.WarningMessage(_str, "Save Warning"))
            {
                return;
            }
            buttoncreate.Enabled = false;
            buttoncancel.Enabled = false;
            fGrid.ReadOnly       = true;
            ic.bank_reconc_transC   _trans   = new ic.bank_reconc_transC();
            ic.bank_reconc_accountC _account = (fGrid.Rows["exp_account"].Cells[1].AuxValue as fnn.iGComboItemEX).Tag as ic.bank_reconc_accountC;
            ic.bankAccountC         _bank    = (fGrid.Rows["bank"].Cells[1].AuxValue as fnn.iGComboItemEX).Tag as ic.bankAccountC;

            //
            _trans.amount          = fGrid.Rows["amount"].Cells["desc"].Value.ToInt32();
            _trans.fs_date         = System.Convert.ToDateTime(fGrid.Rows["start_date"].Cells[1].AuxValue);
            _trans.fs_id           = fn.GetFSID(_trans.fs_date);
            _trans.status          = em.voucher_statusS.valid;
            _trans.m_partition_id  = string.Format("{0}{1}", _trans.fs_date.Year, _trans.fs_date.Month).ToInt32();
            _trans.br_acc_id       = _account.br_acc_id;
            _trans.sys_account_id  = _account.sys_account_id;
            _trans.bank_account_id = _bank.un_id;
            _trans.br_acc_type     = _account.br_acc_type;
            //
            if (fGrid.Rows["desc"].Cells[1].Value != null)
            {
                _trans.desc = fGrid.Rows["desc"].Cells[1].Text;
            }

            using (var xd = new xing())
            {
                #region Insert Master Payment
                //
                var _ts_id = accn.AccountsTransaction(xd, string.Format("Being Bank Reconciliation"), _trans.fs_date);
                _trans.trans_id = _ts_id;
                _trans.un_id    = xd.SingleInsertCommandTSPInt("acc_bank_reconc_trans_tb", new string[]
                {
                    "br_acc_id",
                    "amount",
                    "transaction_id",
                    "fs_date",
                    "fs_id",
                    "m_partition_id",
                    "status",
                    "sys_account_id",
                    "description",
                    "br_acc_type_id",
                    "fs_time_stamp",
                    "lch_id",
                    "bank_account_id", "pc_us_id"
                }, new object[]
                {
                    _trans.br_acc_id,
                    _trans.amount,
                    _trans.trans_id,
                    _trans.fs_date,
                    _trans.fs_id,
                    _trans.m_partition_id,
                    _trans.status.ToInt16(),
                    _trans.sys_account_id,
                    _trans.desc,
                    _trans.br_acc_type.ToInt16(),
                    0,
                    sdata.ChurchID,
                    _trans.bank_account_id, sdata.PC_US_ID
                });
                #endregion
                switch (_account.br_acc_type)
                {
                case em.bank_reconc_typeS.addition:
                {
                    // accn.JournalBook(xd, _trans.fs_date, em.j_sectionS.income, _ts_id, _account.sys_account_id, 0, 0);
                    break;
                }

                case em.bank_reconc_typeS.deduction:
                {
                    break;
                }
                }
                xd.CommitTransaction();
            }
            fGrid.ReadOnly = false;
            ClearGrid();
            m_process = _process.after_save;
            backworker.RunWorkerAsync();
        }
Esempio n. 3
0
        public static void Get_AssetLiabilityAccountStatement(xing xd, int start_fs_id, int end_fs_id, int account_id, string _account_name)
        {
            datam.InitAccount(xd);
            datam.LoadCrExpOffItems(xd);
            ic.accountC PrimaryAccount = datam.DATA_ACCOUNTS[account_id];

            switch (PrimaryAccount.account_dept_category)
            {
            case em.account_d_categoryS.Liablity:
            {
                var _cr_inc_item = datam.DATA_CR_EXP_OFFITEMS.Values.Where(k => k.gen_account_id == account_id & k._type == em.link_accTypes.creditor).FirstOrDefault();
                if (_cr_inc_item == null)
                {
                    return;
                }

                int         cg_id          = _cr_inc_item.cg_id;
                int         _income_acc_id = _cr_inc_item.account_id;
                ic.accountC _parent        = datam.DATA_ACCOUNTS[_income_acc_id].p_account_id == 0 ? null : datam.DATA_ACCOUNTS[datam.DATA_ACCOUNTS[_income_acc_id].p_account_id];
                if (_parent != null && _parent.account_id == -2360)
                {
                    ic.church_sub_unitC _unit = (from c in datam.DATA_CHURCH_SUB_UNIT.Values
                                                 where c.sys_gp_account_id == _income_acc_id
                                                 select c).FirstOrDefault();
                    if (_unit != null)
                    {
                        int _expense_acc_id = datam.DATA_CR_EXP_OFFITEMS.Values.Where(k => k.link_id == _cr_inc_item.link_id & k._type == em.link_accTypes.expense_accrued).FirstOrDefault().gen_account_id;
                        //
                        Get_OffAccountsStatement(xd, start_fs_id, end_fs_id, _unit, _account_name);
                        Get_CreditorExpenseStatement(xd, start_fs_id, end_fs_id, _expense_acc_id);
                        Get_AccountTransfers(xd, start_fs_id, end_fs_id, account_id);
                        //
                    }
                }
                else
                {
                    int _expense_acc_id = datam.DATA_CR_EXP_OFFITEMS.Values.Where(k => k.link_id == _cr_inc_item.link_id & k._type == em.link_accTypes.expense_accrued).FirstOrDefault().gen_account_id;
                    //
                    var _income_account = datam.DATA_ACCOUNTS[_income_acc_id];
                    if (_income_account.owner_type == em.AccountOwnerTypeS.CHURCH_GROUP_SHARED | _income_account.account_id == -2435)
                    {
                        cg_id = _cr_inc_item.cg_id;
                    }
                    else
                    {
                        cg_id = -1;
                    }
                    Get_OffAccountsStatement(xd, start_fs_id, end_fs_id, _income_acc_id, cg_id, _account_name);
                    Get_CreditorExpenseStatement(xd, start_fs_id, end_fs_id, _expense_acc_id);
                    Get_AccountTransfers(xd, start_fs_id, end_fs_id, account_id);
                    //
                }
                break;
            }

            case em.account_d_categoryS.Asset:
            {
                ic.accountC _account = datam.DATA_ACCOUNTS[account_id];
                switch (_account.p_account_id)
                {
                case -2499:           //accn.GetAccountByAlias("BANK_ACCOUNT").account_id:
                {
                    datam.GetBankAccounts(xd);
                    ic.bankAccountC _bank = (from k in datam.DATA_BANK_ACCOUNTS.Values
                                             where k.sys_account_id == account_id
                                             select k).FirstOrDefault();
                    if (_bank != null)
                    {
                        Get_BankingStatement(xd, start_fs_id, end_fs_id, _bank.un_id);
                        Get_BankingWithDrawStatement(xd, start_fs_id, end_fs_id, _bank.un_id);
                        Get_BankExpenseStatement(xd, start_fs_id, end_fs_id, account_id);
                    }
                    break;
                }

                case -2404:           // accn.GetAccountByAlias("UNBANKED").account_id:
                {
                    break;
                }
                }

                break;
            }
            }
        }