Пример #1
0
        private ActionResult ViewDetail(TblSaleOrder ob, string msg, AlertMsgType?msgType)
        {
            try
            {
                if (ob == null)
                {
                    throw new Exception("ไม่พบข้อมูลที่ต้องการ, กรุณาลองใหม่อีกครั้ง");
                }

                if (!string.IsNullOrWhiteSpace(msg))
                {
                    WidgetAlertModel alert = new WidgetAlertModel()
                    {
                        Message = msg
                    };
                    if (msgType.HasValue)
                    {
                        alert.Type = msgType.Value;
                    }
                    ViewBag.Alert = alert;
                }

                return(View(ob));
            }
            catch (Exception ex)
            {
                return(RedirectToAction("Index", MVCController, new
                {
                    area = MVCArea,
                    msg = ex.GetMessage(),
                    msgType = AlertMsgType.Danger
                }));
            }
        }
Пример #2
0
        public JsonResult GetDetail(int?id, string msg, AlertMsgType?msgType)
        {
            TblSaleOrder ob = uow.Modules.SaleOrder.GetFull(id ?? 0);
            var          js = new JavaScriptSerializer();


            return(Json(ob, JsonRequestBehavior.AllowGet));
        }
Пример #3
0
        public ActionResult saveDiscount()
        {
            int qid = Request.Form["SaleOrderId"].ParseInt();

            TblSaleOrder ob = uow.Modules.SaleOrder.Get(qid);

            ob.DiscountCash = Request.Form["DiscountCash"].ParseDecimal();
            uow.Modules.SaleOrder.Set(ob);
            uow.SaveChanges();
            return(RedirectToAction("Detail", MVCController, new { id = qid, tab = "Product", msg = "", msgType = AlertMsgType.Success }));
        }
Пример #4
0
        public IHttpActionResult GetDetail(int?id)
        {
            uow = new UnitOfWork(SystemHelper.GetConfigurationKey(ConfigKey.CONNECTION_DB));
            TblSaleOrder ob = uow.Modules.SaleOrder.GetFull(id ?? 0);
            // ob.TblSaleOrderDetail = uow.Modules.SaleOrderDetail.Gets(id ?? 0);
            // TblCustomer objCustomer = uow.Modules.Customer.Get(Convert.ToInt32(ob.CustomerId));
            var js = new JavaScriptSerializer();


            return(Json(ob));
        }
Пример #5
0
        public JsonResult GetSaleOrderById(int id)
        {
            TblSaleOrder saleOrder = uow.Modules.SaleOrder.GetFull(id);

            //saleOrder.Customer = uow.Modules.Customer.GetByCondition(saleOrder.CustomerId.Value);
            //  saleOrder.Sale = uow.Modules.Employee.GetByCondition(saleOrder.SaleId.Value);

            // TblCustomer objCustomer = uow.Modules.Customer.Get(Convert.ToInt32(ob.CustomerId));



            return(Json(saleOrder, JsonRequestBehavior.AllowGet));
        }
        private ActionResult ViewDetail(TblJobOrder ob, string msg, AlertMsgType?msgType)
        {
            try
            {
                TblSaleOrder saleOrder = null;
                TblCustomer  customer  = null;
                if (ob == null)
                {
                    throw new Exception("ไม่พบข้อมูลที่ต้องการ, กรุณาลองใหม่อีกครั้ง");
                }

                if (!string.IsNullOrWhiteSpace(msg))
                {
                    WidgetAlertModel alert = new WidgetAlertModel()
                    {
                        Message = msg
                    };
                    if (msgType.HasValue)
                    {
                        alert.Type = msgType.Value;
                    }
                    ViewBag.Alert = alert;
                }
                AccountPermission permission = new AccountPermission();
                permission = GetPermissionSale(CurrentUID, ob.CreatedBy.HasValue ? ob.CreatedBy.Value : 0);

                ViewData["JobOrderDetail"]    = uow.Modules.JobOrder.Gets();
                ViewData["SysCategoryDetail"] = uow.Modules.SysCategory.Gets();
                ViewData["SaleorderDetail"]   = uow.Modules.SaleOrder.Gets();
                ViewData["Saleorder"]         = saleOrder = uow.Modules.SaleOrder.Get(ob.SaleOrderId.HasValue ? ob.SaleOrderId.Value : -1);
                ViewData["TeamOperation"]     = uow.Modules.TeamOperation.Gets();
                ViewData["optCustomer"]       = customer = uow.Modules.Customer.Get(saleOrder.CustomerId.HasValue ? saleOrder.CustomerId.Value : -1);
                ViewData["optProduct"]        = uow.Modules.Product.Gets().Where(o => o.CategoryId == 1).ToList();
                ViewData["optAttachment"]     = uow.Modules.SaleOrderAttachment.Gets(ob.SaleOrderId.HasValue ? ob.SaleOrderId.Value : -1);
                //    ViewData["optCustomerAddress"] = uow.Modules.CustomerAddress.Get(customer.addHasValue ? saleOrder.CustomerId.Value : -1);
                ViewData["optPermission"] = permission;
                return(View(ob));
            }
            catch (Exception ex)
            {
                return(RedirectToAction("Index", MVCController, new
                {
                    area = MVCArea,
                    msg = ex.GetMessage(),
                    msgType = AlertMsgType.Danger
                }));
            }
        }
Пример #7
0
        private ActionResult ViewDetail(TblSaleOrder ob, string msg, AlertMsgType?msgType)
        {
            try
            {
                if (ob == null)
                {
                    throw new Exception("ไม่พบข้อมูลที่ต้องการ, กรุณาลองใหม่อีกครั้ง");
                }

                if (!string.IsNullOrWhiteSpace(msg))
                {
                    WidgetAlertModel alert = new WidgetAlertModel()
                    {
                        Message = msg
                    };
                    if (msgType.HasValue)
                    {
                        alert.Type = msgType.Value;
                    }
                    ViewBag.Alert = alert;
                }

                ViewData["optSoDetail"]  = uow.Modules.SaleOrderDetail.Gets(ob.SaleOrderId);
                ViewData["optQuotation"] = uow.Modules.Quotation.Gets()
                                           .Where(q => q.StatusId == 3)
                                           .ToList();
                ViewData["optCustomer"]        = uow.Modules.Customer.GetAllAddress();
                ViewData["optCustomerAddress"] = uow.Modules.CustomerAddress.Gets();
                ViewData["optProduct"]         = uow.Modules.Product.Gets();
                ViewData["optContact"]         = uow.Modules.CustomerContact.Gets();
                ViewData["optEmployee"]        = uow.Modules.Employee.Gets();
                ViewData["optPayment"]         = uow.Modules.PaymentCondition.Gets();
                ViewData["optAttachment"]      = uow.Modules.SaleOrderAttachment.Gets(ob.SaleOrderId);
                return(View(ob));
            }
            catch (Exception ex)
            {
                return(RedirectToAction("Index", MVCController, new
                {
                    area = MVCArea,
                    msg = ex.GetMessage(),
                    msgType = AlertMsgType.Danger
                }));
            }
        }
Пример #8
0
        //[Authorized]
        public ActionResult Delete()
        {
            try
            {
                int          id = Request.Form["SaleOrderId"].ParseInt();
                TblSaleOrder ob = uow.Modules.SaleOrder.Get(id);
                if (ob == null)
                {
                    return(RedirectToAction("Index", MVCController, new { msg = "ไม่พบข้อมูลที่ต้องการ", msgType = AlertMsgType.Warning }));
                }

                uow.Modules.SaleOrder.Delete(ob);
                uow.SaveChanges();
                return(RedirectToAction("Index", MVCController, new { msg = "ลบข้อมูลเรียบร้อยแล้ว", msgType = AlertMsgType.Success }));
            }
            catch (Exception ex)
            { return(RedirectToAction("Index", MVCController, new { msg = ex.GetMessage(), msgType = AlertMsgType.Danger })); }
        }
Пример #9
0
        public void ReplaceVersion(TblQuotationTemplate ob)
        {
            string sql = "sp_TblQuotation_Version_ReplaceTemplate";
            List <SqlParameter> paramList  = new List <SqlParameter>();
            List <TblSaleOrder> list       = new List <TblSaleOrder>();
            TblSaleOrder        dto        = null;
            SqlDataReader       reader     = null;
            SqlCommand          sqlCommand = null;
            int result = 0;

            try
            {
                webdb.OpenConnection();
                paramList.Add(new SqlParameter("@QuotationId", ob.QuotationId));
                paramList.Add(new SqlParameter("@TempQuotationId", ob.TempQuotationId));
                //connect.Open();
                sqlCommand             = new SqlCommand();
                sqlCommand.CommandText = sql;
                sqlCommand.CommandType = CommandType.StoredProcedure;
                sqlCommand.Connection  = webdb.Connection;
                sqlCommand.Parameters.AddRange(paramList.ToArray());

                result = sqlCommand.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                throw new Exception(ex.ToString());
            }
            finally
            {
                if (webdb.Connection.State == ConnectionState.Open)
                {
                    webdb.CloseConnection();
                }
            }
        }
Пример #10
0
        public ActionResult Detail(int?id, string msg, AlertMsgType?msgType)
        {
            TblSaleOrder ob = uow.Modules.SaleOrder.Get(id ?? 0);

            return(ViewDetail(ob, msg, msgType));
        }
Пример #11
0
        public ActionResult SetDetail()
        {
            int          id = Request.Form["SaleOrderId"].ParseInt();
            TblSaleOrder ob = uow.Modules.SaleOrder.Get(id);

            if (ob.SaleOrderId <= 0)
            {
                string pre = Request.Form["SaleOrderPreNo"];
                ob.SaleOrderNo   = genSaleOrderId(pre);
                ob.CreatedBy     = CurrentUID;
                ob.UpdatedBy     = CurrentUID;
                ob.CreatedDate   = CurrentDate;
                ob.UpdateDate    = CurrentDate;
                ob.SaleOrderDate = CurrentDate;
            }
            else
            {
                ob.UpdatedBy  = CurrentUID;
                ob.UpdateDate = CurrentDate;
            }

            ob.QuotationNo = Request.Form["selQuotationNo"];
            ob.SaleId      = Request.Form["SaleId"] != null ? Request.Form["SaleId"].ParseInt() : 0;
            ob.SaleName    = Request.Form["SaleName"];
            if (Request.Form["DeliveryDate"].ToString().Count() > 0)
            {
                var dd = Request.Form["DeliveryDate"].Split(' ')[0] + " 00:00:00";

                ob.DeliveryDate = dd.ParseDate(DateFormat.ddMMyyyyHHmmss);
            }

            ob.CustomerId   = Request.Form["CustomerId"].ParseInt();
            ob.CustomerName = Request.Form["CustomerName"];

            ob.ContractName   = Request.Form["ContractName"];
            ob.BillingAddress = Request.Form["BillingAddress"];

            ob.ShippingAddress = Request.Form["ShippingAddress"];
            ob.SaleOrderRemark = Request.Form["SaleOrderRemark"];

            if (Request.Form["DiscountCash"] != null)
            {
                ob.DiscountCash = decimal.Parse(Request.Form["DiscountCash"]);
            }

            ob.SaleOrderCreditDay = Request.Form["SaleOrderCreditDay"].ParseInt();

            ob.StatusId    = Request.Form["StatusId"].ParseInt();
            ob.ConditionId = Request.Form["ConditionId"].ParseInt();
            try
            {
                uow.Modules.SaleOrder.Set(ob);
                uow.SaveChanges();

                return(RedirectToAction("Detail", MVCController, new { id = ob.SaleOrderId, msg = "บันทึกข้อมูลเรียบร้อยแล้ว", msgType = AlertMsgType.Success }));
            }
            catch (Exception ex)
            {
                string msg = ex.GetMessage(true);
                return(ViewDetail(ob, msg, AlertMsgType.Danger));
            }
        }
Пример #12
0
        public ActionResult QT2SO()
        {
            int sid = 0;

            if (string.IsNullOrEmpty(Request.Form["lbSaleOrderId"]))
            {
                sid = Request.Form["lbSaleOrderId"].ParseInt();
            }
            else
            {
                TblSaleOrder ob  = uow.Modules.SaleOrder.Get(sid);
                string       pre = Request.Form["lbPreSONo"];
                ob.SaleOrderNo   = genSaleOrderId(pre);
                ob.CreatedBy     = CurrentUID;
                ob.UpdatedBy     = CurrentUID;
                ob.CreatedDate   = CurrentDate;
                ob.UpdateDate    = CurrentDate;
                ob.SaleOrderDate = CurrentDate;
                ob.CustomerId    = 1;
                ob.SaleId        = 1;
                ob.StatusId      = 1;
                ob.ConditionId   = 1;
                uow.Modules.SaleOrder.Set(ob);
                uow.SaveChanges();

                sid = ob.SaleOrderId;
            }
            if (sid > 0)
            {
                string qno = Request.Form["lbQuotationId"];

                TblSaleOrder so  = uow.Modules.SaleOrder.Get(sid);
                var          qid = uow.Modules.Quotation.GetId(qno);
                TblQuotation qt  = uow.Modules.Quotation.Get(qid);
                List <TblQuotationDetail> qtd = uow.Modules.QuotationDetail.Gets(qid)
                                                .OrderBy(c => c.Id).ToList();


                // clear saleorderdetail
                uow.Modules.SaleOrderDetail.DeleteId(sid);
                //  uow.SaveChanges();

                // set QT to SO
                so.QuotationNo     = qno;
                so.CustomerId      = qt.CustomerId;
                so.CustomerName    = qt.CustomerName;
                so.ContractName    = qt.ContractName;
                so.SaleId          = qt.SaleId;
                so.SaleName        = qt.SaleName;
                so.BillingAddress  = qt.BillingAddress;
                so.ShippingAddress = qt.ShippingAddress;
                so.SaleOrderRemark = qt.QuotationRemark;
                so.SubTotalNet     = qt.SubTotalNet;
                so.SubTotalTot     = qt.SubTotalTot;
                so.SubTotalVat     = qt.SubTotalVat;
                so.DiscountCash    = qt.DiscountCash;
                so.DiscountNet     = qt.DiscountNet;
                so.DiscountTot     = qt.DiscountTot;
                so.DiscountVat     = qt.DiscountVat;
                so.SummaryNet      = qt.SummaryNet;
                so.SummaryTot      = qt.SummaryTot;
                so.SummaryVat      = qt.SummaryVat;

                uow.Modules.SaleOrder.Set(so);
                // uow.SaveChanges();


                //Add QT detail to SO detail
                if (qtd.Count() > 0)
                {
                    qtd.ForEach(dt =>
                    {
                        TblSaleOrderDetail sod = uow.Modules.SaleOrderDetail.Get(0);
                        sod.SaleOrderId        = sid;
                        sod.ProductId          = dt.ProductId;
                        sod.Quantity           = dt.Quantity;
                        sod.PriceNet           = dt.PriceNet;
                        sod.PriceVat           = dt.PriceVat;
                        sod.PriceTot           = dt.PriceTot;
                        sod.DiscountNet        = dt.DiscountNet;
                        sod.DiscountTot        = dt.DiscountTot;
                        sod.DiscountVat        = dt.DiscountVat;
                        sod.TotalNet           = dt.TotalNet;
                        sod.TotalTot           = dt.TotalTot;
                        sod.TotalVat           = dt.TotalVat;
                        uow.Modules.SaleOrderDetail.Set(sod);
                    });
                }

                uow.SaveChanges();
            }
            return(RedirectToAction("Detail", MVCController, new { id = sid, msg = "", msgType = AlertMsgType.Success }));
        }
Пример #13
0
        public ActionResult SetDetail()
        {
            bool         addQuotationDetail = false;
            int          id            = Request.Form["SaleOrderId"].ParseInt();
            int          approveStatus = Request.Form["hdApprove"] != null ? Request.Form["hdApprove"].ParseInt() : 0;
            TblSaleOrder ob            = uow.Modules.SaleOrder.Get(id);

            if (ob.SaleOrderId <= 0)
            {
                string pre = Request.Form["SaleOrderPreNo"];
                ob.SaleOrderNo     = genSaleOrderId(pre);
                ob.CreatedBy       = CurrentUID;
                ob.UpdatedBy       = CurrentUID;
                ob.CreatedDate     = CurrentDate;
                ob.UpdatedDate     = CurrentDate;
                ob.SaleOrderDate   = CurrentDate;
                addQuotationDetail = true;
            }
            else
            {
                ob.UpdatedBy   = CurrentUID;
                ob.UpdatedDate = CurrentDate;
            }


            if (approveStatus == 3)
            {
                ob.ApprovedBy = Convert.ToInt32(CurrentUID);
            }

            ob.QuotationNo = Request.Form["QuotationNo"];
            ob.SaleId      = Request.Form["SaleId"] != null ? Request.Form["SaleId"].ParseInt() : 0;
            ob.SaleName    = Request.Form["SaleName"];
            if (Request.Form["DeliveryDate"].ToString().Count() > 0)
            {
                var dd = Request.Form["DeliveryDate"].Split(' ')[0] + " 00:00:00";

                ob.DeliveryDate = dd.ParseDate(DateFormat.ddMMyyyyHHmmss);
            }

            ob.CustomerId   = Request.Form["CustomerId"].ParseInt();
            ob.CustomerName = Request.Form["CustomerName"];

            ob.ContractName   = Request.Form["ContractName"];
            ob.BillingAddress = Request.Form["BillingAddress"];

            ob.ShippingAddress = Request.Form["ShippingAddress"];
            ob.SaleOrderRemark = Request.Form["SaleOrderRemark"];
            ob.TeamId          = Request.Form["TeamId"].ParseInt();
            if (Request.Form["DiscountCash"] != null)
            {
                ob.DiscountCash = decimal.Parse(Request.Form["DiscountCash"]);
            }

            ob.SaleOrderCreditDay = Request.Form["SaleOrderCreditDay"].ParseInt();

            ob.StatusId    = Request.Form["StatusId"].ParseInt();
            ob.ConditionId = Request.Form["ConditionId"].ParseInt();
            try
            {
                uow.Modules.SaleOrder.Set(ob);
                uow.SaveChanges();

                id = ob.SaleOrderId;
                if (id > 0 && addQuotationDetail)
                {
                    string qno = Request.Form["QuotationNo"];

                    TblSaleOrder so  = uow.Modules.SaleOrder.Get(id);
                    var          qid = uow.Modules.Quotation.GetId(qno);
                    TblQuotation qt  = uow.Modules.Quotation.Get(qid);
                    List <TblQuotationDetail> qtd = uow.Modules.QuotationDetail.Gets(qid)
                                                    .OrderBy(c => c.Id).ToList();


                    // clear saleorderdetail
                    uow.Modules.SaleOrderDetail.DeleteId(id);
                    //  uow.SaveChanges();

                    // set QT to SO
                    so.QuotationNo        = qno;
                    so.CustomerId         = qt.CustomerId;
                    so.CustomerName       = qt.CustomerName;
                    so.ContractName       = qt.ContractName;
                    so.SaleId             = qt.SaleId;
                    so.SaleName           = qt.SaleName;
                    so.BillingAddress     = qt.BillingAddress;
                    so.ShippingAddress    = qt.ShippingAddress;
                    so.SaleOrderRemark    = qt.QuotationRemark;
                    so.SubTotalNet        = qt.SubTotalNet;
                    so.SubTotalTot        = qt.SubTotalTot;
                    so.SubTotalVat        = qt.SubTotalVat;
                    so.DiscountCash       = qt.DiscountCash;
                    so.DiscountNet        = qt.DiscountNet;
                    so.DiscountTot        = qt.DiscountTot;
                    so.DiscountVat        = qt.DiscountVat;
                    so.SummaryNet         = qt.SummaryNet;
                    so.SummaryTot         = qt.SummaryTot;
                    so.SummaryVat         = qt.SummaryVat;
                    so.SaleOrderCreditDay = qt.QuotationCreditDay;
                    uow.Modules.SaleOrder.Set(so);
                    // uow.SaveChanges();


                    //Add QT detail to SO detail
                    if (qtd.Count() > 0)
                    {
                        qtd.ForEach(dt =>
                        {
                            TblSaleOrderDetail sod = uow.Modules.SaleOrderDetail.Get(0);
                            sod.SaleOrderId        = id;
                            sod.ProductId          = dt.ProductId;
                            sod.Quantity           = dt.Quantity;
                            sod.PriceUnit          = dt.PriceUnit;
                            sod.PriceNet           = dt.PriceNet;
                            sod.PriceVat           = dt.PriceVat;
                            sod.PriceTot           = dt.PriceTot;
                            sod.DiscountNet        = dt.DiscountNet;
                            sod.DiscountTot        = dt.DiscountTot;
                            sod.DiscountVat        = dt.DiscountVat;
                            sod.TotalNet           = dt.TotalNet;
                            sod.TotalTot           = dt.TotalTot;
                            sod.TotalVat           = dt.TotalVat;
                            uow.Modules.SaleOrderDetail.Set(sod);
                        });
                    }

                    uow.SaveChanges();
                }

                if (ob.StatusId == 2)
                {
                    uow.Modules.SaleOrder.SaleOrderStockApprove(ob.SaleOrderId);
                }


                return(RedirectToAction("Detail", MVCController, new { id = ob.SaleOrderId, msg = "บันทึกข้อมูลเรียบร้อยแล้ว", msgType = AlertMsgType.Success }));
            }
            catch (Exception ex)
            {
                string msg = ex.GetMessage(true);
                return(ViewDetail(ob, msg, AlertMsgType.Danger));
            }
        }
Пример #14
0
        public ActionResult QT2SO()
        {
            int sid = 0;


            if (!string.IsNullOrEmpty(Request.Form["lbSaleOrderId"]))
            {
                sid = Request.Form["lbSaleOrderId"].ParseInt();
                TblSaleOrder ob = uow.Modules.SaleOrder.Get(sid);

                if (ob.SaleOrderId <= 0)
                {
                    string pre = Request.Form["SaleOrderPreNo"];
                    ob.SaleOrderNo   = genSaleOrderId(pre);
                    ob.CreatedBy     = CurrentUID;
                    ob.UpdatedBy     = CurrentUID;
                    ob.CreatedDate   = CurrentDate;
                    ob.UpdatedDate   = CurrentDate;
                    ob.SaleOrderDate = CurrentDate;
                }
                else
                {
                    ob.UpdatedBy   = CurrentUID;
                    ob.UpdatedDate = CurrentDate;
                }

                ob.QuotationNo = Request.Form["QuotationNo"];
                ob.SaleId      = Request.Form["SaleId"] != null ? Request.Form["SaleId"].ParseInt() : 0;
                ob.SaleName    = Request.Form["SaleName"];
                if (Request.Form["DeliveryDate"].ToString().Count() > 0)
                {
                    var dd = Request.Form["DeliveryDate"].Split(' ')[0] + " 00:00:00";

                    ob.DeliveryDate = dd.ParseDate(DateFormat.ddMMyyyyHHmmss);
                }
                TblQuotation quotation = uow.Modules.Quotation.Get(ob.QuotationNo);

                ob.CustomerId         = quotation.CustomerId;
                ob.CustomerName       = quotation.CustomerName;
                ob.SaleOrderCreditDay = quotation.QuotationCreditDay;
                ob.ContractName       = quotation.ContractName;
                ob.BillingAddress     = quotation.BillingAddress;

                ob.ShippingAddress = quotation.ShippingAddress;
                ob.SaleOrderRemark = Request.Form["SaleOrderRemark"];
                ob.TeamId          = Request.Form["TeamId"].ParseInt();
                if (Request.Form["DiscountCash"] != null)
                {
                    ob.DiscountCash = decimal.Parse(Request.Form["DiscountCash"]);
                }

                ob.SaleOrderCreditDay = Request.Form["SaleOrderCreditDay"].ParseInt();

                ob.StatusId    = Request.Form["StatusId"].ParseInt();
                ob.ConditionId = Request.Form["ConditionId"].ParseInt();


                uow.Modules.SaleOrder.Set(ob);
                uow.SaveChanges();
                sid = ob.SaleOrderId;
            }
            else if (Request.Form["lbSaleOrderId"] == "")
            {
            }
            else
            {
                TblSaleOrder ob  = uow.Modules.SaleOrder.Get(sid);
                string       pre = Request.Form["lbPreSONo"];
                ob.SaleOrderNo   = genSaleOrderId(pre);
                ob.CreatedBy     = CurrentUID;
                ob.UpdatedBy     = CurrentUID;
                ob.CreatedDate   = CurrentDate;
                ob.UpdatedDate   = CurrentDate;
                ob.SaleOrderDate = CurrentDate;
                ob.CustomerId    = 1;
                ob.SaleId        = 1;
                ob.StatusId      = 1;
                ob.ConditionId   = 1;

                uow.Modules.SaleOrder.Set(ob);
                uow.SaveChanges();

                sid = ob.SaleOrderId;
            }


            if (sid > 0)
            {
                string qno = Request.Form["QuotationNo"];

                TblSaleOrder so  = uow.Modules.SaleOrder.Get(sid);
                var          qid = uow.Modules.Quotation.GetId(qno);
                TblQuotation qt  = uow.Modules.Quotation.Get(qid);
                List <TblQuotationDetail> qtd = uow.Modules.QuotationDetail.Gets(qid)
                                                .OrderBy(c => c.Id).ToList();


                // clear saleorderdetail
                uow.Modules.SaleOrderDetail.DeleteId(sid);
                //  uow.SaveChanges();

                // set QT to SO
                so.QuotationNo     = qno;
                so.CustomerId      = qt.CustomerId;
                so.CustomerName    = qt.CustomerName;
                so.ContractName    = qt.ContractName;
                so.SaleId          = qt.SaleId;
                so.SaleName        = qt.SaleName;
                so.BillingAddress  = qt.BillingAddress;
                so.ShippingAddress = qt.ShippingAddress;
                so.SaleOrderRemark = qt.QuotationRemark;
                so.SubTotalNet     = qt.SubTotalNet;
                so.SubTotalTot     = qt.SubTotalTot;
                so.SubTotalVat     = qt.SubTotalVat;
                so.DiscountCash    = qt.DiscountCash;
                so.DiscountNet     = qt.DiscountNet;
                so.DiscountTot     = qt.DiscountTot;
                so.DiscountVat     = qt.DiscountVat;
                so.SummaryNet      = qt.SummaryNet;
                so.SummaryTot      = qt.SummaryTot;
                so.SummaryVat      = qt.SummaryVat;
                so.SaleOrderRemark = qt.QuotationRemark;

                uow.Modules.SaleOrder.Set(so);
                // uow.SaveChanges();


                //Add QT detail to SO detail
                if (qtd.Count() > 0)
                {
                    qtd.ForEach(dt =>
                    {
                        TblSaleOrderDetail sod = uow.Modules.SaleOrderDetail.Get(0);
                        sod.SaleOrderId        = sid;
                        sod.ProductId          = dt.ProductId;
                        sod.WHId        = dt.WHId;
                        sod.Quantity    = dt.Quantity;
                        sod.PriceUnit   = dt.PriceUnit;
                        sod.PriceNet    = dt.PriceNet;
                        sod.PriceVat    = dt.PriceVat;
                        sod.PriceTot    = dt.PriceTot;
                        sod.DiscountNet = dt.DiscountNet;
                        sod.DiscountTot = dt.DiscountTot;
                        sod.DiscountVat = dt.DiscountVat;
                        sod.TotalNet    = dt.TotalNet;
                        sod.TotalTot    = dt.TotalTot;
                        sod.TotalVat    = dt.TotalVat;
                        sod.Remark      = dt.Remark;
                        uow.Modules.SaleOrderDetail.Set(sod);
                    });
                }

                uow.SaveChanges();
            }
            return(RedirectToAction("Detail", MVCController, new { id = sid, msg = "", msgType = AlertMsgType.Success }));
        }
Пример #15
0
        public ActionResult AddProduct()
        {
            int     sid       = Request.Form["SaleOrderId"].ParseInt();
            var     productId = Request.Form["selProduct"].Split(':');                          //  ProductId:PriceNet
            int     qty       = Request.Form["ProductQty"].ParseInt();
            var     SelSaleOrdernProductId = Request.Form["SelQSaleOrderProductId"].ParseInt(); //  ProductId:PriceNet
            int     WHId         = Request.Form["selWareHose"].ParseInt();
            Decimal price        = Request.Form["ProductPrice"].ParseDecimal();
            Decimal discount     = Request.Form["ProductDiscount"].ParseDecimal();
            decimal realDiscount = 0;

            var remark = Request.Form["Remark"];

            if (productId.Count() > 0)
            {
                int pid = Converting.ToInt(productId[0]);
                //   SelQuotationProductId > 0 ? uow.Modules.QuotationDetail.Get(SelQuotationProductId) : uow.Modules.QuotationDetail.Get(qid, Converting.ToInt(productId[0]), WHId);
                TblSaleOrderDetail ob = SelSaleOrdernProductId > 0 ? uow.Modules.SaleOrderDetail.Get(SelSaleOrdernProductId) :  uow.Modules.SaleOrderDetail.Get(sid, pid, WHId);
                realDiscount   = discount;
                ob.SaleOrderId = sid;
                ob.WHId        = WHId;
                ob.ProductId   = pid;
                ob.Quantity    = qty;
                ob.PriceNet    = price * qty;
                ob.CalType     = Request.Form["selCalType"].ParseInt();
                ob.PriceVat    = uow.Modules.System.GetVatFromNet(price * qty);
                // ob.PriceVat = (price * qty * vat) - (price * qty);
                ob.PriceTot = price * qty + ob.PriceVat;

                if (ob.CalType == 1)
                {
                    realDiscount = ((ob.PriceNet * discount) / 100);
                }



                ob.Discount    = discount;
                ob.DiscountNet = realDiscount;
                ob.DiscountVat = uow.Modules.System.GetVatFromNet(realDiscount);
                ob.DiscountTot = realDiscount + ob.DiscountVat;


                ob.TotalNet = ob.PriceNet - realDiscount;

                ob.TotalVat = ob.PriceVat - ob.DiscountVat;
                ob.TotalTot = ob.PriceTot - ob.DiscountTot;

                ob.Remark = remark;


                uow.Modules.SaleOrderDetail.Set(ob);
                uow.SaveChanges();


                TblSaleOrder objQuoation = uow.Modules.SaleOrder.GetDetail(sid);

                objQuoation.SubTotalNet = objQuoation.TblSaleOrderDetail.Sum(o => o.PriceNet);
                objQuoation.SubTotalVat = objQuoation.TblSaleOrderDetail.Sum(o => o.PriceVat);
                objQuoation.SubTotalTot = objQuoation.TblSaleOrderDetail.Sum(o => o.PriceTot);
                objQuoation.DiscountNet = objQuoation.TblSaleOrderDetail.Sum(o => o.DiscountNet);
                objQuoation.DiscountVat = objQuoation.TblSaleOrderDetail.Sum(o => o.DiscountVat);
                objQuoation.DiscountTot = objQuoation.TblSaleOrderDetail.Sum(o => o.DiscountTot);
                objQuoation.SummaryNet  = objQuoation.TblSaleOrderDetail.Sum(o => o.TotalNet);
                objQuoation.SummaryVat  = objQuoation.TblSaleOrderDetail.Sum(o => o.TotalVat);
                objQuoation.SummaryTot  = objQuoation.TblSaleOrderDetail.Sum(o => o.TotalTot);

                uow.Modules.SaleOrder.Set(objQuoation);
                uow.SaveChanges();
            }
            return(RedirectToAction("Detail", MVCController, new { id = sid, tab = "Product", msg = "", msgType = AlertMsgType.Success }));
        }
Пример #16
0
        private ActionResult ViewDetail(TblSaleOrder ob, string msg, AlertMsgType?msgType)
        {
            List <TblQuotation> quotationList = null;

            try
            {
                if (ob == null)
                {
                    throw new Exception("ไม่พบข้อมูลที่ต้องการ, กรุณาลองใหม่อีกครั้ง");
                }

                if (!string.IsNullOrWhiteSpace(msg))
                {
                    WidgetAlertModel alert = new WidgetAlertModel()
                    {
                        Message = msg
                    };
                    if (msgType.HasValue)
                    {
                        alert.Type = msgType.Value;
                    }
                    ViewBag.Alert = alert;
                }

                quotationList = uow.Modules.Quotation.GetQuatationNotSale()
                                .Where(q => q.StatusId == 3)
                                .ToList();
                if (quotationList == null)
                {
                    quotationList = new List <TblQuotation>();
                }

                AccountPermission permission = new AccountPermission();
                permission = GetPermissionSale(CurrentUser.AccountId, ob.CreatedBy.HasValue ? ob.CreatedBy.Value : 0);

                quotationList.Add(uow.Modules.Quotation.Get(ob.QuotationNo));
                ViewData["optSoDetail"]        = uow.Modules.SaleOrderDetail.Gets(ob.SaleOrderId);
                ViewData["optQuotation"]       = quotationList;
                ViewData["optCustomer"]        = uow.Modules.Customer.GetAllAddress();
                ViewData["optCustomerAddress"] = uow.Modules.CustomerAddress.Gets();
                ViewData["optProduct"]         = uow.Modules.Product.Gets("0");
                ViewData["optContact"]         = uow.Modules.CustomerContact.Gets();
                ViewData["optEmployee"]        = uow.Modules.Employee.Gets();
                ViewData["optPayment"]         = uow.Modules.PaymentCondition.Gets();
                ViewData["optAttachment"]      = uow.Modules.SaleOrderAttachment.Gets(ob.SaleOrderId);
                ViewData["optTeam"]            = uow.Modules.TeamOperation.Gets();
                ViewData["userAccount"]        = CurrentUser;
                ViewData["optPermission"]      = permission;
                ViewData["optWareHouse"]       = uow.Modules.WareHouse.Gets();
                return(View(ob));
            }
            catch (Exception ex)
            {
                return(RedirectToAction("Index", MVCController, new
                {
                    area = MVCArea,
                    msg = ex.GetMessage(),
                    msgType = AlertMsgType.Danger
                }));
            }
        }