コード例 #1
0
ファイル: ccFee.cs プロジェクト: saeidghoreshi/partition1
        public void createNew(int bankID, decimal amount, string description, int ccCardTypeID)
        {
            using (var ctx = new AccountingLib.Models.AccContexts())
            {
                var existingFee = ctx.ccFee
                    .Where(x => x.ccCardTypeID == ccCardTypeID && x.bankID == bankID).SingleOrDefault();

                if (existingFee != null)
                {
                    ctx.ccFee.DeleteObject(existingFee);
                    ctx.SaveChanges();
                }

                var _ccFee = new AccountingLib.Models.ccFee()
                {
                    bankID = (int)bankID,
                    ccCardTypeID = (int)ccCardTypeID,
                    amount = (decimal)amount,
                    description = description
                };
                ctx.ccFee.AddObject(_ccFee);
                ctx.SaveChanges();

                /*Reload Object*/
                this.loadFeeByID(_ccFee.ID);
            }
        }
コード例 #2
0
ファイル: Invoice.cs プロジェクト: weedkiller/partition1
        private void RecordInvoicePaymentTransactions(List <int> txns, int paymentID, enums.paymentStat payStat)
        {
            using (var ctx = new AccountingLib.Models.AccContexts())
            {
                //Create Payment Action
                var payAction = new AccountingLib.Models.paymentAction()
                {
                    paymentID     = paymentID,
                    paymentStatID = (int)payStat
                };
                ctx.paymentAction.AddObject(payAction);
                ctx.SaveChanges();

                //Record Pyament Action TXNS
                foreach (var txn in txns)
                {
                    var newPayActionTxn = new paymentActionTransaction()
                    {
                        paymentActionID = payAction.ID,
                        transactionID   = txn
                    };
                    ctx.paymentActionTransaction.AddObject(newPayActionTxn);
                    ctx.SaveChanges();
                }
            }
        }
コード例 #3
0
        public void createNew(int bankID, decimal amount, string description, int ccCardTypeID)
        {
            using (var ctx = new AccountingLib.Models.AccContexts())
            {
                var existingFee = ctx.ccFee
                                  .Where(x => x.ccCardTypeID == ccCardTypeID && x.bankID == bankID).SingleOrDefault();

                if (existingFee != null)
                {
                    ctx.ccFee.DeleteObject(existingFee);
                    ctx.SaveChanges();
                }

                var _ccFee = new AccountingLib.Models.ccFee()
                {
                    bankID       = (int)bankID,
                    ccCardTypeID = (int)ccCardTypeID,
                    amount       = (decimal)amount,
                    description  = description
                };
                ctx.ccFee.AddObject(_ccFee);
                ctx.SaveChanges();

                /*Reload Object*/
                this.loadFeeByID(_ccFee.ID);
            }
        }
コード例 #4
0
ファイル: Card.cs プロジェクト: saeidghoreshi/partition1
        public void createNew(int cardTypeID)
        {
            if (this.cardNumber == null)
                throw new Exception("No Card Number Entered");
            if (this.expiryDate == null)
                throw new Exception("No Expiy Date Entered");

            using (var ctx = new AccContexts())
            using (var ts = new TransactionScope())
            {
                var newCard = new AccountingLib.Models.card()
                {
                    cardTypeID = cardTypeID,
                    cardNumber = this.cardNumber,
                    expiryDate = this.expiryDate
                };
                ctx.card.AddObject(newCard);
                ctx.SaveChanges();

                /*Reload object Props*/
                this.loadByCardID(newCard.ID);

                ts.Complete();
            }
        }
コード例 #5
0
ファイル: Entity.cs プロジェクト: weedkiller/partition1
        protected void addWalletMoney(decimal amount, string title, int currencyID)
        {
            using (var ts = new TransactionScope())
                using (var ctx = new AccountingLib.Models.AccContexts())
                {
                    //Record related transctions
                    List <int> transactions = new List <int>();
                    var        trans1       = Transaction.createNew(this.ENTITYID, (int)AssetCategories.W, +1 * (decimal)amount, currencyID);
                    transactions.Add(trans1);
                    var trans2 = Transaction.createNew(this.ENTITYID, (int)AssetCategories.CCCASH, -1 * (decimal)amount, currencyID);
                    transactions.Add(trans2);

                    //Record Wallet entity and walletEntityTransaction
                    var entityWallet = new AccountingLib.Models.entityWallet()
                    {
                        entityID   = this.ENTITYID,
                        amount     = amount,
                        title      = title,
                        currencyID = currencyID
                    };
                    ctx.entityWallet.AddObject(entityWallet);
                    ctx.SaveChanges();

                    foreach (var txn in transactions)
                    {
                        var entityWalletTxn = new AccountingLib.Models.entityWalletTransaction()
                        {
                            entityWalletID = entityWallet.ID,
                            transactionID  = txn
                        };
                        ctx.entityWalletTransaction.AddObject(entityWalletTxn);
                        ctx.SaveChanges();
                    }

                    ts.Complete();
                }
        }
コード例 #6
0
ファイル: Entity.cs プロジェクト: saeidghoreshi/partition1
        public void addCard(int cardID)
        {
            int entityID = (int)this.ENTITYID;

            using (var ctx = new AccContexts())
            {
                var person = ctx.person.Where(x => x.entityID == entityID).SingleOrDefault();
                var newEntityCard = new AccountingLib.Models.entityCard()
                {
                    entityID = this.ENTITYID,
                    CardID = cardID
                };
                ctx.entityCard.AddObject(newEntityCard);
                ctx.SaveChanges();

            }
        }
コード例 #7
0
ファイル: Invoice.cs プロジェクト: saeidghoreshi/partition1
        public invoiceService addService(int serviceID,decimal amount)
        {
            using (var ctx = new AccContexts())
            {
                var newInvoiceService= new AccountingLib.Models.invoiceService()
                {
                    invoiceID=this.invoiceID,
                    serviceID=serviceID,
                    currencyID=this.currencyID,
                    amount=amount
                };
                ctx.invoiceService.AddObject(newInvoiceService);
                ctx.SaveChanges();

                return newInvoiceService;
            }
        }
コード例 #8
0
ファイル: CCPayment.cs プロジェクト: saeidghoreshi/partition1
        public new void createNew(int payerEntityID, int payeeEntityID, decimal amount, int currencyID, int cardID)
        {
            using (var ctx = new AccContexts())
            using (var ts = new TransactionScope())
            {
                base.createNew(payerEntityID, payeeEntityID, amount, currencyID, cardID, (int)enums.extPaymentType.CreditPayment);

                var _ccPayment = new AccountingLib.Models.ccPayment()
                {
                    extPaymentID=base.extPaymentID
                };
                ctx.ccPayment.AddObject(_ccPayment);
                ctx.SaveChanges();

                this.loadByPaymentID((int)_ccPayment.externalPayment.paymentID);

                ts.Complete();
            }
        }
コード例 #9
0
ファイル: DebitCard.cs プロジェクト: saeidghoreshi/partition1
        public void New()
        {
            using (var ctx = new AccContexts())
            using (var ts = new TransactionScope())
            {
                base.createNew((int)enums.cardType.DebitCard);

                var newDBCard = new AccountingLib.Models.dbCard()
                {
                    cardID = base.cardID,
                    cardTypeID = this.CARDTYPEID
                };
                ctx.dbCard.AddObject(newDBCard);
                ctx.SaveChanges();

                /*reload object props*/
                this.dbCardID = newDBCard.ID;

                ts.Complete();
            }
        }
コード例 #10
0
ファイル: Currency.cs プロジェクト: saeidghoreshi/partition1
        public void create(string CurrencyName, int currencyTypeID)
        {
            using (var ctx = new AccContexts())
                {
                    var newCur = new AccountingLib.Models.currency
                    {
                        currencyTypeID = currencyTypeID,
                        name = CurrencyName
                    };
                    var result = ctx.currency.FirstOrDefault(x => x.name == CurrencyName && x.currencyType.ID == currencyTypeID);
                    if (result != null)
                        throw new Exception("Currency Duplicated");
                    else
                    {
                        ctx.currency.AddObject(newCur);
                        ctx.SaveChanges();

                        this.currencyID = newCur.ID;
                    }
                }
        }
コード例 #11
0
ファイル: W.cs プロジェクト: saeidghoreshi/partition1
        public AccountingLib.Models.account Create(int ownerEntityId,int currencyID,decimal balance=0)
        {
            using (var ctx = new AccContexts())
            {
                var duplicate = ctx.account
                    .Where(x => x.ownerEntityID == ownerEntityId && x.currencyID == currencyID && x.catTypeID == CATTYPE)
                    .SingleOrDefault();
                if (duplicate != null)
                    ctx.DeleteObject(duplicate);
                var newAccount = new account()
                {
                    catTypeID=CATTYPE,
                    ownerEntityID=ownerEntityId,
                    currencyID=currencyID,
                    balance=balance
                };
                ctx.account.AddObject(newAccount);
                ctx.SaveChanges();

                return newAccount;
            }
        }
コード例 #12
0
ファイル: Service.cs プロジェクト: saeidghoreshi/partition1
        public void New()
        {
            using (var ctx = new AccContexts())
            {
                var giverPerson = ctx.person.Where(x => x.entityID == issuerEntityID).FirstOrDefault();
                var receiverPerson = ctx.person.Where(x => x.entityID == receiverEntityID).FirstOrDefault();
                if (receiverPerson == null || giverPerson == null)
                    throw new Exception("No entities defined");

                var newService = new AccountingLib.Models.service()
                {
                    issuerEntityID=issuerEntityID,
                    receiverEntityID=receiverEntityID,
                    name=serviceName
                };

                ctx.service.AddObject(newService);
                ctx.SaveChanges();

                mapData(newService);
            }
        }
コード例 #13
0
        public void New()
        {
            using (var ctx = new AccContexts())
            using (var ts = new TransactionScope())
            {
                base.createNew((int)enums.ccCardType.MASTERCARD);

                var newmcCard = new mcCard()
                {
                    ccCardID = base.ccCardID
                };

                ctx.mcCard.AddObject(newmcCard);
                ctx.SaveChanges();

                /*Reload object Props*/
                this.mcCardID = newmcCard.ID;
                this.ccCardID = (int)newmcCard.ccCardID;

                ts.Complete();
            }
        }
コード例 #14
0
        public new void createNew(int ccCardTypeID)
        {
            using (var ctx = new AccContexts())
            using (var ts = new TransactionScope())
            {
                base.createNew((int)enums.cardType.CreditCard);

                var newCCCard = new AccountingLib.Models.ccCard()
                {
                    cardID = base.cardID,
                    ccCardTypeID = ccCardTypeID
                };
                ctx.ccCard.AddObject(newCCCard);
                ctx.SaveChanges();

                /*Reload the object props*/
                this.cardID = (int)newCCCard.cardID;
                this.ccCardID = newCCCard.ID;

                ts.Complete();
            }
        }
コード例 #15
0
ファイル: Person.cs プロジェクト: saeidghoreshi/partition1
        public void New(string firstName,string lastName)
        {
            using (var ctx = new AccContexts())
            {
                base.New((int)enums.entityType.Person);

                var checkDuplication = ctx.person.Where(x => x.firstName == firstName && x.lastName == lastName).FirstOrDefault();
                if (checkDuplication != null)
                    throw new Exception("Person Duplicated");

                var newPerson = new AccountingLib.Models.person()
                {
                    firstName=firstName,
                    lastName=lastName,
                    entityID = base.ENTITYID
                };
                ctx.person.AddObject(newPerson);
                ctx.SaveChanges();

                this.id = newPerson.ID;
                this.firstname = newPerson.firstName;
                this.lastname = newPerson.lastName;
            }
        }
コード例 #16
0
ファイル: Bank.cs プロジェクト: saeidghoreshi/partition1
        /// <summary>
        /// create new bank w/ optioanl addressing
        /// </summary>
        /// <param name="name"></param>
        /// <param name="address"></param>
        public void New(string name,Address address=null)
        {
            using (var ctx = new AccContexts())
            {
                base.New((int)enums.entityType.bank);

                var _newBank = new AccountingLib.Models.bank()
                {
                    name=name,
                    entityID=base.ENTITYID
                };
                ctx.bank.AddObject(_newBank);
                ctx.SaveChanges();

                if (address != null)
                {

                }

                /*Update Class props*/
                this.bankID = _newBank.ID;
                this.bankName = _newBank.name;
            }
        }
コード例 #17
0
ファイル: Payment.cs プロジェクト: saeidghoreshi/partition1
        protected void createNew(int payerEntityID,int payeeEntityID,decimal amount,int currencyID,int paymentTypeID)
        {
            using (var ctx = new AccContexts())
            {
                var _payment = new AccountingLib.Models.payment()
                {
                    payerEntityID=payerEntityID,
                    payeeEntityID=payeeEntityID,
                    amount=amount,
                    currencyID=currencyID,
                    paymentTypeID=paymentTypeID
                };
                ctx.payment.AddObject(_payment);
                ctx.SaveChanges();

                loadByPaymentID(_payment.ID);
            }
        }
コード例 #18
0
ファイル: Entity.cs プロジェクト: saeidghoreshi/partition1
        protected void addWalletMoney(decimal amount, string title, int currencyID)
        {
            using(var ts=new TransactionScope())
            using(var ctx=new AccountingLib.Models.AccContexts())
            {
                //Record related transctions
                List<int> transactions = new List<int>();
                var trans1 = Transaction.createNew(this.ENTITYID, (int)AssetCategories.W, +1 * (decimal)amount, currencyID);
                transactions.Add(trans1);
                var trans2 = Transaction.createNew(this.ENTITYID, (int)AssetCategories.CCCASH, -1 * (decimal)amount, currencyID);
                transactions.Add(trans2);

                //Record Wallet entity and walletEntityTransaction
                var entityWallet = new AccountingLib.Models.entityWallet()
                {
                    entityID=this.ENTITYID,
                    amount=amount,
                    title=title,
                    currencyID=currencyID
                };
                ctx.entityWallet.AddObject(entityWallet);
                ctx.SaveChanges();

                foreach(var txn in transactions)
                {
                    var entityWalletTxn = new AccountingLib.Models.entityWalletTransaction()
                    {
                        entityWalletID = entityWallet.ID,
                        transactionID = txn
                    };
                    ctx.entityWalletTransaction.AddObject(entityWalletTxn);
                    ctx.SaveChanges();
                }

                ts.Complete();
            }
        }
コード例 #19
0
ファイル: Invoice.cs プロジェクト: saeidghoreshi/partition1
        public void doCCExtPayment(decimal amount,int cardID,enums.ccCardType ccCardType)
        {
            //var ccFeeFor

            using (var ctx = new AccContexts())
                using (var ts = new TransactionScope())
                {
                    classes.ccPayment creditCardPayment = new ccPayment();
                    creditCardPayment.createNew(this.receiverEntityID, this.issuerEntityID, amount, this.currencyID, cardID);

                    /*Record New Invoice Payment*/
                    var NewInvoicePayment = new AccountingLib.Models.invoicePayment()
                    {
                        invoiceID = invoiceID,
                        paymentID = creditCardPayment.paymentID
                    };
                    ctx.invoicePayment.AddObject(NewInvoicePayment);
                    ctx.SaveChanges();

                    //get Fee bank cardType
                    var card = new classes.card.CreditCard();
                    card.loadByCardID(cardID);

                    ccFee ccfee = new ccFee();
                    ccfee.loadccFeeByBankCardTypeID((int)ccCardType, (card as Entity).getBankByCard(card.cardID).bankID);

                    //Record related transctions [for invoice payment]
                    List <int> transactions = new List<int>();

                    transactions.Add(Transaction.createNew(receiverEntityID, (int)AssetCategories.CCCASH, -1 * amount, this.currencyID));
                    transactions.Add(Transaction.createNew(receiverEntityID, (int)LibCategories.AP, +1 * amount, this.currencyID));

                    transactions.Add(Transaction.createNew(issuerEntityID, (int)AssetCategories.W, +1 * amount - (decimal)ccfee.amount, this.currencyID));
                    transactions.Add(Transaction.createNew(issuerEntityID, (int)AssetCategories.AR, -1 * amount, this.currencyID));
                    transactions.Add(Transaction.createNew(issuerEntityID, (int)OECategories.EXP,  (decimal)ccfee.amount, this.currencyID));

                    /*Record Invoice Payment transactions*/
                    this.RecordInvoicePaymentTransactions(transactions, creditCardPayment.paymentID, enums.paymentStat.PaidApproved);

                    /*Record Invoice Transaction*/
                    enums.invoiceStat? invoicestat=null;
                    switch(ccCardType)
                    {
                        case enums.ccCardType.MASTERCARD:
                            invoicestat=enums.invoiceStat.masterCardPaymant;
                            break;
                        case enums.ccCardType.VISACARD:
                            invoicestat=enums.invoiceStat.visaCardPaymant;
                            break;
                    }
                    this.RecordInvoiceTransaction(transactions, (enums.invoiceStat)invoicestat);

                    ts.Complete();
                }
        }
コード例 #20
0
ファイル: Invoice.cs プロジェクト: saeidghoreshi/partition1
        public void doINTERACPayment(decimal amount,  int cardID)
        {
            using (var ctx = new AccContexts())
                using (var ts = new TransactionScope())
                {
                    classes.dbPayment debitCardPayment = new dbPayment();
                    debitCardPayment.createNew(this.receiverEntityID, this.issuerEntityID, amount, this.currencyID,cardID);

                    /*Record New Invoice Payment*/
                    var NewInvoicePayment = new AccountingLib.Models.invoicePayment()
                    {
                        invoiceID = this.invoiceID,
                        paymentID = debitCardPayment.paymentID
                    };
                    ctx.invoicePayment.AddObject(NewInvoicePayment);
                    ctx.SaveChanges();

                    //get Fee bank cardType
                    var card=new classes.card.DebitCard();
                    card.loadByCardID(cardID);

                    Fee fee = new Fee();
                    fee.loadFeeByBankCardTypeID(card.cardTypeID, ((Entity)card).getBankByCard(cardID).bankID);

                    //Record related transctions [for invoice payment]
                    List <int> transactions = new List<int>();
                    transactions.Add(Transaction.createNew(receiverEntityID, (int)AssetCategories.DBCASH, -1 * amount, this.currencyID));
                    transactions.Add(Transaction.createNew(receiverEntityID, (int)LibCategories.AP, +1 * amount, this.currencyID));

                    transactions.Add(Transaction.createNew(issuerEntityID, (int)AssetCategories.W, +1 * amount-(decimal)fee.amount, this.currencyID));
                    transactions.Add(Transaction.createNew(issuerEntityID, (int)AssetCategories.AR, -1 * amount, this.currencyID));
                    transactions.Add(Transaction.createNew(issuerEntityID, (int)OECategories.EXP, (decimal)fee.amount, this.currencyID));

                    /*Record Invoice Payment transactions*/
                    this.RecordInvoicePaymentTransactions(transactions, debitCardPayment.paymentID, enums.paymentStat.PaidApproved);

                    /*Record Invoice Transaction*/
                    this.RecordInvoiceTransaction( transactions,enums.invoiceStat.interacPaymant);

                    ts.Complete();
                }
        }
コード例 #21
0
ファイル: Invoice.cs プロジェクト: saeidghoreshi/partition1
        /// <summary>
        /// this function records INVOICEACTION and INVOICEACTIONTRANSACTIONS
        /// </summary>
        /// <param name="invoiceID"></param>
        /// <param name="transactions"></param>
        /*Payment for Invoice*/
        public void doINTERNALTransfer(decimal amount)
        {
            try
            {
                using (var ctx = new AccContexts())
                using (var ts = new TransactionScope())
                {
                    classes.internalPayment internalPayment = new classes.internalPayment();
                    internalPayment.createNew(this.receiverEntityID, this.issuerEntityID, amount, this.currencyID);

                    /*Record New Invoice Payment*/
                    var NewInvoicePayment = new AccountingLib.Models.invoicePayment()
                    {
                        invoiceID = this.invoiceID,
                        paymentID = internalPayment.paymentID
                    };
                    ctx.invoicePayment.AddObject(NewInvoicePayment);
                    ctx.SaveChanges();

                    //Record related transctions [for invoice payment]
                    List <int> transactions = new List<int>();
                    transactions.Add(Transaction.createNew(issuerEntityID, (int)AssetCategories.W, -1 * amount, this.currencyID));
                    transactions.Add(Transaction.createNew(receiverEntityID, (int)LibCategories.AP, +1 * amount, this.currencyID));
                    transactions.Add(Transaction.createNew(receiverEntityID, (int)AssetCategories.W, +1 * amount, this.currencyID));
                    transactions.Add(Transaction.createNew(issuerEntityID, (int)AssetCategories.AR, -1 * amount, this.currencyID));

                    /*Record Invoice Payment transactions*/
                    this.RecordInvoicePaymentTransactions(transactions, internalPayment.paymentID, enums.paymentStat.PaidApproved);

                    /*Record Invoice Transaction*/
                    this.RecordInvoiceTransaction( transactions, enums.invoiceStat.internalPaymant);

                    ts.Complete();
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
コード例 #22
0
ファイル: Invoice.cs プロジェクト: saeidghoreshi/partition1
        public void New(int issuerEntityID,int receiverEntityID, int currencyID)
        {
            using (var ctx = new AccContexts())
            using (var ts = new TransactionScope())
            {
                var newInvoice = new AccountingLib.Models.invoice()
                {
                    issuerEntityID = issuerEntityID,
                    receiverEntityID = receiverEntityID,
                    currencyID=currencyID
                };
                ctx.invoice.AddObject(newInvoice);
                ctx.SaveChanges();

                //create invoice Action
                var invAction = new AccountingLib.Models.invoiceAction()
                {
                    invoiceID = newInvoice.ID,
                    invoiceStatID = (int)enums.invoiceStat.Generated
                };
                ctx.invoiceAction.AddObject(invAction);
                ctx.SaveChanges();

                this.loadInvoiceByInvoiceID(newInvoice.ID);

                ts.Complete();
            }
        }
コード例 #23
0
ファイル: Invoice.cs プロジェクト: saeidghoreshi/partition1
        private void RecordInvoicePaymentTransactions(List<int> txns, int paymentID , enums.paymentStat payStat)
        {
            using (var ctx = new AccountingLib.Models.AccContexts())
            {
                //Create Payment Action
                var payAction = new AccountingLib.Models.paymentAction()
                {
                    paymentID = paymentID,
                    paymentStatID = (int)payStat
                };
                ctx.paymentAction.AddObject(payAction);
                ctx.SaveChanges();

                //Record Pyament Action TXNS
                foreach (var txn in txns)
                {
                    var newPayActionTxn = new paymentActionTransaction()
                    {
                        paymentActionID = payAction.ID,
                        transactionID = txn
                    };
                    ctx.paymentActionTransaction.AddObject(newPayActionTxn);
                    ctx.SaveChanges();
                }
            }
        }
コード例 #24
0
ファイル: Invoice.cs プロジェクト: saeidghoreshi/partition1
        private void RecordInvoiceTransaction(List<int> transactions, enums.invoiceStat invoiceStat)
        {
            using (var ctx = new AccContexts())
            using (var ts = new TransactionScope())
            {
                //create invoice Action
                var invAction = new AccountingLib.Models.invoiceAction()
                {
                    invoiceID = this.invoiceID,
                    invoiceStatID = (int)invoiceStat
                };
                ctx.invoiceAction.AddObject(invAction);
                ctx.SaveChanges();

                //create invoice Transactions and invoice action Transactions
                foreach (var item in transactions)
                {
                    var invActionTrans = new AccountingLib.Models.invoiceActionTransaction()
                    {
                        invoiceActionID = invAction.ID,
                        transactionID = item
                    };
                    ctx.invoiceActionTransaction.AddObject(invActionTrans);

                    ctx.SaveChanges();
                }

                ts.Complete();

            }
        }
コード例 #25
0
ファイル: Entity.cs プロジェクト: saeidghoreshi/partition1
        protected void New(int entityTypeID)
        {
            using (var ctx = new AccContexts())
            {
                var newEntity = new AccountingLib.Models.entity()
                {
                    entityTypeID = entityTypeID
                };
                ctx.entity.AddObject(newEntity);
                ctx.SaveChanges();

                /*reload entity*/
                this.ENTITYID = newEntity.ID;
            }
        }