Esempio n. 1
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));
        }
Esempio n. 2
0
        public ActionResult Create([Bind(Include = "ITEMTYPE,ITEMDESC,GSTCODE,GSTRATE,STAMP")] CSITEM cSITEM)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    cSITEM.STAMP = 0;
                    db.CSITEMs.Add(cSITEM);
                    db.SaveChanges();
                    return(RedirectToAction("Index"));
                }
                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);
                    }
                }
            }

            return(View(cSITEM));
        }
Esempio n. 3
0
        public ActionResult DeleteConfirmed(string id)
        {
            CSITEM cSITEM = db.CSITEMs.Find(MyHtmlHelpers.ConvertByteStrToId(id));

            try
            {
                db.CSITEMs.Remove(cSITEM);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }
            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);
                }
            }
            return(View(cSITEM));
        }
Esempio n. 4
0
        // GET: CSITEMs/Details/5
        public ActionResult Details(string id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            CSITEM cSITEM = db.CSITEMs.Find(MyHtmlHelpers.ConvertByteStrToId(id));

            if (cSITEM == null)
            {
                return(HttpNotFound());
            }
            return(View(cSITEM));
        }
Esempio n. 5
0
        public string CheckRate(string vdate, string itemtype)
        {
            DateTime myDate  = DateTime.Parse(vdate);
            CSITEM   cSITEM  = db.CSITEMs.Find(itemtype);
            string   taxcode = "SSTN01";
            decimal  taxrate = 0;

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

                taxcode = db.CSTAXTYPEs.Where(x => x.TAXRATE == taxrate && x.EFFECTIVE_START <= myDate && x.EFFECTIVE_END >= myDate).Select(y => y.TAXCODE).FirstOrDefault() ?? taxcode;
            }
            return(taxcode + "|" + taxrate.ToString("N2"));
        }
Esempio n. 6
0
        public ActionResult Post(string[] cono)
        {
            CSPRFsController CSPRFControl = new CSPRFsController();

            try
            {
                SALASTNO serialTbl0 = db.SALASTNOes.Find("CSBILL");
                if ((serialTbl0 != null))
                {
                    foreach (string item in cono)
                    {
                        var      conofee  = item.Split('|');
                        var      myCono   = conofee[0];
                        var      myFee    = conofee[1];
                        string   lastCono = "";
                        CSCOMSTR cSCOMSTR = null;
                        myCono = myCono.Trim();
                        myFee  = myFee.Trim();



                        var     csFees  = db.CSCOFEEs.Where(x => x.CONO == myCono && x.FEETYPE == myFee);
                        decimal taxrate = 0;
                        string  taxcode = "SSTN01";
                        CSPRF   cSPRF   = null;
                        int     prfId   = 0;
                        foreach (var feerec in csFees)
                        {
                            CSITEM cSITEM = db.CSITEMs.Find(feerec.FEETYPE);
                            if (cSITEM != null)
                            {
                                taxrate = cSITEM.GSTRATE ?? 0;
                            }

                            if (lastCono != feerec.CONO)
                            {
                                cSCOMSTR                 = db.CSCOMSTRs.Find(feerec.CONO);
                                cSCOMSTR.SEQNO           = cSCOMSTR.SEQNO + 1;
                                cSCOMSTR.STAMP           = cSCOMSTR.STAMP;
                                db.Entry(cSCOMSTR).State = EntityState.Modified;
                            }

                            var feedate = feerec.LASTTOUCH;


                            feerec.LASTTOUCH       = feedate.AddMonths(feerec.FEEMTH);
                            feerec.STAMP           = feerec.STAMP + 1;
                            db.Entry(feerec).State = EntityState.Modified;


                            SALASTNO serialTbl = db.SALASTNOes.Find("CSPRF");
                            if ((serialTbl != null) && (lastCono != feerec.CONO))
                            {
                                string prefix  = serialTbl.LASTPFIX;
                                int    MaxNo   = serialTbl.LASTNOMAX;
                                bool   AutoGen = serialTbl.AUTOGEN == "Y";
                                serialTbl.LASTNO = serialTbl.LASTNO + 1;


                                cSPRF         = new CSPRF();
                                cSPRF.STAMP   = 0;
                                cSPRF.VDATE   = feedate;
                                cSPRF.DUEDATE = feedate;
                                cSPRF.DUEDAYS = 0;
                                cSPRF.SEQNO   = cSCOMSTR.SEQNO;
                                cSPRF.CONO    = feerec.CONO;
                                short?coid = db.CSCOADDRs.Where(x => x.CONO == feerec.CONO && x.MAILADDR == "Y").Select(y => y.ADDRID).FirstOrDefault();
                                if (coid == 0)
                                {
                                    coid = db.CSCOADDRs.Where(x => x.CONO == feerec.CONO && x.MAILADDR == "N").Select(y => y.ADDRID).FirstOrDefault();
                                }
                                if (coid != 0)
                                {
                                    cSPRF.COADDRID = coid;
                                }

                                cSPRF.ATTN     = "The Board of Directors";
                                cSPRF.PRFNO    = serialTbl.LASTNO.ToString("D10");
                                cSPRF.INVALLOC = "N";

                                serialTbl.STAMP           = serialTbl.STAMP + 1;
                                db.Entry(serialTbl).State = EntityState.Modified;
                                db.CSPRFs.Add(cSPRF);
                                prfId = 0;
                            }

                            prfId++;
                            serialTbl0.LASTNO = serialTbl0.LASTNO + 1;
                            string prefix0  = serialTbl0.LASTPFIX;
                            int    MaxNo0   = serialTbl0.LASTNOMAX;
                            bool   AutoGen0 = serialTbl0.AUTOGEN == "Y";
                            CSBILL cSBILL   = new WebApplication1.CSBILL();
                            cSBILL.STAMP    = 0;
                            cSBILL.CONO     = feerec.CONO;
                            cSBILL.PRFALLOC = "Y";
                            cSBILL.SYSGEN   = "Y";
                            cSBILL.PRFNO    = cSPRF.PRFNO;
                            cSBILL.PRFID    = prfId;
                            cSBILL.BILLNO   = serialTbl0.LASTNO.ToString("D10");;
                            cSBILL.ENTDATE  = feedate;
                            cSBILL.CASECODE = feerec.FEECODE;
                            cSBILL.ITEMTYPE = feerec.FEETYPE;
                            cSBILL.ITEMDESC = feerec.CSCASE.CASEDESC;
                            cSBILL.ITEMSPEC = "- From " + feedate.ToString("dd/MM/yyyy") + " To " + feedate.AddMonths(feerec.FEEMTH).ToString("dd/MM/yyyy");

                            cSBILL.ITEMAMT = feerec.FEEAMT;
                            cSBILL.TAXAMT  = taxrate * feerec.FEEAMT / 100;
                            cSBILL.NETAMT  = cSBILL.ITEMAMT + cSBILL.TAXAMT;

                            cSBILL.ITEMAMT1 = feerec.FEEAMT;
                            cSBILL.TAXAMT1  = taxrate * feerec.FEEAMT / 100;
                            cSBILL.NETAMT1  = cSBILL.ITEMAMT1 + cSBILL.TAXAMT1;

                            cSBILL.ITEMAMT2 = 0;
                            cSBILL.TAXAMT2  = 0;
                            cSBILL.NETAMT2  = 0;
                            cSBILL.TAXRATE  = taxrate;

                            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.TAXCODE = taxcode;
                            db.CSBILLs.Add(cSBILL);


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

                            db.CSTRANMs.Add(cSTRANM);

                            lastCono = feerec.CONO;
                        }
                        //db.Entry(serialTbl0).State = EntityState.Modified;
                        //db.SaveChanges();
                    }
                    db.Entry(serialTbl0).State = EntityState.Modified;
                    db.SaveChanges();
                }
            }
            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
            {
                CSPRFControl.Dispose();
            }

            return(new HttpStatusCodeResult(HttpStatusCode.OK));
        }