public IHttpActionResult SaleOrder(SaleOrderNewDTO saleOrder) { sapi.db db = new sapi.db(); try { if (db.connect()) { Dictionary <string, string> vals = new Dictionary <string, string>(); vals.Add("sord_SaleOrderID".ToLower(), ""); vals.Add("sord_Date".ToLower(), DateTime.Now.ToString("dd/MM/yyyy")); vals.Add("sord_CustomerID".ToLower(), saleOrder.customerID.ToString()); vals.Add("sord_WarehouseId".ToLower(), saleOrder.warehouseID.ToString()); vals.Add("sord_Discount".ToLower(), saleOrder.discountType.ToString()); vals.Add("sord_Disc".ToLower(), saleOrder.amount.ToString()); vals.Add("sord_Deposit".ToLower(), "0"); StringBuilder n = new StringBuilder(); for (int i = 0; i < saleOrder.items.Count; i++) { var item = saleOrder.items[i]; if (i == 0) { n.Append(i.ToString()); } else { n.Append("," + i.ToString()); } vals.Add("soit_ItemID".ToLower() + i.ToString(), item.itemID.ToString()); vals.Add("soit_Description".ToLower() + i.ToString(), ""); vals.Add("soit_Qty".ToLower() + i.ToString(), item.quantity.ToString()); vals.Add("soit_Price".ToLower() + i.ToString(), item.price.ToString()); } uploadSO(db, vals, n.ToString()); } } catch (Exception ex) { return(BadRequest(ex.Message)); } finally { HttpContext.Current.Session.Abandon(); } return(Ok()); }
public async Task <JsonResult> New(SaleOrderNewDTO newDTO) { try { if (!ModelState.IsValid) { throw new HttpException((int)HttpStatusCode.BadRequest, ConstantHelper.KEY_IN_REQUIRED_FIELD); } Response.StatusCode = 200; return(Json(await handler.New(newDTO), JsonRequestBehavior.AllowGet)); } catch (HttpException ex) { return(Json(ConstantHelper.ERROR, JsonRequestBehavior.AllowGet)); } }
//-> save line item private async Task <List <tblSaleOrderItem> > SaveLineItem(int mastetID, SaleOrderNewDTO newDTO) { var list = new List <tblSaleOrderItem>(); if (newDTO.items != null) { foreach (var item in newDTO.items) { var record = (tblSaleOrderItem)MappingHelper.MapDTOToDBClass <SaleOrderItemNewDTO, tblSaleOrderItem>(item, new tblSaleOrderItem()); record.createdDate = DateTime.Now; record.total = record.quantity * record.price; record.saleOrderID = mastetID; db.tblSaleOrderItems.Add(record); await db.SaveChangesAsync(); list.Add(record); } } return(list); }
//-> New public async Task <SaleOrderViewDTO> New(SaleOrderNewDTO newDTO) { using (var transaction = db.Database.BeginTransaction()) { try { var session = HttpContext.Current.Session; UserViewDTO user = (UserViewDTO)session["user"]; if (user != null) { newDTO.slor_UserID = user.id; } newDTO = StringHelper.TrimStringProperties(newDTO); newDTO.date = newDTO.date.ToDBDate(); newDTO.requiredDate = newDTO.requiredDate.ToDBDate(); var record = (tblSaleOrder)MappingHelper.MapDTOToDBClass <SaleOrderNewDTO, tblSaleOrder>(newDTO, new tblSaleOrder()); record.createdDate = DateTime.Now; record.createdBy = user.id; db.tblSaleOrders.Add(record); await db.SaveChangesAsync(); var lineItems = await SaveLineItem(record.id, newDTO); record.total = lineItems.Sum(item => item.total); await db.SaveChangesAsync(); db.Entry(record).Reload(); transaction.Commit(); return(await SelectByID(record.id)); } catch (Exception ex) { transaction.Rollback(); throw new Exception(ex.Message); } } }