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!")); } } }
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!")); } } } }