Exemplo n.º 1
0
        public IHttpActionResult PutAccountTransictionTable(int id, AccountTransictionTable accountTransictionTable)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != accountTransictionTable.TransictionId)
            {
                return(BadRequest());
            }

            db.Entry(accountTransictionTable).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!AccountTransictionTableExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
        public bool AddTransaction(MVCQutationModel quatationModel)
        {
            bool result = false;

            try
            {
                TransactionModel model = new TransactionModel();
                model.CompanyId    = (int)quatationModel.CompanyId;
                model.AccountTitle = "Accounts receivable";
                int AccountId = CommonController.GetAcccountId(model);
                if (AccountId > 0)
                {
                    AccountTransictionTable _TransactionTable = new AccountTransictionTable();
                    _TransactionTable.FK_AccountID          = AccountId;
                    _TransactionTable.Dr                    = quatationModel.SubTotal;
                    _TransactionTable.Cr                    = 0;
                    _TransactionTable.TransictionNumber     = Guid.NewGuid().ToString();
                    _TransactionTable.TransictionRefrenceId = quatationModel.QutationID.ToString();
                    _TransactionTable.CreationTime          = DateTime.Now.TimeOfDay;
                    _TransactionTable.AddedBy               = Convert.ToInt32(Session["LoginUserID"]);
                    _TransactionTable.FK_CompanyId          = quatationModel.CompanyId;
                    _TransactionTable.TransictionType       = "Dr";
                    _TransactionTable.FKPaymentTerm         = null;
                    _TransactionTable.TransictionDate       = DateTime.Now;
                    _TransactionTable.Description           = "invoice Creating Time Transaction";

                    if (TransactionClass.PerformTransaction(_TransactionTable))
                    {
                        result             = true;
                        model.AccountTitle = "Input VAT";
                        int AccountId1 = CommonController.GetAcccountId(model);
                        _TransactionTable.FK_AccountID = AccountId1;
                        _TransactionTable.Dr           = quatationModel.TotalVat21 + quatationModel.TotalVat6;

                        if (TransactionClass.PerformTransaction(_TransactionTable))
                        {
                            result             = true;
                            model.AccountTitle = "Cash on hand";
                            int AccountId12 = CommonController.GetAcccountId(model);
                            _TransactionTable.FK_AccountID    = AccountId12;
                            _TransactionTable.Cr              = quatationModel.TotalAmount;
                            _TransactionTable.Dr              = 0;
                            _TransactionTable.TransictionType = "Cr";
                            if (TransactionClass.PerformTransaction(_TransactionTable))
                            {
                                result = true;
                            }
                        }
                    }
                }
            }
            catch (Exception)
            {
                throw;
            }
            return(result);
        }
Exemplo n.º 3
0
        public IHttpActionResult GetAccountTransictionTable(int id)
        {
            AccountTransictionTable accountTransictionTable = db.AccountTransictionTables.Find(id);

            if (accountTransictionTable == null)
            {
                return(NotFound());
            }

            return(Ok(accountTransictionTable));
        }
Exemplo n.º 4
0
        public IHttpActionResult DeleteAccountTransictionTable(int id)
        {
            AccountTransictionTable accountTransictionTable = db.AccountTransictionTables.Find(id);

            if (accountTransictionTable == null)
            {
                return(NotFound());
            }

            db.AccountTransictionTables.Remove(accountTransictionTable);
            db.SaveChanges();

            return(Ok(accountTransictionTable));
        }
Exemplo n.º 5
0
 public IHttpActionResult PostAccountTransictionTable(AccountTransictionTable accountTransictionTable)
 {
     if (!ModelState.IsValid)
     {
         return(BadRequest(ModelState));
     }
     try
     {
         db.AccountTransictionTables.Add(accountTransictionTable);
         db.SaveChanges();
     }
     catch (Exception ex)
     {
         var exx = ex.ToString();
     }
     return(Ok(accountTransictionTable));
 }
Exemplo n.º 6
0
        public IHttpActionResult PutExpense(int id, ExpenseViewModel ExpenseViewModel)
        {
            string refId = ExpenseViewModel.Id.ToString();

            EXPENSE      expenseTable = new EXPENSE();
            ExpenseModel _ExpeseModel = new ExpenseModel();

            AccountTransictionTable AccountTable = new AccountTransictionTable();

            AccountTable.TransictionDate       = DateTime.Now;
            AccountTable.TransictionNumber     = base64Guid;
            AccountTable.TransictionType       = "Expence";
            AccountTable.CreationTime          = DateTime.Now.TimeOfDay;
            AccountTable.FK_CompanyId          = ExpenseViewModel.comapny_id;
            AccountTable.FKPaymentTerm         = 1;
            AccountTable.TransictionRefrenceId = ExpenseViewModel.Id.ToString();
            AccountTable.AddedBy = ExpenseViewModel.user_id;

            using (DBEntities context = new DBEntities())
            {
                using (DbContextTransaction transaction = context.Database.BeginTransaction(System.Data.IsolationLevel.ReadCommitted))
                {
                    try
                    {
                        List <AccountTransictionTable> List = new List <AccountTransictionTable>();
                        List = context.AccountTransictionTables.Where(t => t.TransictionRefrenceId == refId.ToString()).ToList();
                        context.AccountTransictionTables.RemoveRange(context.AccountTransictionTables.Where(F => F.TransictionRefrenceId == refId.ToString()));
                        context.SaveChanges();

                        EXPENSE expense = new EXPENSE();

                        expense.REFERENCEno          = ExpenseViewModel.REFERENCEno;
                        expense.ACCOUNT_ID           = ExpenseViewModel.ACCOUNT_ID;
                        expense.Id                   = ExpenseViewModel.Id;
                        expense.VENDOR_ID            = ExpenseViewModel.VENDOR_ID;
                        expense.notes                = ExpenseViewModel.notes;
                        expense.user_id              = ExpenseViewModel.user_id;
                        expense.SUBTOTAL             = ExpenseViewModel.SUBTOTAL;
                        expense.VAT_AMOUNT           = ExpenseViewModel.VAT_AMOUNT;
                        expense.GRAND_TOTAL          = ExpenseViewModel.GRAND_TOTAL;
                        expense.AddedDate            = ExpenseViewModel.AddedDate;
                        expense.comapny_id           = ExpenseViewModel.comapny_id;
                        expense.Vat6                 = ExpenseViewModel.Vat6;
                        expense.Vat21                = ExpenseViewModel.Vat21;
                        context.Entry(expense).State = EntityState.Modified;
                        context.SaveChanges();

                        if (ExpenseViewModel.ExpensenDetailList != null)
                        {
                            foreach (ExpenseDetail item in ExpenseViewModel.ExpensenDetailList)
                            {
                                ExpenseDetail expenseDetailModel = new ExpenseDetail();
                                expenseDetailModel.expense_id         = ExpenseViewModel.Id;
                                expenseDetailModel.EXPENSE_ACCOUNT_ID = item.EXPENSE_ACCOUNT_ID;
                                expenseDetailModel.DESCRIPTION        = item.DESCRIPTION;
                                expenseDetailModel.AMOUNT             = item.AMOUNT;
                                expenseDetailModel.TAX_PERCENT        = item.TAX_PERCENT;
                                expenseDetailModel.TAX_AMOUNT         = item.TAX_AMOUNT;
                                expenseDetailModel.SUBTOTAL           = item.SUBTOTAL;
                                expenseDetailModel.Id         = item.Id;
                                expenseDetailModel.user_id    = ExpenseViewModel.user_id;
                                expenseDetailModel.comapny_id = ExpenseViewModel.comapny_id;
                                AccountTable.Cr           = 0.00;
                                AccountTable.Dr           = item.AMOUNT;
                                AccountTable.FK_AccountID = item.EXPENSE_ACCOUNT_ID;


                                context.AccountTransictionTables.Add(AccountTable);
                                context.SaveChanges();


                                if (item.Id == 0)
                                {
                                    context.ExpenseDetails.Add(expenseDetailModel);
                                    context.SaveChanges();
                                }
                                else
                                {
                                    context.Entry(expenseDetailModel).State = EntityState.Modified;
                                    context.SaveChanges();
                                }
                            }
                        }


                        //Accounts Petty Cash  Transaction
                        int Accountpayble = AccountIdByName("Petty Cash", (int)ExpenseViewModel.comapny_id);

                        if (Accountpayble != 0)
                        {
                            AccountTable.Dr           = 0.00;
                            AccountTable.Cr           = ExpenseViewModel.GRAND_TOTAL;
                            AccountTable.FK_AccountID = Accountpayble;
                            context.AccountTransictionTables.Add(AccountTable);
                            context.SaveChanges();
                        }
                        // Cost Of Goods Transaction
                        int CostOfGood = AccountIdByName("Input VAT", (int)ExpenseViewModel.comapny_id);
                        if (CostOfGood != 0)
                        {
                            AccountTable.Cr           = 0.00;
                            AccountTable.Dr           = ExpenseViewModel.Vat21 + ExpenseViewModel.Vat6;;
                            AccountTable.FK_AccountID = CostOfGood;
                            context.AccountTransictionTables.Add(AccountTable);
                            context.SaveChanges();
                        }
                        _ExpeseModel.Id = expenseTable.Id;
                        transaction.Commit();
                        return(Ok(_ExpeseModel));
                    }

                    catch (Exception ex)
                    {
                        transaction.Commit();

                        return(BadRequest());
                    }
                }
            }



            //if (!ModelState.IsValid)
            //{
            //    return BadRequest(ModelState);
            //}
            //if (id != ExpenseTable.Id)
            //{
            //    return BadRequest();
            //}
            //db.Entry(ExpenseTable).State = EntityState.Modified;

            //try
            //{
            //    db.SaveChanges();
            //    return Ok(ExpenseTable);
            //}
            //catch (Exception ex)
            //{
            //    BadRequest();
            //    throw;
            //}
        }
Exemplo n.º 7
0
        public IHttpActionResult PostInvoice([FromBody] InvoiceViewModel invoiceViewModel)
        {
            InvoiceTable Table = new InvoiceTable();

            using (DBEntities context = new DBEntities())
            {
                using (DbContextTransaction transaction = context.Database.BeginTransaction(System.Data.IsolationLevel.ReadCommitted))
                {
                    try
                    {
                        Table.Invoice_ID         = invoiceViewModel.Invoice_ID;
                        Table.CompanyId          = invoiceViewModel.CompanyId;
                        Table.UserId             = invoiceViewModel.UserId;
                        Table.ContactId          = invoiceViewModel.ContactId;
                        Table.RefNumber          = invoiceViewModel.RefNumber;
                        Table.InvoiceDate        = invoiceViewModel.InvoiceDate;
                        Table.InvoiceDueDate     = invoiceViewModel.InvoiceDueDate;
                        Table.SubTotal           = invoiceViewModel.SubTotal;
                        Table.DiscountAmount     = invoiceViewModel.DiscountAmount;
                        Table.TotalAmount        = invoiceViewModel.TotalAmount;
                        Table.CustomerNote       = invoiceViewModel.CustomerNote;
                        Table.TotalVat21         = invoiceViewModel.TotalVat21;
                        Table.TotalVat6          = invoiceViewModel.TotalVat6;
                        Table.Type               = StatusEnum.Goods.ToString();
                        Table.Status             = "accepted";
                        Table.InvoiceDescription = invoiceViewModel.InvoiceDescription;

                        if (Table.TotalVat6 != null)
                        {
                            double vat61 = Math.Round((double)Table.TotalVat6, 2, MidpointRounding.AwayFromZero);
                            Table.TotalVat6 = vat61;
                        }
                        if (Table.TotalVat21 != null)
                        {
                            double vat21 = Math.Round((double)Table.TotalVat21, 2, MidpointRounding.AwayFromZero);
                            Table.TotalVat21 = vat21;
                        }

                        Table = context.InvoiceTables.Add(Table);
                        context.SaveChanges();

                        if (invoiceViewModel.InvoiceDetailsTable != null)
                        {
                            foreach (InvoiceDetailsTable InvoiceDetailsList in invoiceViewModel.InvoiceDetailsTable)
                            {
                                InvoiceDetailsTable InvoiceDetails = new InvoiceDetailsTable();
                                InvoiceDetails.ItemId      = Convert.ToInt32(InvoiceDetailsList.ItemId);
                                InvoiceDetails.InvoiceId   = Table.InvoiceID;
                                InvoiceDetails.Description = InvoiceDetailsList.Description;
                                InvoiceDetails.Quantity    = InvoiceDetailsList.Quantity;
                                InvoiceDetails.Rate        = Convert.ToDouble(InvoiceDetailsList.Rate);
                                InvoiceDetails.Total       = Convert.ToDouble(InvoiceDetailsList.Total);
                                InvoiceDetails.ServiceDate = InvoiceDetailsList.ServiceDate;
                                InvoiceDetails.RowSubTotal = InvoiceDetailsList.RowSubTotal;
                                InvoiceDetails.Vat         = Convert.ToDouble(InvoiceDetailsList.Vat);
                                InvoiceDetails.Type        = InvoiceDetailsList.Type;

                                if (InvoiceDetails.InvoiceDetailId == 0)
                                {
                                    InvoiceDetails = context.InvoiceDetailsTables.Add(InvoiceDetails);
                                    context.SaveChanges();
                                }
                            }
                        }

                        AccountTransictionTable Account = new AccountTransictionTable();
                        Account.TransictionDate       = DateTime.Now;
                        Account.TransictionNumber     = base64Guid;
                        Account.TransictionType       = "Invoice";
                        Account.TransictionRefrenceId = Table.InvoiceID.ToString();
                        Account.CreationTime          = DateTime.Now.TimeOfDay;
                        Account.AddedBy       = 1;
                        Account.FK_CompanyId  = invoiceViewModel.CompanyId;
                        Account.FKPaymentTerm = 1;

                        //Cash Account Transaction
                        int CashtAccountId = AccountIdByName("Cash on hand", (int)invoiceViewModel.CompanyId);

                        if (CashtAccountId != 0)
                        {
                            Account.Dr           = invoiceViewModel.TotalAmount;
                            Account.Cr           = 0.00;
                            Account.FK_AccountID = CashtAccountId;
                            context.AccountTransictionTables.Add(Account);
                            context.SaveChanges();
                        }
                        // Sale Account Transaction
                        int SaleAccount = AccountIdByName("Seles", (int)invoiceViewModel.CompanyId);
                        if (SaleAccount != 0)
                        {
                            Account.Cr           = invoiceViewModel.SubTotal;
                            Account.Dr           = 0.00;
                            Account.FK_AccountID = SaleAccount;
                            context.AccountTransictionTables.Add(Account);
                            context.SaveChanges();
                        }
                        // vat Out Put Trnsaction
                        int VatAccountId = AccountIdByName("VAT Payable", (int)invoiceViewModel.CompanyId);
                        if (VatAccountId != 0)
                        {
                            Account.Cr           = invoiceViewModel.TotalVat6 + invoiceViewModel.TotalVat21;
                            Account.Dr           = 0.00;
                            Account.FK_AccountID = VatAccountId;
                            context.AccountTransictionTables.Add(Account);
                            int Id = context.SaveChanges();
                        }
                        InvoiceModel inc = new InvoiceModel();
                        inc.InvoiceID = Table.InvoiceID;
                        transaction.Commit();
                        return(Ok(inc));
                    }
                    catch (Exception)
                    {
                        transaction.Rollback();
                        return(BadRequest());
                    }
                }
            }
        }
Exemplo n.º 8
0
        public IHttpActionResult PostPurchase([FromBody] MvcPurchaseViewModel PurchaseViewModel)
        {
            using (DBEntities entities = new DBEntities())
            {
                using (DbContextTransaction transaction = entities.Database.BeginTransaction(System.Data.IsolationLevel.ReadCommitted))
                {
                    try
                    {
                        PurchaseOrderTable _PTable = new PurchaseOrderTable();

                        _PTable.CompanyId              = PurchaseViewModel.CompanyId;
                        _PTable.UserId                 = PurchaseViewModel.UserId;
                        _PTable.PurchaseID             = PurchaseViewModel.PurchaseId.ToString();
                        _PTable.VenderId               = PurchaseViewModel.VenderId;
                        _PTable.PurchaseRefNumber      = PurchaseViewModel.PurchaseRefNumber;
                        _PTable.PurchaseDate           = Convert.ToDateTime(PurchaseViewModel.PurchaseDate);
                        _PTable.PurchaseDueDate        = PurchaseViewModel.PurchaseDueDate;
                        _PTable.PurchaseSubTotal       = PurchaseViewModel.PurchaseSubTotal;
                        _PTable.PurchaseDiscountAmount = PurchaseViewModel.PurchaseDiscountAmount;
                        _PTable.PurchaseTotoalAmount   = PurchaseViewModel.PurchaseTotoalAmount;
                        _PTable.PurchaseVenderNote     = PurchaseViewModel.PurchaseVenderNote;
                        _PTable.Vat6   = PurchaseViewModel.Vat6;
                        _PTable.Vat21  = PurchaseViewModel.Vat21;
                        _PTable.Status = "open";
                        _PTable.Type   = StatusEnum.Goods.ToString();

                        _PTable = entities.PurchaseOrderTables.Add(_PTable);
                        entities.SaveChanges();

                        if (PurchaseViewModel.PurchaseOrderList != null)
                        {
                            foreach (PurchaseOrderDetailsTable item in PurchaseViewModel.PurchaseOrderList)
                            {
                                PurchaseOrderDetailsTable purchadeDetail = new PurchaseOrderDetailsTable();
                                purchadeDetail.PurchaseOrderDetailsId = item.PurchaseOrderDetailsId;
                                purchadeDetail.PurchaseItemId         = item.PurchaseItemId;
                                purchadeDetail.PurchaseDescription    = item.PurchaseDescription;
                                purchadeDetail.PurchaseQuantity       = item.PurchaseQuantity;
                                purchadeDetail.PurchaseItemRate       = item.PurchaseItemRate;
                                purchadeDetail.PurchaseTotal          = item.PurchaseTotal;
                                purchadeDetail.Type                  = item.Type;
                                purchadeDetail.RowSubTotal           = item.RowSubTotal;
                                purchadeDetail.PurchaseVatPercentage = item.PurchaseVatPercentage;
                                purchadeDetail.PurchaseId            = _PTable.PurchaseOrderID;
                                purchadeDetail.ServiceDate           = item.ServiceDate;
                                entities.PurchaseOrderDetailsTables.Add(purchadeDetail);
                                entities.SaveChanges();
                            }
                        }

                        AccountTransictionTable Account = new AccountTransictionTable();
                        Account.TransictionDate       = DateTime.Now;
                        Account.TransictionNumber     = base64Guid;
                        Account.TransictionType       = "Purchase";
                        Account.CreationTime          = DateTime.Now.TimeOfDay;
                        Account.AddedBy               = 1;
                        Account.FK_CompanyId          = PurchaseViewModel.CompanyId;
                        Account.FKPaymentTerm         = 1;
                        Account.TransictionRefrenceId = _PTable.PurchaseOrderID.ToString();
                        //Accounts payable  Transaction
                        int Accountpayble = AccountIdByName("Accounts payable", (int)PurchaseViewModel.CompanyId);

                        if (Accountpayble != 0)
                        {
                            Account.Dr           = 0.00;
                            Account.Cr           = PurchaseViewModel.PurchaseTotoalAmount;
                            Account.FK_AccountID = Accountpayble;
                            entities.AccountTransictionTables.Add(Account);
                            entities.SaveChanges();
                        }
                        // Cost Of Goods Transaction
                        int CostOfGood = AccountIdByName("Cost Of Goods", (int)PurchaseViewModel.CompanyId);
                        if (CostOfGood != 0)
                        {
                            Account.Cr           = 0.00;
                            Account.Dr           = PurchaseViewModel.PurchaseSubTotal;
                            Account.FK_AccountID = CostOfGood;
                            entities.AccountTransictionTables.Add(Account);
                            entities.SaveChanges();
                        }

                        // Input VAT Trnsaction
                        int VatAccountId = AccountIdByName("Input VAT", (int)PurchaseViewModel.CompanyId);

                        if (VatAccountId != 0)
                        {
                            Account.Cr           = 0.00;
                            Account.Dr           = PurchaseViewModel.Vat21 + PurchaseViewModel.Vat6;
                            Account.FK_AccountID = VatAccountId;
                            entities.AccountTransictionTables.Add(Account);
                            int Id = entities.SaveChanges();
                        }

                        MvcPurchaseModel pModel = new MvcPurchaseModel();
                        pModel.PurchaseOrderID = _PTable.PurchaseOrderID;
                        transaction.Commit();
                        return(Ok(pModel));
                    }
                    catch (Exception)
                    {
                        transaction.Rollback();
                        return(BadRequest());
                    }
                }
            }
        }
Exemplo n.º 9
0
        public IHttpActionResult PutPurchaseTable(int id, MvcPurchaseViewModel PViewModel)
        {
            string Ref = PViewModel.PurchaseOrderID.ToString();
            //accountTransictionTable.CreationTime = null;

            PurchaseOrderTable PTable = new PurchaseOrderTable();

            using (DBEntities _dbcotext = new DBEntities())
            {
                using (DbContextTransaction transaction = _dbcotext.Database.BeginTransaction(System.Data.IsolationLevel.ReadCommitted))
                {
                    try
                    {
                        PTable.PurchaseID             = PViewModel.PurchaseId.ToString();
                        PTable.PurchaseOrderID        = Convert.ToInt32(PViewModel.PurchaseOrderID);
                        PTable.PurchaseRefNumber      = PViewModel.PurchaseRefNumber;
                        PTable.CompanyId              = PViewModel.CompanyId;
                        PTable.VenderId               = PViewModel.VenderId;
                        PTable.UserId                 = PViewModel.UserId;
                        PTable.PurchaseDate           = PViewModel.PurchaseDate;
                        PTable.PurchaseDueDate        = PViewModel.PurchaseDueDate;
                        PTable.PurchaseSubTotal       = PViewModel.PurchaseSubTotal;
                        PTable.PurchaseDiscountAmount = PViewModel.PurchaseDiscountAmount;
                        PTable.PurchaseTotoalAmount   = PViewModel.PurchaseTotoalAmount;
                        PTable.PurchaseVenderNote     = PViewModel.PurchaseVenderNote;
                        PTable.Vat6   = PViewModel.Vat6;
                        PTable.Vat21  = PViewModel.Vat21;
                        PTable.Status = "open";
                        PTable.Type   = StatusEnum.Goods.ToString();

                        _dbcotext.Entry(PTable).State = EntityState.Modified;
                        _dbcotext.SaveChanges();

                        if (PViewModel.PurchaseOrderList != null)
                        {
                            foreach (PurchaseOrderDetailsTable item in PViewModel.PurchaseOrderList)
                            {
                                PurchaseOrderDetailsTable DTable = new PurchaseOrderDetailsTable();
                                DTable.PurchaseOrderDetailsId = item.PurchaseOrderDetailsId;
                                DTable.PurchaseItemId         = item.PurchaseItemId;
                                DTable.PurchaseDescription    = item.PurchaseDescription;
                                DTable.PurchaseQuantity       = item.PurchaseQuantity;
                                DTable.PurchaseItemRate       = item.PurchaseItemRate;
                                DTable.Type                  = item.Type;
                                DTable.RowSubTotal           = item.RowSubTotal;
                                DTable.PurchaseDescription   = item.PurchaseDescription;
                                PTable.VenderId              = PViewModel.VenderId;
                                DTable.ServiceDate           = item.ServiceDate;
                                PTable.CompanyId             = PViewModel.CompanyId;
                                DTable.PurchaseTotal         = item.PurchaseTotal;
                                DTable.PurchaseVatPercentage = item.PurchaseVatPercentage;
                                DTable.PurchaseId            = PViewModel.PurchaseOrderID;

                                if (DTable.PurchaseOrderDetailsId == 0)
                                {
                                    _dbcotext.PurchaseOrderDetailsTables.Add(DTable);
                                    _dbcotext.SaveChanges();
                                }
                                else
                                {
                                    _dbcotext.Entry(DTable).State = EntityState.Modified;
                                    _dbcotext.SaveChanges();
                                }
                            }

                            AccountTransictionTable Account = new AccountTransictionTable();
                            Account.TransictionDate       = DateTime.Now;
                            Account.TransictionNumber     = base64Guid;
                            Account.TransictionType       = "Purchase";
                            Account.CreationTime          = DateTime.Now.TimeOfDay;
                            Account.AddedBy               = PViewModel.UserId;
                            Account.FK_CompanyId          = PViewModel.CompanyId;
                            Account.FKPaymentTerm         = 1;
                            Account.TransictionRefrenceId = PTable.PurchaseOrderID.ToString();

                            //Accounts payable  Transaction
                            List <AccountTransictionTable> List = new List <AccountTransictionTable>();
                            List = _dbcotext.AccountTransictionTables.Where(t => t.TransictionRefrenceId == Ref.ToString()).ToList();
                            _dbcotext.AccountTransictionTables.RemoveRange(_dbcotext.AccountTransictionTables.Where(F => F.TransictionRefrenceId == Ref.ToString()));
                            _dbcotext.SaveChanges();

                            int Accountpayble = AccountIdByName("Accounts payable", (int)PViewModel.CompanyId);

                            if (Accountpayble != 0)
                            {
                                Account.Dr           = 0.00;
                                Account.Cr           = PViewModel.PurchaseTotoalAmount;
                                Account.FK_AccountID = Accountpayble;
                                _dbcotext.AccountTransictionTables.Add(Account);
                                _dbcotext.SaveChanges();
                            }

                            // Cost Of Goods Transaction
                            int CostOfGood = AccountIdByName("Cost Of Goods", (int)PViewModel.CompanyId);
                            if (CostOfGood != 0)
                            {
                                Account.Cr           = 0.00;
                                Account.Dr           = PViewModel.PurchaseSubTotal;
                                Account.FK_AccountID = CostOfGood;
                                _dbcotext.AccountTransictionTables.Add(Account);
                                _dbcotext.SaveChanges();
                            }

                            // Input VAT Trnsaction
                            int VatAccountId = AccountIdByName("Input VAT", (int)PViewModel.CompanyId);

                            if (VatAccountId != 0)
                            {
                                Account.Cr           = 0.00;
                                Account.Dr           = PViewModel.Vat21 + PViewModel.Vat6;
                                Account.FK_AccountID = VatAccountId;
                                _dbcotext.AccountTransictionTables.Add(Account);
                                int Id = _dbcotext.SaveChanges();
                            }


                            transaction.Commit();
                            return(Ok());
                        }
                    }
                    catch (Exception)
                    {
                        transaction.Rollback();
                        return(BadRequest());
                    }
                    return(BadRequest());
                }
            }
            /////db.Entry(PurchaseTable).State = EntityState.Modified;
            //db.SaveChanges();
            //        return Ok(PurchaseTable);
        }