Ejemplo n.º 1
0
        // GET: CSBILLs/Edit/5
        public ActionResult Edit(string id, int?page)
        {
            ViewBag.Title = "Edit Billing Item";
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            CSBILL cSBILL = db.CSBILLs.Find(MyHtmlHelpers.ConvertByteStrToId(id));

            if (cSBILL == null)
            {
                return(HttpNotFound());
            }

            //ViewBag.JOBCASE = new SelectList(db.CSJOBDs.Include(c => c.CSJOBM).Where(x => (x.JOBNO == cSBILL.JOBNO && x.CASENO == cSBILL.CASENO) || (x.CSJOBM.CONO == cSBILL.CONO && x.CSJOBM.JOBPOST == "Y" && x.COMPLETE == "N" && x.CSJOBM.VDATE <= cSBILL.ENTDATE)).
            //    Select(s => new { JOBCASE = s.JOBNO + "-" + s.CASENO, JOBDESC = s.JOBNO + " | " + s.CASENO + " | " + s.CSJOBM.VDATE.ToString() + " | " + s.CASECODE + " | " + s.CASEREM + " | " + s.CASEMEMO }).
            //    OrderBy(y => y.JOBCASE), "JOBCASE", "JOBDESC", cSBILL.JOBCASE);
            //ViewBag.ITEMTYPE = new SelectList(db.CSITEMs, "ITEMTYPE", "ITEMDESC", cSBILL.ITEMTYPE);
            //ViewBag.CONO = new SelectList(db.CSCOMSTRs.Select(x => new { CONO = x.CONO, CONAME = x.CONAME + "  (" + x.CONO + ")" }).OrderBy(y => y.CONAME), "CONO", "CONAME", cSBILL.CONO);
            //ViewBag.BILLDESC = new SelectList(db.CSBILLDESCs.Select(x => new { BILLDESC = x.BILLDESC, BILLSPEC = x.BILLDESC + " | " + x.BILLSPEC }).OrderBy(y => y.BILLDESC), "BILLDESC", "BILLDESC", cSBILL.ITEMDESC);
            //ViewBag.CASECODE = new SelectList(db.CSCASEs, "CASECODE", "CASEDESC", cSBILL.CASECODE);

            ViewBag.page          = page ?? 1;
            Session["CSBillPage"] = ViewBag.page;
            return(CallView(cSBILL));
        }
Ejemplo n.º 2
0
        // GET: CSBILLs/Create
        public ActionResult Create()
        {
            decimal taxrate = 0;
            string  taxcode = "SSTN01";

            CSITEM cSITEM = db.CSITEMs.Find("Work");

            if (cSITEM != null)
            {
                taxrate = cSITEM.GSTRATE ?? 0;
            }

            CSBILL cSBILL = new CSBILL();

            cSBILL.ENTDATE    = DateTime.Today;
            cSBILL.SYSGENBool = false;
            cSBILL.STAMP      = 1;
            cSBILL.SYSGEN     = "N";
            cSBILL.PRFALLOC   = "N";
            //cSBILL.TAXRATE = db.CSPARAMs.Find("DEFAULT").TAXRATE;
            //cSBILL.CONO = "750059-M"; // hack to show first company jobs
            taxcode = db.CSTAXTYPEs.Where(x => x.TAXRATE == taxrate && x.EFFECTIVE_START <= cSBILL.ENTDATE && x.EFFECTIVE_END >= cSBILL.ENTDATE).Select(y => y.TAXCODE).FirstOrDefault() ?? taxcode;

            cSBILL.TAXRATE = taxrate;
            cSBILL.TAXCODE = taxcode;

            ViewBag.page          = 1;
            Session["CSBillPage"] = ViewBag.page;

            ViewBag.Title = "Create Billing Item";
            return(CallView("Edit", cSBILL));
        }
Ejemplo n.º 3
0
        public ActionResult Edit([Bind(Include = "BILLNO,ENTDATE,CONO,JOBNO,CASENO,CASECODE,ITEMTYPE,ITEMDESC,ITEMSPEC,TAXRATE,ITEMAMT1,TAXAMT1,NETAMT1,ITEMAMT2,TAXAMT2,NETAMT2,ITEMAMT,TAXAMT,NETAMT,SYSGEN,PRFALLOC,SYSGENBool,PRFALLOCBool,PRFNO,PRFID,STAMP")] CSBILL cSBILL)
        {
            if (ModelState.IsValid)
            {
                ASIDBConnection newdb = new ASIDBConnection();
                try
                {
                    CSBILL curRec = newdb.CSBILLs.Find(cSBILL.BILLNO);
                    if (curRec.STAMP == cSBILL.STAMP)
                    {
                        cSBILL.STAMP = cSBILL.STAMP + 1;

                        db.Entry(cSBILL).State = EntityState.Modified;
                        db.SaveChanges();
                        return(RedirectToAction("Index"));
                    }
                    else
                    {
                        ModelState.AddModelError(string.Empty, "Record is modified");
                    }
                }
                catch (Exception e)
                {
                    ModelState.AddModelError(string.Empty, e.Message);
                }
                finally
                {
                    newdb.Dispose();
                }
            }

            return(CallView(cSBILL));
        }
Ejemplo n.º 4
0
        public ActionResult CallView(string ViewName, CSBILL cSBILL)
        {
            //if (_company == null)
            //{
            var _company = db.CSCOMSTRs.Select(x => new { CONO = x.CONO, CONAME = x.CONAME + "  (" + x.COREGNO + ")" }).OrderBy(y => y.CONAME).ToList();

            //}

            ViewBag.JOBCASE = new SelectList(db.CSJOBDs.Include(c => c.CSJOBM).Where(x => (x.JOBNO == cSBILL.JOBNO && x.CASENO == cSBILL.CASENO) || (x.CSJOBM.CONO == cSBILL.CONO && x.CSJOBM.JOBPOST == "Y" && x.COMPLETE == "N" && x.CSJOBM.VDATE <= cSBILL.ENTDATE)).
                                             Select(s => new { JOBCASE = s.JOBNO + "-" + s.CASENO, JOBDESC = s.JOBNO + " | " + s.CASENO + " | " + s.CSJOBM.VDATE.ToString() + " | " + s.CASECODE + " | " + s.CASEREM + " | " + s.CASEMEMO, JOBDATE = s.CSJOBM.VDATE.ToString() }).
                                             OrderBy(y => y.JOBDATE), "JOBCASE", "JOBDESC", cSBILL.JOBCASE);
            ViewBag.ITEMTYPE = new SelectList(db.CSITEMs, "ITEMTYPE", "ITEMDESC", cSBILL.ITEMTYPE ?? "Work");
            ViewBag.CONO     = new SelectList(_company, "CONO", "CONAME", cSBILL.CONO);
            ViewBag.BILLDESC = new SelectList(db.CSBILLDESCs.Select(x => new { BILLDESC = x.BILLDESC, BILLSPEC = x.BILLDESC + " | " + x.BILLSPEC }).OrderBy(y => y.BILLDESC), "BILLDESC", "BILLDESC", cSBILL.ITEMDESC);
            ViewBag.CASECODE = new SelectList(db.CSCASEs, "CASECODE", "CASEDESC", cSBILL.CASECODE);
            ViewBag.TAXCODE  = new SelectList(db.CSTAXTYPEs.Select(s => new { TAXCODE = s.TAXCODE, TAXDESC = s.TAXTYPE + "|" + s.TAXRCODE + "|" + s.TAXRATE.ToString() + "|" + s.EFFECTIVE_START.ToString() + "|" + s.EFFECTIVE_END.ToString() + "|" + s.TAXDESC }), "TAXCODE", "TAXDESC", cSBILL.TAXCODE);

            if (ViewName == "")
            {
                return(View(cSBILL));
            }
            else
            {
                return(View(ViewName, cSBILL));
            };
        }
Ejemplo n.º 5
0
        public ActionResult Create([Bind(Include = "ENTDATE,CONO,JOBNO,SYSGENBool,PRFALLOCBool,CASENO,CASECODE,ITEMTYPE,ITEMDESC,ITEMSPEC,TAXRATE,ITEMAMT1,TAXAMT1,NETAMT1,ITEMAMT2,TAXAMT2,NETAMT2,ITEMAMT,TAXAMT,NETAMT,SYSGEN,PRFALLOC,PRFNO,PRFID,STAMP")] CSBILL cSBILL)
        {
            if (ModelState.IsValid)
            {
                SALASTNO serialTbl = db.SALASTNOes.Find("CSBILL");
                if (serialTbl != null)
                {
                    try
                    {
                        string prefix  = serialTbl.LASTPFIX;
                        int    MaxNo   = serialTbl.LASTNOMAX;
                        bool   AutoGen = serialTbl.AUTOGEN == "Y";
                        serialTbl.LASTNO = serialTbl.LASTNO + 1;
                        cSBILL.BILLNO    = serialTbl.LASTNO.ToString("D10");


                        serialTbl.STAMP           = serialTbl.STAMP + 1;
                        db.Entry(serialTbl).State = EntityState.Modified;
                        db.CSBILLs.Add(cSBILL);
                        db.SaveChanges();
                        return(RedirectToAction("Index"));
                    }
                    catch (Exception e)
                    {
                        ModelState.AddModelError(string.Empty, e.Message);
                    }
                    finally
                    {
                        View("Edit", cSBILL);
                    }
                }
            }

            return(CallView("Edit", cSBILL));
        }
Ejemplo n.º 6
0
        public ActionResult DeleteConfirmed(string id)
        {
            CSBILL cSBILL = db.CSBILLs.Find(MyHtmlHelpers.ConvertByteStrToId(id));

            try
            {
                db.CSBILLs.Remove(cSBILL);
                db.SaveChanges();

                int page = (int)Session["CSBillPage"];
                return(RedirectToAction("Index", new { page = page }));
            }
            catch (DbEntityValidationException dbEx)
            {
                foreach (var validationErrors in dbEx.EntityValidationErrors)
                {
                    foreach (var validationError in validationErrors.ValidationErrors)
                    {
                        //string message = string.Format("{0}:{1}",
                        //    validationErrors.Entry.Entity.ToString(),
                        //   validationError.ErrorMessage);
                        // raise a new exception nesting
                        // the current instance as InnerException
                        ModelState.AddModelError(validationError.PropertyName, validationError.ErrorMessage);
                    }
                }
            }
            catch (DbUpdateException ex)
            {
                UpdateException updateException = (UpdateException)ex.InnerException;
                if (updateException != null)
                {
                    if (updateException.InnerException != null)
                    {
                        var sqlException = (FirebirdSql.Data.FirebirdClient.FbException)updateException.InnerException;

                        foreach (var error in sqlException.Errors)
                        {
                            if (error.Message != null)
                            {
                                ModelState.AddModelError(string.Empty, error.Message);
                            }
                        }
                    }
                    else
                    {
                        ModelState.AddModelError(string.Empty, updateException.Message);
                    }
                }
                else
                {
                    ModelState.AddModelError(string.Empty, updateException.Message);
                }
            }

            ViewBag.page = Session["CSBillPage"];

            ViewBag.Title = "Delete Billing Item";
            return(CallView("Edit", cSBILL));
        }
Ejemplo n.º 7
0
        public ActionResult DeleteConfirmed(string id)
        {
            CSBILL cSBILL = db.CSBILLs.Find(MyHtmlHelpers.ConvertByteStrToId(id));

            db.CSBILLs.Remove(cSBILL);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Ejemplo n.º 8
0
        public PartialViewResult Search()
        {
            CSBILL searchRec = null;

            //searchRec.CONO = pSearchCode;
            //searchRec.CONAME = pSearchName;
            if (Session["SearchBillRec"] != null)
            {
                searchRec = (CSBILL)Session["SearchBillRec"];
            }
            else
            {
                searchRec = new CSBILL();
            }
            if (Session["SearchBillSort"] == null)
            {
                Session["SearchBillSort"] = "BILLNO";
            }
            ;

            List <SelectListItem> listItems = new List <SelectListItem>();

            listItems.Add(new SelectListItem
            {
                Text     = "Company Name",
                Value    = "CONAME",
                Selected = (string)Session["SearchBillSort"] == "CONAME"
            });

            listItems.Add(new SelectListItem
            {
                Text     = "Item #",
                Value    = "BILLNO",
                Selected = (string)Session["SearchBillSort"] == "BILLNO"
            });

            listItems.Add(new SelectListItem
            {
                Text     = "Item # Latest",
                Value    = "BILLNOLAST",
                Selected = (string)Session["SearchBillSort"] == "BILLNOLAST"
            });

            listItems.Add(new SelectListItem
            {
                Text     = "Item Date",
                Value    = "ENTDATE",
                Selected = (string)Session["SearchBillSort"] == "ENTDATE"
            });


            ViewBag.SORTBY   = listItems;
            ViewBag.CASECODE = new SelectList(db.CSCASEs.OrderBy(x => x.CASECODE), "CASECODE", "CASECODE");
            ViewBag.ITEMTYPE = new SelectList(db.CSITEMs, "ITEMTYPE", "ITEMDESC");
            return(PartialView("Partial/Search", searchRec));
        }
Ejemplo n.º 9
0
        // GET: CSBILLs/Delete/5
        public ActionResult Delete(string id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            CSBILL cSBILL = db.CSBILLs.Find(MyHtmlHelpers.ConvertByteStrToId(id));

            if (cSBILL == null)
            {
                return(HttpNotFound());
            }
            ViewBag.Title = "Delete Billing Item";
            return(CallView("Edit", cSBILL));
        }
Ejemplo n.º 10
0
        // GET: CSBILLs/Create
        public ActionResult Create()
        {
            CSBILL cSBILL = new CSBILL();

            cSBILL.ENTDATE    = DateTime.Now;
            cSBILL.SYSGENBool = false;
            cSBILL.STAMP      = 1;
            cSBILL.SYSGEN     = "N";
            cSBILL.PRFALLOC   = "N";
            cSBILL.TAXRATE    = db.CSPARAMs.Find("DEFAULT").TAXRATE;
            cSBILL.CONO       = "750059-M"; // hack to show first company jobs


            ViewBag.Title = "Create Billing Item";
            return(CallView("Edit", cSBILL));
        }
Ejemplo n.º 11
0
        // GET: CSBILLs/Details/5
        public ActionResult Details(string id, int?page)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            CSBILL cSBILL = db.CSBILLs.Find(MyHtmlHelpers.ConvertByteStrToId(id));

            if (cSBILL == null)
            {
                return(HttpNotFound());
            }
            ViewBag.page          = page ?? 1;
            Session["CSBillPage"] = ViewBag.page;

            ViewBag.Title = "Billing Details";
            return(CallView("Edit", cSBILL));
        }
Ejemplo n.º 12
0
        public ActionResult EditJobCase(CSBILL cSBILL)
        {
            string UseView = "Partial/EditJobCase";

            ModelState.Remove("JOBNO");
            ModelState.Remove("CASENO");
            ModelState.Remove("CASECODE");
            ModelState.Remove("JOBCASE");
            ModelState.Remove("ITEMDESC");
            ModelState.Remove("ITEMSPEC");
            ModelState.Remove("ITEMTYPE");
            ModelState.Remove("TAXRATE");
            ModelState.Remove("ITEMAMT1");
            ModelState.Remove("ITEMAMT2");
            ModelState.Remove("TAXAMT1");
            ModelState.Remove("TAXAMT2");

            //ModelState.Clear();

            CSJOBD csRec = db.CSJOBDs.Find(cSBILL.JOBNO, cSBILL.CASENO);

            if (csRec != null)
            {
                cSBILL.CASECODE = csRec.CASECODE;

                CSCASE csCase = db.CSCASEs.Find(csRec.CASECODE);
                if (csCase != null)
                {
                    cSBILL.ITEMDESC = csCase.CASEDESC;
                    cSBILL.ITEMSPEC = csRec.CASEMEMO;
                }
            }
            else
            {
                UseView          = "Partial/EditJobCaseNoJOBD";
                ViewBag.CASECODE = new SelectList(db.CSCASEs, "CASECODE", "CASEDESC", cSBILL.CASECODE);
            }


            ViewBag.TAXCODE = new SelectList(db.CSTAXTYPEs.Select(s => new { TAXCODE = s.TAXCODE, TAXDESC = s.TAXTYPE + "|" + s.TAXRCODE + "|" + s.TAXRATE.ToString() + "|" + s.EFFECTIVE_START.ToString() + "|" + s.EFFECTIVE_END.ToString() + "|" + s.TAXDESC }), "TAXCODE", "TAXDESC", cSBILL.TAXCODE);

            ViewBag.ITEMTYPE = new SelectList(db.CSITEMs, "ITEMTYPE", "ITEMDESC", cSBILL.ITEMTYPE);
            return(PartialView(UseView, cSBILL));
        }
Ejemplo n.º 13
0
        public ActionResult EditCompanyJob(CSBILL cSBILL)
        {
            //ModelState.Clear(); //apparent this has side-effects and using Remove is preferrable
            ModelState.Remove("CONO");
            ModelState.Remove("JOBCASE");
            ModelState.Remove("JOBNO");
            ModelState.Remove("CASENO");
            ModelState.Remove("CASECODE");
            ModelState.Remove("ITEMDESC");
            ModelState.Remove("ITEMSPEC");
            ModelState.Remove("TAXRATE");
            cSBILL.JOBNO  = null;
            cSBILL.CASENO = null;

            ViewBag.BILLDESC = new SelectList(db.CSBILLDESCs.Select(x => new { BILLDESC = x.BILLDESC, BILLSPEC = x.BILLDESC + " | " + x.BILLSPEC }).OrderBy(y => y.BILLDESC), "BILLDESC", "BILLDESC", cSBILL.ITEMDESC);

            ViewBag.JOBCASE = new SelectList(db.CSJOBDs.Include(c => c.CSJOBM).Where(x => (x.CSJOBM.CONO == cSBILL.CONO && x.CSJOBM.JOBPOST == "Y" && x.COMPLETE == "N" && x.CSJOBM.VDATE <= cSBILL.ENTDATE)).
                                             Select(s => new { JOBCASE = s.JOBNO + "-" + s.CASENO, JOBDESC = s.JOBNO + " | " + s.CASENO + " | " + s.CSJOBM.VDATE.ToString() + " | " + s.CASECODE + " | " + s.CASEREM + " | " + s.CASEMEMO, JOBDATE = s.CSJOBM.VDATE.ToString() }).
                                             OrderBy(y => y.JOBDATE), "JOBCASE", "JOBDESC", cSBILL.JOBCASE);
            return(PartialView("Partial/EditCompanyJob", cSBILL));
        }
Ejemplo n.º 14
0
 public ActionResult SearchPost(CSBILL cSBILL)
 {
     Session["SearchBillRec"]  = cSBILL;
     Session["SearchBillSort"] = Request.Params["SORTBY"] ?? "ENTDATE";
     return(Index(1));
 }
Ejemplo n.º 15
0
        // GET: CSBILLs
        public ActionResult Index(int?page)
        {
            string pSearchCode = "";
            string pSearchName = "";
            string pSearchCase = "";
            string pSearchItem = "";
            string pSearchDesc = "";
            string pSearchBill = "";
            string pSearchJob  = "";

            if (Session["SearchBillRec"] != null)
            {
                CSBILL searchRec = (CSBILL)(Session["SearchBillRec"]);
                pSearchCode = searchRec.CONO ?? "";
                pSearchName = searchRec.CSCOMSTR.CONAME ?? "";
                pSearchCase = searchRec.CASECODE ?? "";
                pSearchItem = searchRec.ITEMTYPE ?? "";
                pSearchDesc = searchRec.ITEMDESC ?? "";
                pSearchBill = searchRec.BILLNO ?? "";
                pSearchJob  = searchRec.JOBNO ?? "";
            }

            IQueryable <CSBILL> cSBILLs = db.CSBILLs;

            if (pSearchCode != "")
            {
                cSBILLs = cSBILLs.Where(x => x.CONO.Contains(pSearchCode));
            }
            ;
            if (pSearchName != "")
            {
                cSBILLs = cSBILLs.Where(x => x.CSCOMSTR.CONAME.Contains(pSearchName));
            }
            ;
            if (pSearchCase != "")
            {
                cSBILLs = cSBILLs.Where(x => x.CASECODE == pSearchCase);
            }
            ;
            if (pSearchItem != "")
            {
                cSBILLs = cSBILLs.Where(x => x.ITEMTYPE == pSearchItem);
            }
            ;
            if (pSearchDesc != "")
            {
                cSBILLs = cSBILLs.Where(x => x.ITEMDESC.Contains(pSearchDesc));
            }
            ;
            if (pSearchBill != "")
            {
                cSBILLs = cSBILLs.Where(x => x.BILLNO.Contains(pSearchBill));
            }
            ;
            if (pSearchJob != "")
            {
                cSBILLs = cSBILLs.Where(x => x.JOBNO.Contains(pSearchJob));
            }
            ;

            cSBILLs = cSBILLs.Where(d => d.PRFALLOC == "N").Include(c => c.CSITEM).Include(d => d.CSCOMSTR);

            if ((string)Session["SearchBillSort"] == "CONAME")
            {
                return(View("Index", cSBILLs.OrderBy(n => n.CSCOMSTR.CONAME).ToList().ToPagedList(page ?? 1, 30)));
            }
            else if ((string)Session["SearchBillSort"] == "ENTDATE")
            {
                return(View("Index", cSBILLs.OrderBy(n => n.ENTDATE).ToList().ToPagedList(page ?? 1, 30)));
            }
            else if ((string)Session["SearchBillSort"] == "BILLNOLAST")
            {
                return(View("Index", cSBILLs.OrderByDescending(n => n.BILLNO).ToList().ToPagedList(page ?? 1, 30)));
            }
            else
            {
                return(View("Index", cSBILLs.OrderBy(n => n.BILLNO).ToList().ToPagedList(page ?? 1, 30)));
            }
        }
Ejemplo n.º 16
0
 public ActionResult CallView(CSBILL cSBILL)
 {
     return(CallView("", cSBILL));
 }
Ejemplo n.º 17
0
        public ActionResult Edit([Bind(Include = "BILLNO,ENTDATE,CONO,JOBNO,CASENO,CASECODE,ITEMTYPE,ITEMDESC,ITEMSPEC,TAXCODE,TAXRATE,ITEMAMT1,TAXAMT1,NETAMT1,ITEMAMT2,TAXAMT2,NETAMT2,ITEMAMT,TAXAMT,NETAMT,SYSGEN,PRFALLOC,SYSGENBool,PRFALLOCBool,PRFNO,PRFID,STAMP")] CSBILL cSBILL)
        {
            if (ModelState.IsValid)
            {
                ASIDBConnection newdb = new ASIDBConnection();
                try
                {
                    CSBILL curRec = newdb.CSBILLs.Find(cSBILL.BILLNO);
                    if (curRec.STAMP == cSBILL.STAMP)
                    {
                        cSBILL.STAMP = cSBILL.STAMP + 1;

                        db.Entry(cSBILL).State = EntityState.Modified;
                        db.SaveChanges();

                        int page = (int)Session["CSBillPage"];
                        return(RedirectToAction("Index", new { page = page }));
                    }
                    else
                    {
                        ModelState.AddModelError(string.Empty, "Record is modified");
                    }
                }
                catch (DbEntityValidationException dbEx)
                {
                    foreach (var validationErrors in dbEx.EntityValidationErrors)
                    {
                        foreach (var validationError in validationErrors.ValidationErrors)
                        {
                            //string message = string.Format("{0}:{1}",
                            //    validationErrors.Entry.Entity.ToString(),
                            //   validationError.ErrorMessage);
                            // raise a new exception nesting
                            // the current instance as InnerException
                            ModelState.AddModelError(validationError.PropertyName, validationError.ErrorMessage);
                        }
                    }
                }
                catch (DbUpdateException ex)
                {
                    UpdateException updateException = (UpdateException)ex.InnerException;
                    if (updateException != null)
                    {
                        if (updateException.InnerException != null)
                        {
                            var sqlException = (FirebirdSql.Data.FirebirdClient.FbException)updateException.InnerException;

                            foreach (var error in sqlException.Errors)
                            {
                                if (error.Message != null)
                                {
                                    ModelState.AddModelError(string.Empty, error.Message);
                                }
                            }
                        }
                        else
                        {
                            ModelState.AddModelError(string.Empty, updateException.Message);
                        }
                    }
                    else
                    {
                        ModelState.AddModelError(string.Empty, updateException.Message);
                    }
                }
                catch (Exception e)
                {
                    ModelState.AddModelError(string.Empty, e.Message);
                }
                finally
                {
                    newdb.Dispose();
                }
            }

            return(CallView(cSBILL));
        }
Ejemplo n.º 18
0
        protected void UpdateCSTRANM(CSPRF cSPRF, CSBILL cSBILL, CSTRANM cSTRANM)
        {
            cSTRANM.SOURCE   = "CSPRF";
            cSTRANM.SOURCENO = cSPRF.PRFNO;
            cSTRANM.SOURCEID = cSBILL.PRFID ?? 0;
            cSTRANM.CONO     = cSPRF.CONO;
            cSTRANM.DUEDATE  = cSPRF.DUEDATE;
            cSTRANM.JOBNO    = cSBILL.JOBNO;
            cSTRANM.CASENO   = cSBILL.CASENO;
            cSTRANM.CASECODE = cSBILL.CASECODE;
            cSTRANM.ENTDATE  = cSBILL.ENTDATE;
            cSTRANM.TRTYPE   = cSBILL.ITEMTYPE;
            cSTRANM.TRDESC   = cSBILL.ITEMDESC;

            cSTRANM.TRITEM1 = cSBILL.ITEMAMT1;
            cSTRANM.TRITEM2 = cSBILL.ITEMAMT2;
            cSTRANM.TRITEM  = cSBILL.ITEMAMT1 + cSBILL.ITEMAMT2;

            cSTRANM.TRTAX1 = cSBILL.TAXAMT1;
            cSTRANM.TRTAX2 = cSBILL.TAXAMT2;
            cSTRANM.TRTAX  = cSBILL.TAXAMT1 + cSBILL.TAXAMT2;

            cSTRANM.TRAMT1 = cSBILL.NETAMT1;
            cSTRANM.TRAMT2 = cSBILL.NETAMT2;
            cSTRANM.TRAMT  = cSBILL.NETAMT1 + cSBILL.NETAMT2;


            cSTRANM.TRSIGN = "DB";

            cSTRANM.TRSITEM1 = cSBILL.ITEMAMT1;
            cSTRANM.TRSITEM2 = cSBILL.ITEMAMT2;
            cSTRANM.TRSITEM  = cSBILL.ITEMAMT1 + cSBILL.ITEMAMT2;

            cSTRANM.TRSTAX1 = cSBILL.TAXAMT1;
            cSTRANM.TRSTAX2 = cSBILL.TAXAMT2;
            cSTRANM.TRSTAX  = cSBILL.TAXAMT1 + cSBILL.TAXAMT2;

            cSTRANM.TRSAMT1 = cSBILL.NETAMT1;
            cSTRANM.TRSAMT2 = cSBILL.NETAMT2;
            cSTRANM.TRSAMT  = cSBILL.NETAMT1 + cSBILL.NETAMT2;

            cSTRANM.TRITEMOS1 = cSBILL.ITEMAMT1;
            cSTRANM.TRITEMOS2 = cSBILL.ITEMAMT2;
            cSTRANM.TRITEMOS  = cSBILL.ITEMAMT1 + cSBILL.ITEMAMT2;


            cSTRANM.TRTAXOS1 = cSBILL.TAXAMT1;
            cSTRANM.TRTAXOS2 = cSBILL.TAXAMT2;
            cSTRANM.TRTAXOS  = cSBILL.TAXAMT1 + cSBILL.TAXAMT2;


            cSTRANM.TROS1 = cSBILL.NETAMT1;
            cSTRANM.TROS2 = cSBILL.ITEMAMT2;
            cSTRANM.TROS  = cSBILL.NETAMT1 + cSBILL.NETAMT2;


            cSTRANM.APPITEM  = 0;
            cSTRANM.APPITEM1 = 0;
            cSTRANM.APPITEM2 = 0;
            cSTRANM.APPTAX   = 0;
            cSTRANM.APPTAX1  = 0;
            cSTRANM.APPTAX2  = 0;
            cSTRANM.APPAMT   = 0;
            cSTRANM.APPAMT1  = 0;
            cSTRANM.APPAMT2  = 0;

            cSTRANM.APPTYPE = null;
            cSTRANM.APPNO   = null;
            cSTRANM.APPID   = null;

            cSTRANM.COMPLETE  = "N";
            cSTRANM.COMPLETED = DateTime.Parse("01/01/3000");
            cSTRANM.SEQNO     = cSPRF.SEQNO;
            cSTRANM.REFCNT    = 0;
            cSTRANM.STAMP     = cSTRANM.STAMP + 1;
        }
Ejemplo n.º 19
0
        public ActionResult Create([Bind(Include = "ENTDATE,CONO,JOBNO,SYSGENBool,PRFALLOCBool,CASENO,CASECODE,ITEMTYPE,ITEMDESC,ITEMSPEC,TAXCODE,TAXRATE,ITEMAMT1,TAXAMT1,NETAMT1,ITEMAMT2,TAXAMT2,NETAMT2,ITEMAMT,TAXAMT,NETAMT,SYSGEN,PRFALLOC,PRFNO,PRFID,STAMP")] CSBILL cSBILL)
        {
            if (ModelState.IsValid)
            {
                SALASTNO serialTbl = db.SALASTNOes.Find("CSBILL");
                if (serialTbl != null)
                {
                    try
                    {
                        string prefix  = serialTbl.LASTPFIX;
                        int    MaxNo   = serialTbl.LASTNOMAX;
                        bool   AutoGen = serialTbl.AUTOGEN == "Y";
                        serialTbl.LASTNO = serialTbl.LASTNO + 1;
                        cSBILL.BILLNO    = serialTbl.LASTNO.ToString("D10");


                        serialTbl.STAMP           = serialTbl.STAMP + 1;
                        db.Entry(serialTbl).State = EntityState.Modified;
                        db.CSBILLs.Add(cSBILL);
                        db.SaveChanges();

                        int page = (int)Session["CSBillPage"];
                        return(RedirectToAction("Index", new { page = page }));
                    }
                    catch (DbEntityValidationException dbEx)
                    {
                        foreach (var validationErrors in dbEx.EntityValidationErrors)
                        {
                            foreach (var validationError in validationErrors.ValidationErrors)
                            {
                                //string message = string.Format("{0}:{1}",
                                //    validationErrors.Entry.Entity.ToString(),
                                //   validationError.ErrorMessage);
                                // raise a new exception nesting
                                // the current instance as InnerException
                                ModelState.AddModelError(validationError.PropertyName, validationError.ErrorMessage);
                            }
                        }
                    }
                    catch (DbUpdateException ex)
                    {
                        UpdateException updateException = (UpdateException)ex.InnerException;
                        if (updateException != null)
                        {
                            if (updateException.InnerException != null)
                            {
                                var sqlException = (FirebirdSql.Data.FirebirdClient.FbException)updateException.InnerException;

                                foreach (var error in sqlException.Errors)
                                {
                                    if (error.Message != null)
                                    {
                                        ModelState.AddModelError(string.Empty, error.Message);
                                    }
                                }
                            }
                            else
                            {
                                ModelState.AddModelError(string.Empty, updateException.Message);
                            }
                        }
                        else
                        {
                            ModelState.AddModelError(string.Empty, updateException.Message);
                        }
                    }
                    catch (Exception e)
                    {
                        ModelState.AddModelError(string.Empty, e.Message);
                    }
                    finally
                    {
                        View("Edit", cSBILL);
                    }
                }
            }

            return(CallView("Edit", cSBILL));
        }
Ejemplo n.º 20
0
        public ActionResult DeleteConfirmed(string id)
        {
            CSPRF cSPRF = db.CSPRFs.Find(MyHtmlHelpers.ConvertByteStrToId(id));

            if (cSPRF != null)
            {
                int refcnt = cSPRF.refcnt;
                if (refcnt > 0)
                {
                    ModelState.AddModelError(string.Empty, refcnt.ToString() + " Details has been touched. Cannot Delete record");
                }
                else
                {
                    // Remove CSTRANM
                    // Modify CSBILL to remove reference to PRFNO
                    try
                    {
                        List <CSBILL> ListBill = cSPRF.CSBILLs.ToList();
                        foreach (CSBILL item in ListBill)
                        {
                            CSTRANM cSTRANM = db.CSTRANMs.Find("CSPRF", item.PRFNO, item.PRFID);
                            db.CSTRANMs.Remove(cSTRANM);

                            CSBILL cSBill = db.CSBILLs.Find(item.BILLNO);
                            cSBill.STAMP           = cSBill.STAMP + 1;
                            cSBill.PRFALLOC        = "N";
                            cSBill.PRFNO           = null;
                            cSBill.PRFID           = null;
                            db.Entry(cSBill).State = EntityState.Modified;
                        }


                        db.CSPRFs.Remove(cSPRF);
                        db.SaveChanges();

                        int page = (int)Session["CSPRFPage"];
                        return(RedirectToAction("Index", new { page = page }));
                    }
                    catch (DbEntityValidationException dbEx)
                    {
                        foreach (var validationErrors in dbEx.EntityValidationErrors)
                        {
                            foreach (var validationError in validationErrors.ValidationErrors)
                            {
                                //string message = string.Format("{0}:{1}",
                                //    validationErrors.Entry.Entity.ToString(),
                                //   validationError.ErrorMessage);
                                // raise a new exception nesting
                                // the current instance as InnerException
                                ModelState.AddModelError(validationError.PropertyName, validationError.ErrorMessage);
                            }
                        }
                    }
                    catch (DbUpdateException ex)
                    {
                        UpdateException updateException = (UpdateException)ex.InnerException;
                        if (updateException != null)
                        {
                            if (updateException.InnerException != null)
                            {
                                var sqlException = (FirebirdSql.Data.FirebirdClient.FbException)updateException.InnerException;

                                foreach (var error in sqlException.Errors)
                                {
                                    if (error.Message != null)
                                    {
                                        ModelState.AddModelError(string.Empty, error.Message);
                                    }
                                }
                            }
                            else
                            {
                                ModelState.AddModelError(string.Empty, updateException.Message);
                            }
                        }
                        else
                        {
                            ModelState.AddModelError(string.Empty, updateException.Message);
                        }
                    }
                    catch (Exception e) { ModelState.AddModelError(String.Empty, e.Message); }
                }
            }

            ViewBag.page = Session["CSPRFPage"];

            ViewBag.CONO     = new SelectList(db.CSCOMSTRs.Select(x => new { CONO = x.CONO, CONAME = x.CONAME + "  (" + x.CONO + ")" }).OrderBy(y => y.CONAME), "CONO", "CONAME", cSPRF.CONO);
            ViewBag.ATTNDESC = new SelectList(db.CSCOPICs.Where(x => x.CONO == cSPRF.CONO).Select(x => new { PRSNAME = x.CSPR.PRSNAME, PRSDESC = x.CSPR.PRSNAME }).OrderBy(y => y.PRSDESC), "PRSNAME", "PRSDESC", cSPRF.ATTN);
            ViewBag.COADDR   = new SelectList(db.CSCOADDRs.Where(x => x.CONO == cSPRF.CONO).Select(x => new { COADDR = x.CONO + "|" + x.ADDRID, COADDRDESC = x.ADDRTYPE + " | " + x.MAILADDR + " | " + x.ADDR1 + " " + x.ADDR2 + " " + x.ADDR3 }), "COADDR", "COADDRDESC", cSPRF.COADDR);
            ViewBag.DETAILS  = db.CSBILLs.Where(x => x.PRFNO == cSPRF.PRFNO);
            ViewBag.CONAME   = db.CSCOMSTRs.Where(x => x.CONO == cSPRF.CONO).Select(y => y.CONAME).FirstOrDefault();
            ViewBag.Title    = "Delete Proforma Bill " + cSPRF.PRFNO;
            return(View("Edit", cSPRF));
        }
Ejemplo n.º 21
0
        public PartialViewResult Search()
        {
            CSBILL searchRec = null;

            //searchRec.CONO = pSearchCode;
            //searchRec.CONAME = pSearchName;
            if (Session["SearchBillRec"] != null)
            {
                searchRec = (CSBILL)Session["SearchBillRec"];
            }
            else
            {
                searchRec         = new CSBILL();
                searchRec.ENTDATE = new DateTime(DateTime.Today.Year, DateTime.Today.Month, 1);
                searchRec.DUEDATE = searchRec.ENTDATE.AddMonths(1);
                searchRec.DUEDATE = searchRec.DUEDATE.AddDays(-1);
            }
            if (Session["SearchBillSort"] == null)
            {
                Session["SearchBillSort"] = "BILLNO";
            }
            ;

            List <SelectListItem> listItems = new List <SelectListItem>();

            listItems.Add(new SelectListItem
            {
                Text     = "Company Name",
                Value    = "CONAME",
                Selected = (string)Session["SearchBillSort"] == "CONAME"
            });

            listItems.Add(new SelectListItem
            {
                Text     = "Item #",
                Value    = "BILLNO",
                Selected = (string)Session["SearchBillSort"] == "BILLNO"
            });

            listItems.Add(new SelectListItem
            {
                Text     = "Item # Latest",
                Value    = "BILLNOLAST",
                Selected = (string)Session["SearchBillSort"] == "BILLNOLAST"
            });

            listItems.Add(new SelectListItem
            {
                Text     = "Item Date",
                Value    = "ENTDATE",
                Selected = (string)Session["SearchBillSort"] == "ENTDATE"
            });

            listItems.Add(new SelectListItem
            {
                Text     = "Net Amt",
                Value    = "NETAMT",
                Selected = (string)Session["SearchBillSort"] == "NETAMT"
            });


            listItems.Add(new SelectListItem
            {
                Text     = "Net Amt High Value First",
                Value    = "NETAMTLAST",
                Selected = (string)Session["SearchBillSort"] == "NETAMTLAST"
            });

            listItems.Add(new SelectListItem
            {
                Text     = "Archive",
                Value    = "ARCHIVE",
                Selected = (string)Session["SearchBillSort"] == "ARCHIVE"
            });

            ViewBag.SORTBY   = listItems;
            ViewBag.CASECODE = new SelectList(db.CSCASEs.OrderBy(x => x.CASECODE), "CASECODE", "CASECODE");
            ViewBag.ITEMTYPE = new SelectList(db.CSITEMs, "ITEMTYPE", "ITEMDESC");
            return(PartialView("Partial/Search", searchRec));
        }
Ejemplo n.º 22
0
        public IQueryable <CSBILL> CurrentSelection()
        {
            string   pSearchCode  = "";
            string   pSearchName  = "";
            string   pSearchCase  = "";
            string   pSearchItem  = "";
            string   pSearchDesc  = "";
            string   pSearchBill  = "";
            string   pSearchJob   = "";
            DateTime pSearchVdate = DateTime.Parse("01/01/0001");
            DateTime pSearchDdate = DateTime.Parse("01/01/0001");

            if (Session["SearchBillRec"] != null)
            {
                CSBILL searchRec = (CSBILL)(Session["SearchBillRec"]);
                pSearchCode  = searchRec.CSCOMSTR.COREGNO ?? "";
                pSearchName  = searchRec.CSCOMSTR.CONAME ?? "";
                pSearchCase  = searchRec.CASECODE ?? "";
                pSearchItem  = searchRec.ITEMTYPE ?? "";
                pSearchDesc  = searchRec.ITEMDESC ?? "";
                pSearchBill  = searchRec.BILLNO ?? "";
                pSearchJob   = searchRec.JOBNO ?? "";
                pSearchVdate = searchRec.ENTDATE;
                pSearchDdate = searchRec.DUEDATE;
            }
            else
            { // start with current month proforma bills instead of entire list
                pSearchVdate = new DateTime(DateTime.Today.Year, DateTime.Today.Month, 1);
                pSearchDdate = pSearchVdate.AddMonths(1);
                pSearchDdate = pSearchDdate.AddDays(-1);
            }

            IQueryable <CSBILL> cSBILLs = db.CSBILLs;

            if ((string)Session["SearchBillSort"] != "ARCHIVE")
            {
                cSBILLs = cSBILLs.Where(x => x.PRFALLOC == "N");
            }
            else
            {
                cSBILLs = cSBILLs.Where(x => x.PRFALLOC == "Y");
            }

            if (pSearchCode != "")
            {
                cSBILLs = cSBILLs.Where(x => x.CSCOMSTR.COREGNO.Contains(pSearchCode.ToUpper()));
            }
            if (pSearchName != "")
            {
                cSBILLs = cSBILLs.Where(x => x.CSCOMSTR.CONAME.Contains(pSearchName.ToUpper()));
            }
            ;
            if (pSearchCase != "")
            {
                cSBILLs = cSBILLs.Where(x => x.CASECODE == pSearchCase);
            }
            ;
            if (pSearchItem != "")
            {
                cSBILLs = cSBILLs.Where(x => x.ITEMTYPE == pSearchItem);
            }
            ;
            if (pSearchDesc != "")
            {
                cSBILLs = cSBILLs.Where(x => x.ITEMDESC.Contains(pSearchDesc));
            }
            ;
            if (pSearchVdate != DateTime.Parse("01/01/0001"))
            {
                cSBILLs = cSBILLs.Where(x => x.ENTDATE >= pSearchVdate);
            }
            ;
            if (pSearchDdate != DateTime.Parse("01/01/0001"))
            {
                cSBILLs = cSBILLs.Where(x => x.ENTDATE <= pSearchDdate);
            }
            ;

            if (pSearchBill != "")
            {
                if (pSearchBill.Length > 8)
                {
                    cSBILLs = cSBILLs.Where(x => x.BILLNO == pSearchBill);
                }
                else
                {
                    cSBILLs = cSBILLs.Where(x => x.BILLNO.Contains(pSearchBill));
                }
            }
            ;
            if (pSearchJob != "")
            {
                if (pSearchJob.Length > 8)
                {
                    cSBILLs = cSBILLs.Where(x => x.JOBNO == pSearchJob);
                }
                else
                {
                    cSBILLs = cSBILLs.Where(x => x.JOBNO.Contains(pSearchJob));
                }
            }
            ;

            cSBILLs = cSBILLs.Include(c => c.CSITEM).Include(d => d.CSCOMSTR).Include(e => e.CSPRF).Include(f => f.CSCASEs);

            ViewBag.BATCHLIST = new SelectList(
                new List <SelectListItem> {
                new SelectListItem {
                    Text = "First 10000 records", Value = "0"
                },
                new SelectListItem {
                    Text = " 10001 - 20000", Value = "1"
                },
                new SelectListItem {
                    Text = " 20001 - 30000", Value = "2"
                },
                new SelectListItem {
                    Text = " 30001 - 40000", Value = "3"
                },
                new SelectListItem {
                    Text = " 40001 - 50000", Value = "4"
                },
                new SelectListItem {
                    Text = " 50001 - 60000", Value = "5"
                },
                new SelectListItem {
                    Text = " 60001 - 70000", Value = "6"
                },
                new SelectListItem {
                    Text = " 70001 - 80000", Value = "7"
                },
                new SelectListItem {
                    Text = " 80001 - 90000", Value = "8"
                },
                new SelectListItem {
                    Text = " 90001 - 100000", Value = "9"
                },
                new SelectListItem {
                    Text = "100001 - 110000", Value = "10"
                },
                new SelectListItem {
                    Text = "110001 - 120000", Value = "11"
                }
            }, "Value", "Text", BatchNo); // <<< Add size here


            if (Session["BATCH"] == null)
            {
                Session["BATCH"] = 0;
            }

            Session["RPT_START"] = pSearchVdate;
            Session["RPT_END"]   = pSearchDdate;
            ViewBag.RPT_START    = pSearchVdate.ToString("dd/MM/yyyy");
            ViewBag.RPT_END      = pSearchDdate.ToString("dd/MM/yyyy");
            ViewBag.BATCH        = Session["BATCH"];
            try
            {
                BatchNo = (int)Session["BATCH"];
            }
            catch { BatchNo = 0; }

            if ((string)Session["SearchBillSort"] == "CONAME")
            {
                cSBILLs = cSBILLs.OrderBy(n => n.CSCOMSTR.CONAME);
            }
            else if ((string)Session["SearchBillSort"] == "ENTDATE")
            {
                cSBILLs = cSBILLs.OrderBy(n => n.ENTDATE);
            }
            else if ((string)Session["SearchBillSort"] == "BILLNOLAST")
            {
                cSBILLs = cSBILLs.OrderByDescending(n => n.BILLNO);
            }
            else if ((string)Session["SearchBillSort"] == "NETAMT")
            {
                cSBILLs = cSBILLs.OrderBy(n => n.NETAMT);
            }
            else if ((string)Session["SearchBillSort"] == "NETAMTLAST")
            {
                cSBILLs = cSBILLs.OrderByDescending(n => n.NETAMT);
            }
            else
            {
                cSBILLs = cSBILLs.OrderBy(n => n.BILLNO);
            }
            return(cSBILLs.Skip(BatchNo * BatchSize).Take(BatchSize));
        }
Ejemplo n.º 23
0
        public PartialViewResult RemoveItem(string id)
        {
            string sid     = MyHtmlHelpers.ConvertByteStrToId(id);
            CSBILL cSBILL  = db.CSBILLs.Find(sid);
            string prfno   = cSBILL.PRFNO;
            int?   prfId   = cSBILL.PRFID;
            string prfnoId = MyHtmlHelpers.ConvertIdToByteStr(prfno);

            if (cSBILL == null)
            {
                Response.StatusCode        = (int)HttpStatusCode.NotAcceptable;
                Response.StatusDescription = "Bill Item is missing";
            }
            else if (cSBILL.PRFALLOC == "N")
            {
                Response.StatusCode        = (int)HttpStatusCode.NotAcceptable;
                Response.StatusDescription = "Bill has been Allocated";
            }
            else if (cSBILL.refcnt > 0)
            {
                Response.StatusCode        = (int)HttpStatusCode.NotAcceptable;
                Response.StatusDescription = "Bill has been touched";
                //throw new Exception("Bill has been touched");
            }
            else
            {
                ASIDBConnection newdb = new ASIDBConnection();
                try
                {
                    CSBILL curRec = newdb.CSBILLs.Find(sid);

                    if (curRec.STAMP == cSBILL.STAMP)
                    {
                        cSBILL.STAMP    = cSBILL.STAMP + 1;
                        cSBILL.PRFALLOC = "N";
                        cSBILL.PRFNO    = null;
                        cSBILL.PRFID    = null;

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

                        CSTRANM cSTRANM = db.CSTRANMs.Find("CSPRF", prfno, prfId);
                        db.CSTRANMs.Remove(cSTRANM);
                        db.SaveChanges();
                    }
                    else
                    {
                        Response.StatusCode        = (int)HttpStatusCode.NotAcceptable;
                        Response.StatusDescription = "bill was modified";
                        throw new Exception("bill was modified");
                    }
                }
                catch (Exception e)
                {
                    Response.StatusCode        = (int)HttpStatusCode.NotAcceptable;
                    Response.StatusDescription = e.Message;
                }
                finally
                {
                    newdb.Dispose();
                }
            }
            //return RedirectToAction("Edit/" + prfnoId);
            return(BillAllocated(MyHtmlHelpers.ConvertIdToByteStr(prfno)));
        }
Ejemplo n.º 24
0
 public void BD_UpdateCSTRANM(CSPRF cSPRF, CSBILL cSBILL, CSTRANM cSTRANM)
 {
     UpdateCSTRANM(cSPRF, cSBILL, cSTRANM);
 }
Ejemplo n.º 25
0
        public PartialViewResult AddItem(string id, string prfno)
        {
            string sid    = MyHtmlHelpers.ConvertByteStrToId(id);
            CSBILL cSBILL = db.CSBILLs.Find(sid);
            CSPRF  cSPRF  = db.CSPRFs.Find(prfno);

            if (cSBILL.PRFALLOC == "Y")
            {
                Response.StatusCode        = (int)HttpStatusCode.NotAcceptable;
                Response.StatusDescription = "Bill has been Allocated";
            }
            else
            if (cSBILL.refcnt > 0)
            {
                Response.StatusCode        = (int)HttpStatusCode.NotAcceptable;
                Response.StatusDescription = "Bill has been touched";
                //throw new Exception("Bill has been touched");
            }
            else
            {
                int    prfId   = 0;
                string prfnoId = MyHtmlHelpers.ConvertIdToByteStr(prfno);

                ASIDBConnection newdb = new ASIDBConnection();
                try
                {
                    CSBILL curRec = newdb.CSBILLs.Find(sid);

                    var cSTRANMs = db.CSTRANMs.Where(x => x.SOURCE == "CSPRF" && x.SOURCENO == prfno);

                    prfId = 0;
                    if (cSTRANMs.Count() != 0)
                    {
                        prfId = cSTRANMs.Max(y => y.SOURCEID);
                    }
                    prfId++;

                    if (curRec.STAMP == cSBILL.STAMP)
                    {
                        cSBILL.STAMP    = cSBILL.STAMP + 1;
                        cSBILL.PRFALLOC = "Y";
                        cSBILL.PRFNO    = prfno;
                        cSBILL.PRFID    = prfId;

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

                        CSTRANM cSTRANM = new CSTRANM();
                        cSTRANM.STAMP = 0;
                        UpdateCSTRANM(cSPRF, cSBILL, cSTRANM);

                        db.CSTRANMs.Add(cSTRANM);
                        db.SaveChanges();
                    }
                    else
                    {
                        Response.StatusCode        = (int)HttpStatusCode.NotAcceptable;
                        Response.StatusDescription = "bill was modified";
                        throw new Exception("bill was modified");
                    }
                }
                catch (Exception e)
                {
                    Response.StatusCode        = (int)HttpStatusCode.NotAcceptable;
                    Response.StatusDescription = e.Message;
                }
                finally
                {
                    newdb.Dispose();
                }
            }
            return(BillOpen(MyHtmlHelpers.ConvertIdToByteStr(cSPRF.CONO), MyHtmlHelpers.ConvertIdToByteStr(prfno)));
            //return RedirectToAction("Edit/" + prfnoId);
        }