コード例 #1
0
        public IHttpActionResult PutQutationDetailsTable(int id, InvoiceDetailsTable InvoiceDetailsTable)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != InvoiceDetailsTable.InvoiceDetailId)
            {
                return(BadRequest());
            }

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

            try
            {
                db.SaveChanges();
                return(Ok(InvoiceDetailsTable));
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!InvoiceDetailsTableExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }
        }
コード例 #2
0
        public IHttpActionResult DeleteInvoiceDtailsTable(int id)
        {
            InvoiceDetailsTable invoiceDetailsTable = db.InvoiceDetailsTables.Find(id);

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

            db.InvoiceDetailsTables.Remove(invoiceDetailsTable);
            db.SaveChanges();

            return(Ok(invoiceDetailsTable));
        }
コード例 #3
0
        public IHttpActionResult PostQutationDetailsTable(InvoiceDetailsTable invoiceDetailsTable)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            try
            {
                invoiceDetailsTable = db.InvoiceDetailsTables.Add(invoiceDetailsTable);
                db.SaveChanges();

                return(Ok());
            }

            catch (Exception ex)
            {
                return(BadRequest());
            }
        }
コード例 #4
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());
                    }
                }
            }
        }
コード例 #5
0
        public JsonResult Proceeds(int QutationId, string Status, string Type)
        {
            HttpResponseMessage responsses = new HttpResponseMessage();

            MVCQutationModel            QutationModel        = new MVCQutationModel();
            List <MVCQutationViewModel> _QuatationDetailList = new List <MVCQutationViewModel>();

            InvoiceTable    InvoiceTable    = new InvoiceTable();
            MVCInvoiceModel mvcInvoiceModel = new MVCInvoiceModel();

            try
            {
                QutationModel        = GetQutationById(QutationId);
                _QuatationDetailList = GetQuatationDetailListById(QutationId);
                if (QutationModel != null)
                {
                    mvcInvoiceModel.Invoice_ID     = QutationModel.Qutation_ID;
                    mvcInvoiceModel.QutationId     = QutationModel.QutationID;
                    mvcInvoiceModel.CompanyId      = QutationModel.CompanyId;
                    mvcInvoiceModel.UserId         = Convert.ToInt32(Session["LoginUserID"]);
                    mvcInvoiceModel.ContactId      = QutationModel.ContactId;
                    mvcInvoiceModel.InvoiceID      = 0;
                    mvcInvoiceModel.RefNumber      = QutationModel.RefNumber;
                    mvcInvoiceModel.InvoiceDate    = QutationModel.QutationDate;
                    mvcInvoiceModel.InvoiceDueDate = QutationModel.DueDate;
                    mvcInvoiceModel.SubTotal       = QutationModel.SubTotal;
                    mvcInvoiceModel.DiscountAmount = QutationModel.DiscountAmount;
                    mvcInvoiceModel.TotalAmount    = QutationModel.TotalAmount;
                    mvcInvoiceModel.CustomerNote   = QutationModel.CustomerNote;
                    mvcInvoiceModel.TotalVat21     = QutationModel.TotalVat21;
                    mvcInvoiceModel.TotalVat6      = QutationModel.TotalVat6;
                    mvcInvoiceModel.Type           = StatusEnum.Goods.ToString();
                    mvcInvoiceModel.Status         = "accepted";
                    HttpResponseMessage InvoiceResponse = GlobalVeriables.WebApiClient.PostAsJsonAsync("PostInvoice", mvcInvoiceModel).Result;
                    InvoiceTable = InvoiceResponse.Content.ReadAsAsync <InvoiceTable>().Result;

                    if (InvoiceResponse.StatusCode == System.Net.HttpStatusCode.OK)
                    {
                        if (_QuatationDetailList != null)
                        {
                            foreach (var item in _QuatationDetailList)
                            {
                                InvoiceDetailsTable InvoiceDetails = new InvoiceDetailsTable();
                                InvoiceDetails.ItemId      = Convert.ToInt32(item.ItemId);
                                InvoiceDetails.InvoiceId   = InvoiceTable.InvoiceID;
                                InvoiceDetails.Description = item.Description;
                                InvoiceDetails.Quantity    = item.Quantity;
                                InvoiceDetails.Rate        = Convert.ToDouble(item.Rate);
                                InvoiceDetails.Total       = Convert.ToDouble(item.Total);
                                InvoiceDetails.ServiceDate = item.ServiceDate;
                                InvoiceDetails.RowSubTotal = item.RowSubTotal;
                                InvoiceDetails.Vat         = Convert.ToDouble(item.Vat);
                                InvoiceDetails.Type        = item.Type;
                                responsses = GlobalVeriables.WebApiClient.PostAsJsonAsync("PostinvoiceDetails", InvoiceDetails).Result;

                                if (responsses.StatusCode != System.Net.HttpStatusCode.OK)
                                {
                                    return(new JsonResult {
                                        Data = new { Status = "Fail", Message = "Fail to Proceed" }
                                    });
                                }
                            }

                            if (UpdateQuatationStation(QutationId))
                            {
                                if (Transaction(QutationModel, "Add"))
                                {
                                    return(new JsonResult {
                                        Data = new { Status = "Success", Message = "Proceed successfullly" }
                                    });
                                }
                            }
                        }
                    }
                    else
                    {
                        return(new JsonResult {
                            Data = new { Status = "Fail", Message = "Fail Proceed successfullly" }
                        });
                    }
                }
            }

            catch (Exception)
            {
                throw;
            }

            return(new JsonResult {
                Data = new { Status = "Success", Message = "Proceed successfullly" }
            });
        }