示例#1
0
        public ActionResult Summary(Guid Id)
        {
            var itemFounds = ClaimManager.GetClaim(Id);

            BookingClaimViewModel model = new BookingClaimViewModel();

            if (itemFounds != null)
            {
                model.Claim     = itemFounds[0];
                model.Insurance = itemFounds[0].Insurance;
                model.Product   = itemFounds[0].Product;

                if (itemFounds[0].ClaimCauses.Count > 0)
                {
                    model.ClaimCauses = new List <ClaimCause>();
                    for (int i = 0; i < itemFounds[0].ClaimCauses.Count; i++)
                    {
                        ClaimCause cause = new ClaimCause
                        {
                            sDescription = itemFounds[0].ClaimCauses[i].sDescription,
                            iQty         = itemFounds[0].ClaimCauses[i].iQty,
                            sNote        = itemFounds[0].ClaimCauses[i].sNote
                        };
                        model.ClaimCauses.Add(cause);
                    }
                }
            }

            this.HttpContext.Session["BookingViewModel"] = model;
            return(View(model));
            //return PartialView( model);
        }
示例#2
0
        public ActionResult Confirm(BookingClaimViewModel model, FormCollection collection)
        {
            // initial a reference number //

            model.Claim.sClaimNo = String.Format("{0}{1}", CharBooking.C.ToString(), ClaimNextItemNoManager.GetNextItemNo());

            if (model.Product != null)
            {
                model.Product.Brand = BrandManager.GetById(model.Product.kBrandId);
            }
            model.Product.ProductType = ProductTypeManager.GetById(model.Product.kProductTypeId);

            string keyname;
            string keyvalue;
            int    countvalue = 0;

            for (int i = 0; i <= collection.Count - 1; i++)
            {
                keyname  = collection.AllKeys[i];
                keyvalue = collection[i];

                if (keyname.Contains("cause"))
                {
                    countvalue++;
                }
            }

            if (countvalue > 1)
            {
                model.ClaimCauses = new List <ClaimCause>();
                for (int i = 1; i <= countvalue / 4; i++)
                {
                    ClaimCause claimCause = new ClaimCause();
                    claimCause.kClaimCauseId = Guid.NewGuid();
                    claimCause.sDescription  = collection[String.Format("cause_description_{0}", i)];
                    claimCause.sNote         = collection[String.Format("cause_note_{0}", i)];

                    if (!String.IsNullOrEmpty(claimCause.sDescription))
                    {
                        int qty = 0;
                        if (int.TryParse(collection[String.Format("cause_qty_{0}", i)], out qty))
                        {
                            claimCause.iQty = qty;
                        }

                        Decimal price = 0;
                        if (Decimal.TryParse(collection[String.Format("cause_price_{0}", i)], out price))
                        {
                            claimCause.dPrice = price;
                        }
                        model.ClaimCauses.Add(claimCause);
                    }
                }
            }

            this.HttpContext.Session["BookingViewModel"] = model;

            return(PartialView("Confirm", model));
        }
示例#3
0
        public ActionResult Create()
        {
            ViewBag.ClaimCreate  = "first active";
            ViewBag.ProductTypes = ProductTypeManager.GetAll();
            ViewBag.Brands       = BrandManager.GetAll();

            BookingClaimViewModel model = new BookingClaimViewModel();

            return(View(model));
        }
示例#4
0
        public ActionResult Edit2(BookingClaimViewModel model, FormCollection collection)
        {
            try
            {
                if (model.Claim != null)
                {
                    //initial value
                    var item_found = ClaimManager.GetById(model.Claim.kClaimId);

                    #region SAVE EDIT CLAIM BOOKING
                    //Insurance
                    model.Insurance.kInsuranceId = item_found.Insurance.kInsuranceId;
                    InsuranceManager.Edit(model.Insurance);

                    //Product
                    model.Product.kProductId = item_found.Product.kProductId;
                    ProductManager.Edit(model.Product);

                    //Claim
                    model.Claim.kClaimId   = item_found.kClaimId;
                    model.Claim.kStaffId   = item_found.kStaffId;
                    model.Claim.kOwnerId   = item_found.kOwnerId;
                    model.Claim.sClaimNo   = item_found.sClaimNo;
                    model.Claim.IsComplete = item_found.IsComplete;
                    model.Claim.IsRecieved = item_found.IsRecieved;
                    model.Claim.IsNoCredit = item_found.IsNoCredit;

                    model.Claim.kInsuranceId      = model.Insurance.kInsuranceId;
                    model.Claim.kProductId        = model.Product.kProductId;
                    model.Claim.dtInsuranceExpire = model.Claim.dtInsuranceExpire.Value.AddYears(-543);

                    model.Claim.dtDateAdd    = item_found.dtDateAdd;
                    model.Claim.dtDateUpdate = item_found.dtDateUpdate;
                    ClaimManager.Edit(model.Claim);


                    #endregion
                }
            }
            catch (Exception ex)
            {
                return(View("Error"));
            }
            return(RedirectToAction("Index"));
        }
示例#5
0
        public ActionResult Edit(Guid id)
        {
            ViewBag.ClaimCreate  = "first active";
            ViewBag.SuperUser    = StaffManager.GetAll().Where(m => m.vStaffPositionDescription == "หัวหน้าช่าง");
            ViewBag.ProductTypes = ProductTypeManager.GetAll();
            ViewBag.Brands       = BrandManager.GetAll();

            BookingClaimViewModel model = new BookingClaimViewModel();
            var claim = ClaimManager.GetById(id);

            if (claim.dtInsuranceExpire.HasValue)
            {
                claim.dtInsuranceExpire = claim.dtInsuranceExpire.Value.AddYears(543);
            }



            model.Claim = claim;
            //model.Repair.RepairCauses = repair.RepairCauses;
            model.Insurance = claim.Insurance;
            model.Product   = claim.Product;
            return(View(model));
        }
示例#6
0
        public ActionResult Index()
        {
            ViewBag.ClientName = User.Identity.Name;
            ViewBag.ClaimList  = "first active";

            BookingClaimViewModel model = new BookingClaimViewModel();

            ViewBag.WorkingStatus = new SelectList(WorkingStatusManager.GetAll().Where(m => m.iDefault > 0), "kWorkingStatusId", "sDescription");


            if (!User.IsInRole("Admin"))
            {
                if (Staff.vStaffPositionDescription == "ฝ่ายเครม")
                {
                    return(View("ListsCR", model));
                }
                else
                {
                    return(View("ListsUser", model));
                }
            }

            return(View(model));
        }
示例#7
0
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                if (!this.IsPostBack)
                {
                    model = (BookingClaimViewModel)System.Web.HttpContext.Current.Session["BookingViewModel"];

                    if (model != null)
                    {
                        runRptViewer();
                        #region Application Setting
                        ReportParameter ApplicationSettingName;
                        ReportParameter ApplicationSettingAddress;
                        ReportParameter ApplicationTel;
                        ReportParameter ApplicationFax;
                        if (model.ApplicationSetting != null)
                        {
                            if (!String.IsNullOrEmpty(model.ApplicationSetting.sApplicationName))
                            {
                                ApplicationSettingName = new ReportParameter("ApplicationSettingName", model.ApplicationSetting.sApplicationName);
                            }
                            else
                            {
                                ApplicationSettingName = new ReportParameter("ApplicationSettingName", "-");
                            }

                            if (!String.IsNullOrEmpty(model.ApplicationSetting.vApplicationAddress))
                            {
                                ApplicationSettingAddress = new ReportParameter("ApplicationSettingAddress", model.ApplicationSetting.vApplicationAddress);
                            }
                            else
                            {
                                ApplicationSettingAddress = new ReportParameter("ApplicationSettingAddress", "-");
                            }


                            if (!String.IsNullOrEmpty(model.ApplicationSetting.sPhone))
                            {
                                ApplicationTel = new ReportParameter("ApplicationTel", model.ApplicationSetting.sPhone);
                            }
                            else
                            {
                                ApplicationTel = new ReportParameter("ApplicationTel", "-");
                            }

                            if (!String.IsNullOrEmpty(model.ApplicationSetting.sFax))
                            {
                                ApplicationFax = new ReportParameter("ApplicationFax", model.ApplicationSetting.sFax);
                            }
                            else
                            {
                                ApplicationFax = new ReportParameter("ApplicationFax", "-");
                            }
                        }
                        else
                        {
                            ApplicationSettingName    = new ReportParameter("ApplicationSettingName", "-");
                            ApplicationSettingAddress = new ReportParameter("ApplicationSettingAddress", "-");
                            ApplicationTel            = new ReportParameter("ApplicationTel", "-");
                            ApplicationFax            = new ReportParameter("ApplicationFax", "-");
                        }
                        #endregion

                        #region Customer

                        ReportParameter CustomerName;
                        ReportParameter CustomerMobile;
                        ReportParameter CustomerPhone;
                        if (model.Insurance != null)
                        {
                            if (!String.IsNullOrEmpty(model.Insurance.sInsuranceName))
                            {
                                CustomerName = new ReportParameter("CustomerName", model.Insurance.sInsuranceName);
                            }
                            else
                            {
                                CustomerName = new ReportParameter("CustomerName", "-");
                            }

                            if (!String.IsNullOrEmpty(model.Insurance.sMobile))
                            {
                                CustomerMobile = new ReportParameter("CustomerMobile", model.Insurance.sMobile);
                            }
                            else
                            {
                                CustomerMobile = new ReportParameter("CustomerMobile", "-");
                            }

                            if (!String.IsNullOrEmpty(model.Insurance.sPhone))
                            {
                                CustomerPhone = new ReportParameter("CustomerPhone", model.Insurance.sPhone);
                            }
                            else
                            {
                                CustomerPhone = new ReportParameter("CustomerPhone", "-");
                            }
                        }
                        else
                        {
                            CustomerName   = new ReportParameter("CustomerName", "-");
                            CustomerMobile = new ReportParameter("CustomerMobile", "-");
                            CustomerPhone  = new ReportParameter("CustomerPhone", "-");
                        }
                        #endregion


                        #region Product

                        ReportParameter ProductType;
                        ReportParameter ProductBrand;
                        ReportParameter ProductModel;

                        if (model.Product != null)
                        {
                            if (!String.IsNullOrEmpty(model.Product.vProductTypeDescription))
                            {
                                ProductType = new ReportParameter("ProductType", model.Product.vProductTypeDescription);
                            }
                            else
                            {
                                ProductType = new ReportParameter("ProductType", "-");
                            }

                            if (!String.IsNullOrEmpty(model.Product.vBrandDescription))
                            {
                                ProductBrand = new ReportParameter("ProductBrand", model.Product.vBrandDescription);
                            }
                            else
                            {
                                ProductBrand = new ReportParameter("ProductBrand", "-");
                            }

                            if (!String.IsNullOrEmpty(model.Product.sProductModel))
                            {
                                ProductModel = new ReportParameter("ProductModel", model.Product.sProductModel);
                            }
                            else
                            {
                                ProductModel = new ReportParameter("ProductModel", "-");
                            }
                        }
                        else
                        {
                            ProductType  = new ReportParameter("ProductType", "-");
                            ProductBrand = new ReportParameter("ProductBrand", "-");
                            ProductModel = new ReportParameter("ProductModel", "-");
                        }
                        #endregion


                        #region Claim
                        ReportParameter ReferenceNumber;
                        ReportParameter DateAdd;
                        ReportParameter TimeAdd;
                        ReportParameter Serial;



                        if (model.Claim != null)
                        {
                            if (!String.IsNullOrEmpty(model.Claim.sClaimNo))
                            {
                                ReferenceNumber = new ReportParameter("ReferenceNumber", model.Claim.sClaimNo);
                            }
                            else
                            {
                                ReferenceNumber = new ReportParameter("ReferenceNumber", "-");
                            }

                            if (model.Claim.dtDateAdd.HasValue)
                            {
                                DateAdd = new ReportParameter("DateAdd", DateExtension.DateThaiFormat(model.Claim.dtDateAdd.Value));
                            }
                            else
                            {
                                DateAdd = new ReportParameter("DateAdd", "-");
                            }

                            if (model.Claim.dtDateAdd.HasValue)
                            {
                                TimeAdd = new ReportParameter("TimeAdd", DateTime.Now.ToString(DateExtension.TimeFormat()));
                            }
                            else
                            {
                                TimeAdd = new ReportParameter("TimeAdd", "-");
                            }

                            if (!String.IsNullOrEmpty(model.Claim.sSerial))
                            {
                                Serial = new ReportParameter("Serial", model.Claim.sSerial);
                            }
                            else
                            {
                                Serial = new ReportParameter("Serial", "-");
                            }
                        }
                        else
                        {
                            ReferenceNumber = new ReportParameter("ReferenceNumber", "-");
                            DateAdd         = new ReportParameter("DateAdd", "-");
                            TimeAdd         = new ReportParameter("TimeAdd", "-");
                            Serial          = new ReportParameter("Serial", "-");
                        }

                        #endregion


                        ReportViewer1.LocalReport.SetParameters(new ReportParameter[] {
                            ApplicationSettingName,
                            ApplicationSettingAddress,
                            CustomerName,
                            CustomerMobile,
                            ReferenceNumber,
                            ProductType,
                            DateAdd,
                            TimeAdd,
                            ApplicationTel,
                            Serial,
                            ApplicationFax
                        });
                        Session["BookingViewModel"] = null;
                    }
                }
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
示例#8
0
        public ActionResult Create(BookingClaimViewModel model, FormCollection collection)
        {
            try
            {
                //initial working status
                var workingStatusId = WorkingStatusManager.GetAll().Where(m => m.iDefault == (int)Working.Claiming).SingleOrDefault();

                if (model.Product != null)
                {
                    model.Product.Brand = BrandManager.GetById(model.Product.kBrandId);
                }
                model.Product.ProductType = ProductTypeManager.GetById(model.Product.kProductTypeId);

                #region SAVE CUSTOMER
                var insCount = InsuranceManager.GetCountDuplicate(model.Insurance.sInsuranceName.Trim());
                if (insCount.Count <= 0)
                {
                    Insurance insurance = new Insurance
                    {
                        kInsuranceId   = Guid.NewGuid(),
                        sInsuranceName = model.Insurance.sInsuranceName,
                        sAddress1      = model.Insurance.sAddress1,
                        sCity          = model.Insurance.sCity,
                        sZip           = model.Insurance.sZip,
                        sPhone         = model.Insurance.sPhone,
                        sMobile        = model.Insurance.sMobile,
                        sFax           = model.Insurance.sFax,
                        sEmailAddress  = model.Insurance.sEmailAddress
                    };
                    InsuranceManager.Create(insurance);
                    model.Claim.Insurance = insurance;
                }
                else
                {
                    model.Claim.Insurance = insCount[0];
                }
                #endregion

                #region SAVE Brand
                var brandCount = BrandManager.GetCountDuplicate(model.Product.Brand.sBrandName.Trim());
                if (brandCount.Count <= 0)
                {
                    Brand brand = new Brand
                    {
                        kBrandId   = Guid.NewGuid(),
                        sBrandName = model.Product.Brand.sBrandName
                    };
                    BrandManager.Create(brand);
                    model.Product.Brand = brand;
                }
                else
                {
                    model.Product.Brand = brandCount[0];
                }
                #endregion

                #region SAVE Product Type
                var productTypeCount = ProductTypeManager.GetCountDuplicate(model.Product.ProductType.sDescription.Trim());
                if (productTypeCount.Count <= 0)
                {
                    ProductType productType = new ProductType
                    {
                        kProductTypeId = Guid.NewGuid(),
                        sDescription   = model.Product.ProductType.sDescription
                    };
                    ProductTypeManager.Create(productType);
                    model.Product.ProductType = productType;
                }
                else
                {
                    model.Product.ProductType = productTypeCount[0];
                }
                #endregion

                #region SAVE PRODUCT
                var productCount = ProductManager.GetCountDuplicate(
                    model.Product.sProductName.Trim()
                    //, model.Product.Brand.sBrandName.Trim()
                    //, model.Product.ProductType.sDescription.Trim()
                    );
                if (productCount.Count <= 0)
                {
                    Product product = new Product
                    {
                        kProductId     = Guid.NewGuid(),
                        kProductTypeId = productTypeCount.SingleOrDefault().kProductTypeId,
                        kBrandId       = brandCount.SingleOrDefault().kBrandId,
                        sProductName   = model.Product.sProductName,
                        sProductModel  = model.Product.sProductModel
                    };
                    ProductManager.Create(product);
                    model.Product = product;
                }
                else
                {
                    model.Product = productCount[0];
                }
                #endregion

                #region SAVE CLAIM BOOKING
                var repair = RepairManager.GetByRepairNo(model.Claim.sRepairNo ?? "");

                //initial booking first character
                string char_number = CharBooking.C.ToString();

                Claim claim = new Claim();
                claim.dtDateUpdate = DateTime.Now;
                claim.kClaimId     = Guid.NewGuid();
                claim.kStaffId     = (Guid)Membership.GetUser().ProviderUserKey;
                claim.kOwnerId     = repair.kOwnerId ?? (Guid)Membership.GetUser().ProviderUserKey;
                claim.kInsuranceId = model.Claim.Insurance.kInsuranceId;
                claim.kProductId   = model.Product.kProductId;
                claim.sRepairNo    = model.Claim.sRepairNo;
                claim.sClaimNo     = String.Format("{0}{1}", char_number, ClaimNextItemNoManager.GetNextItemNo());
                claim.sSerial      = model.Claim.sSerial;
                if (model.Claim.dtInsuranceExpire != null)
                {
                    claim.dtInsuranceExpire = model.Claim.dtInsuranceExpire.Value.AddYears(-543);
                }


                model.Claim = claim;
                ClaimManager.Create(model.Claim);
                ClaimNextItemNoManager.IncreaseNextItemNo();

                #region also pdate repair side

                repair.dtDateUpdate = DateTime.Now;
                repair.kStaffId     = (Guid)Membership.GetUser().ProviderUserKey;
                RepairManager.Edit(repair);

                #endregion

                #endregion

                #region SAVE REPAIR WORKING STATUS

                ClaimStatus claimStatus = new ClaimStatus
                {
                    kClaimStatusId   = Guid.NewGuid(),
                    kWorkingStatusId = workingStatusId.kWorkingStatusId,
                    kStaffId         = (Guid)Membership.GetUser().ProviderUserKey,
                    kClaimId         = model.Claim.kClaimId
                };
                ClaimStatusManager.Create(claimStatus);

                #endregion

                #region UPDATE REPAIR WORKING STATUS
                if (!String.IsNullOrEmpty(model.Claim.sRepairNo))
                {
                    repair = RepairManager.GetByRepairNo(model.Claim.sRepairNo);

                    RepairStatus repairStatus = new RepairStatus
                    {
                        kRepairStatusId  = Guid.NewGuid(),
                        kWorkingStatusId = workingStatusId.kWorkingStatusId,
                        kStaffId         = (Guid)Membership.GetUser().ProviderUserKey,
                        kRepairId        = repair.kRepairId
                    };
                    RepairStatusManager.Create(repairStatus);
                }
                #endregion



                #region SAVE CAUSE OF CLAIM

                //initial cause
                string keyname;
                string keyvalue;
                int    countvalue = 0;
                for (int i = 0; i <= collection.Count - 1; i++)
                {
                    keyname  = collection.AllKeys[i];
                    keyvalue = collection[i];

                    if (keyname.Contains("cause"))
                    {
                        countvalue++;
                    }
                }

                if (countvalue > 1)
                {
                    model.ClaimCauses = new List <ClaimCause>();
                    for (int i = 1; i <= countvalue / 4; i++)
                    {
                        ClaimCause claimCause = new ClaimCause();
                        claimCause.kClaimCauseId = Guid.NewGuid();
                        claimCause.kClaimId      = model.Claim.kClaimId;
                        claimCause.kStaffId      = (Guid)Membership.GetUser().ProviderUserKey;
                        claimCause.sDescription  = collection[String.Format("cause_description_{0}", i)];
                        claimCause.sNote         = collection[String.Format("cause_note_{0}", i)];

                        if (!String.IsNullOrEmpty(claimCause.sDescription))
                        {
                            int qty = 0;
                            if (int.TryParse(collection[String.Format("cause_qty_{0}", i)], out qty))
                            {
                                claimCause.iQty = qty;
                            }

                            Decimal price = 0;
                            if (Decimal.TryParse(collection[String.Format("cause_price_{0}", i)], out price))
                            {
                                claimCause.dPrice = price;
                            }

                            model.ClaimCauses.Add(claimCause);
                            ClaimCourseManager.Create(claimCause);
                        }
                    }
                }

                if (model.ClaimCauses != null)
                {
                    foreach (var item in model.ClaimCauses)
                    {
                        var causeCount = CauseManager.GetCountDuplicate(item.sDescription.Trim());
                        if (causeCount <= 0)
                        {
                            Cause cause = new Cause
                            {
                                kCauseId     = Guid.NewGuid(),
                                sDescription = item.sDescription.Trim()
                            };
                            CauseManager.Create(cause);
                        }
                    }
                }
                #endregion
            }
            catch (Exception ex)
            {
                return(RedirectToAction("Error", "Home"));
            }

            Claim model2 = ClaimManager.GetById(model.Claim.kClaimId);

            //create remind for history
            RemindHistory remind = new RemindHistory
            {
                sRemind  = model2.vMessage,
                kStaffId = model2.kStaffId
            };
            RemindHistoryManager.Create(remind);

            var clientName = User.Identity.Name;
            Task.Factory.StartNew(() =>
            {
                var clients = Hub.GetClients <RealTimeJTableDemoHub>();
                clients.RecordCreated(clientName, model2);
            });

            return(RedirectToAction("Index"));
        }