예제 #1
0
        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());
        }
예제 #2
0
 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));
     }
 }
예제 #3
0
        //-> 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);
        }
예제 #4
0
        //-> 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);
                }
            }
        }