Пример #1
0
        public HttpResponseMessage Login(string u, string p)
        {
            string otp  = string.Empty;
            bool   flag = false;

            using (SpareDBContext db = new SpareDBContext())
            {
                try
                {
                    string    encriptedPassword = Common.EncryptData(p);
                    LoginUser usr = db.LoginUsers.FirstOrDefault(a => a.LoginID.Trim().Equals(u, StringComparison.OrdinalIgnoreCase) && a.Password.Equals(encriptedPassword) && a.HasOTP == false);
                    if (usr != null)
                    {
                        otp        = OTPProvider.GetOTP();
                        usr.Token  = Common.EncryptData(otp);
                        usr.HasOTP = true;
                        db.SaveChanges();
                        if (!string.IsNullOrEmpty(usr.Phone.ToString()))
                        {
                            flag = SMSProvider.SendSMS(usr.Phone.ToString(), otp);
                        }
                        if (flag)
                        {
                            return(Request.CreateResponse(HttpStatusCode.OK, "OTP Send To Your Registered Mobile."));
                        }
                        return(Request.CreateResponse(HttpStatusCode.Unauthorized, "Please register a mobole no first."));
                    }
                    else
                    {
                        return(Request.CreateResponse(HttpStatusCode.NotFound, "User Not Found, Please Cheak Combination!"));
                    }
                }
                catch
                {
                    return(Request.CreateResponse(HttpStatusCode.InternalServerError, "Internal server Error!"));
                }
            }
        }
Пример #2
0
        public HttpResponseMessage SaveSaleBill(OutwardVM o)
        {
            var        gat          = new GetAttributeController();
            long       cid          = Convert.ToInt64(gat.GetCopmpanyId(User.Identity));
            long       bid          = Convert.ToInt64(gat.GetBranchId(User.Identity));
            string     bcode        = gat.GetBranchCode(User.Identity);
            ForPrintVM p            = new ForPrintVM();
            string     itemCodeList = string.Empty;

            using (SpareDBContext db = new SpareDBContext())
            {
                OutwardHDR        owh   = null;
                List <OutwardDTL> odtls = new List <OutwardDTL>();
                using (var transac = db.Database.BeginTransaction())
                {
                    try
                    {
                        if (o.OutwardID > 0)
                        {
                            owh          = db.OutwardHDRs.FirstOrDefault(a => a.OutwardID == o.OutwardID && a.CompanyID == o.CompanyID && a.FinyearID == o.FinyearID && a.BranchID == bid);
                            p.EntityCode = owh.OutwardNo;
                        }
                        else
                        {
                            owh = new OutwardHDR();
                            var s = GetOutwardNo(cid, bid, o.FinyearID);
                            db.Entry(owh).State = System.Data.Entity.EntityState.Added;
                            owh.OutwardSrl      = Convert.ToInt64(s.Split('$')[0]);
                            owh.OutwardNo       = p.EntityCode = s.Split('$')[1];
                            owh.CompanyID       = cid;
                            owh.BranchID        = bid;
                            owh.FinyearID       = o.FinyearID;
                        }
                        owh.OutwardDate     = Convert.ToDateTime(o.OutwardDate);
                        owh.BillTypeID      = o.BillTypeID;
                        owh.SubledgerID     = o.SubledgerID;
                        owh.PurchaseOrderID = o.PurchaseOrderID != null ? o.PurchaseOrderID : null;

                        #region fro existing Outward Detail and Item Stock

                        if (owh.OutwardDTLs != null && owh.OutwardDTLs.Count > 0)
                        {
                            owh.OutwardDTLs.ForEach(a =>
                            {
                                var ist = db.ItemStocks.FirstOrDefault(b => b.StockID == a.StockID);
                                if (ist != null)
                                {
                                    ist.SaleQty    -= a.Qty;
                                    ist.ClosingQty += a.Qty;
                                }
                            });
                            db.OutwardDTLs.RemoveRange(owh.OutwardDTLs);
                            db.SaveChanges();
                        }
                        #endregion

                        #region for new Details Entry
                        if (o.OutwadDetailsVM != null && o.OutwadDetailsVM.Count > 0)
                        {
                            long stid = 0;
                            o.OutwadDetailsVM.ForEach(a =>
                            {
                                stid   = 0;
                                var st = db.ItemStocks.FirstOrDefault(b => b.ItemID == a.ItemID && b.CompanyID == cid && b.BranchID == bid && b.FinyearID == owh.FinyearID && b.ClosingQty >= a.Qty);
                                if (st != null)
                                {
                                    stid           = st.StockID;
                                    st.SaleQty    += a.Qty;
                                    st.ClosingQty -= a.Qty;
                                    //db.SaveChanges();
                                    odtls.Add(
                                        new OutwardDTL()
                                    {
                                        ItemID      = a.ItemID,
                                        StockID     = stid,
                                        RackNo      = a.RackNo,
                                        MRP         = a.MRP,
                                        Qty         = a.Qty,
                                        Rate        = a.Rate,
                                        Gross       = a.Gross,
                                        DiscPercent = a.DiscPercent,
                                        DiscAmt     = a.DiscAmt,
                                        Taxable     = a.Taxable,
                                        CGSTPercent = a.CGSTPercent,
                                        CGSTAmt     = a.CGSTAmt,
                                        SGSTPercent = a.SGSTPercent,
                                        SGSTmt      = a.SGSTmt,
                                        IGSTPercent = a.IGSTPercent,
                                        IGSTAmt     = a.IGSTAmt,
                                        NetAmt      = a.NetAmt
                                    });
                                }
                                else
                                {
                                    if (string.IsNullOrEmpty(itemCodeList))
                                    {
                                        itemCodeList = a.ItemCode;
                                    }
                                    else
                                    {
                                        itemCodeList += "," + a.ItemCode;
                                    }
                                }
                            });
                            owh.OutwardDTLs.AddRange(odtls);
                        }
                        owh.TotalGross     = odtls.Sum(a => a.Gross);
                        owh.TotalDiscount  = odtls.Sum(a => a.DiscAmt);
                        owh.TotalTaxable   = odtls.Sum(a => a.Taxable);
                        owh.TotalCGST      = odtls.Sum(a => a.CGSTAmt);
                        owh.TotalSGST      = odtls.Sum(a => a.SGSTmt);
                        owh.TotalIGST      = odtls.Sum(a => a.IGSTAmt);
                        owh.TotalNetAmt    = o.TotalNetAmt;
                        owh.RoundOff       = o.RoundOff;
                        owh.TotalTCSAmount = o.TotalTCSAmount;
                        owh.IsTCS          = o.IsTCS;

                        #endregion
                        if (odtls.Count == o.OutwadDetailsVM.Count)
                        {
                            db.SaveChanges();
                            p.EntityID = owh.OutwardID;
                            transac.Commit();
                            if (o.OutwardID > 0)
                            {
                                return(Request.CreateResponse(HttpStatusCode.OK, p));
                            }
                            return(Request.CreateResponse(HttpStatusCode.Created, p));
                        }
                        else
                        {
                            transac.Rollback();
                            return(Request.CreateResponse(HttpStatusCode.BadRequest, "Insufficient Closing Qty! Please remove or edite the bill items code (" + itemCodeList + ")"));
                        }
                    }
                    catch (Exception ex)
                    {
                        transac.Rollback();
                        return(Request.CreateResponse(HttpStatusCode.InternalServerError, "Internal Server Error!"));
                    }
                }
            }
        }