/*Payment for Invoice*/ public void Transfer_Internal(decimal amount) { if (INV.Equals(null)) throw new Exception("No invocie set.pleae laod or create new Invoice"); using (var ctx = new accountingEntities()) using (var ts = new TransactionScope()) { //create new Internal Payment InternalTransfer iPayment = new InternalTransfer(); iPayment.New((int)INV.order.receiverEntityID, (int)INV.order.issuerEntityID, amount, (int)INV.currencyID); /*Record New Invoice Payment*/ var NewInvTransfer= new invoiceTransfer() { invoiceID = INV.ID, transferID = iPayment.TRANSFER.ID }; ctx.invoiceTransfers.AddObject(NewInvTransfer); ctx.SaveChanges(); //Record related transctions [for invoice payment] List<transaction> transactions = new List<transaction>(); account acc_W = Account.getAccount((int)INV.order.issuerEntityID, (int)projectEnums.catType.W, (int)INV.currencyID); var t1 = new Transaction(-1 * (decimal)amount, acc_W); transactions.Add(t1.TXN); account acc_AP = Account.getAccount((int)INV.order.receiverEntityID, (int)projectEnums.catType.AP, (int)INV.currencyID); var t2 = new Transaction(+1 * (decimal)amount, acc_AP); transactions.Add(t2.TXN); account acc_W2 = Account.getAccount((int)INV.order.receiverEntityID, (int)projectEnums.catType.W, (int)INV.currencyID); var t3 = new Transaction(+1 * (decimal)amount, acc_W2); transactions.Add(t3.TXN); account acc_AR = Account.getAccount((int)INV.order.issuerEntityID, (int)projectEnums.catType.AR, (int)INV.currencyID); var t4 = new Transaction(-1 * (decimal)amount, acc_AR); transactions.Add(t4.TXN); /*Record Invoice Payment transactions*/ this.RecordInvoiceTransferTransactions(transactions, (int)iPayment.TRANSFER.ID, projectEnums.transferStatus.PaidApproved); /*Record Invoice Transaction*/ this.RecordInvoiceTransaction(transactions, projectEnums.invoiceStatus.internalTransfer); ts.Complete(); } }
/// <summary> /// Create a new invoiceTransfer object. /// </summary> /// <param name="id">Initial value of the ID property.</param> public static invoiceTransfer CreateinvoiceTransfer(global::System.Int32 id) { invoiceTransfer invoiceTransfer = new invoiceTransfer(); invoiceTransfer.ID = id; return invoiceTransfer; }
public void Transfer_Ext_Credit(decimal amount, int cardID, projectEnums.ccCardType ccCardType) { if (INV.Equals(null)) throw new Exception("No invocie set.pleae laod or create new Invoice"); using (var ctx = new accountingEntities()) using (var ts = new TransactionScope()) { //create new Internal Payment CreditTransfer ccPayment = new CreditTransfer(); ccPayment.New((int)INV.order.receiverEntityID, (int)INV.order.issuerEntityID, amount, (int)INV.currencyID); /*Record New Invoice Payment*/ var NewInvTransfer = new invoiceTransfer() { invoiceID = INV.ID, transferID = ccPayment.TRANSFER.ID }; ctx.invoiceTransfers.AddObject(NewInvTransfer); ctx.SaveChanges(); //Record related transctions [for invoice Transfer] var FEE = 1; List<transaction> transactions = new List<transaction>(); account acc_CCCASH = Account.getAccount((int)INV.order.receiverEntityID, (int)projectEnums.catType.CCCASH, (int)INV.currencyID); var t1 = new Transaction(-1 * (decimal)amount, acc_CCCASH); transactions.Add(t1.TXN); account acc_AP = Account.getAccount((int)INV.order.receiverEntityID, (int)projectEnums.catType.AP, (int)INV.currencyID); var t2 = new Transaction(+1 * (decimal)amount, acc_AP); transactions.Add(t2.TXN); account acc_W = Account.getAccount((int)INV.order.issuerEntityID, (int)projectEnums.catType.W, (int)INV.currencyID); var t3 = new Transaction(+1 * (decimal)amount - FEE, acc_W); transactions.Add(t3.TXN); account acc_AR = Account.getAccount((int)INV.order.issuerEntityID, (int)projectEnums.catType.AR, (int)INV.currencyID); var t4 = new Transaction(-1 * (decimal)amount, acc_AR); transactions.Add(t4.TXN); account acc_EXP = Account.getAccount((int)INV.order.issuerEntityID, (int)projectEnums.catType.AR, (int)INV.currencyID); var t5 = new Transaction(FEE, acc_EXP); transactions.Add(t5.TXN); /*Record Invoice Payment transactions*/ this.RecordInvoiceTransferTransactions(transactions, ccPayment.TRANSFER.ID, projectEnums.transferStatus.PaidApproved); /*Record Invoice Transaction*/ projectEnums.invoiceStatus? invoicestat = null; switch (ccCardType) { case projectEnums.ccCardType.MASTERCARD: invoicestat = projectEnums.invoiceStatus.masterCardTransfer; break; case projectEnums.ccCardType.VISACARD: invoicestat = projectEnums.invoiceStatus.visaCardTransfer; break; } this.RecordInvoiceTransaction(transactions, (projectEnums.invoiceStatus)invoicestat); ts.Complete(); } }
/// <summary> /// Deprecated Method for adding a new object to the invoiceTransfers EntitySet. Consider using the .Add method of the associated ObjectSet<T> property instead. /// </summary> public void AddToinvoiceTransfers(invoiceTransfer invoiceTransfer) { base.AddObject("invoiceTransfers", invoiceTransfer); }