Esempio n. 1
0
        /// <summary>
        ///     Insert new Product to database
        /// </summary>
        /// <param name="blackList">The object of Product</param>
        /// <returns>The Product object</returns>
        public async Task <RequisitionDataModel> SaveRequisitionData(RequisitionDataModel objData)
        {
            try
            {
                //RequisitionModel objMast = new RequisitionModel();

                List <ProductModel> lstProRemain = new List <ProductModel>();
                if ("APR,POS,DLV".Contains(objData._master.requisition_type))
                {
                    foreach (var item in objData._lstProducts)
                    {
                        var objChk = UnitOfWork.Context.Set <ProductModel>()
                                     .Where(w => w.product_id.Equals(item.product_id) && w.remain_amt < item.quantity)
                                     .FirstOrDefault();
                        if (objChk != null)
                        {
                            lstProRemain.Add(objChk);
                        }
                    }

                    if (lstProRemain.Count > 0)
                    {
                        var lstMsg = lstProRemain.Select(s =>
                                                         string.Format("รายการสินค้า {0} ยอดคงเหลือ {1} น้อยกว่า ยอดเบิกจ่าย", s.product_name,
                                                                       s.remain_amt));
                        throw new Exception(new ErrorInfo
                        {
                            Message      = string.Join("\n", lstMsg),
                            MessageLocal = string.Join("\n", lstMsg),
                            Data         = -1
                        }.ConvertErrorInfoToException());
                    }
                }

                objData._master.ModifyDate     = DateTime.Now;
                objData._master.ModifyByUserId = 1;

                if (objData._master.requisition_id <= 0)
                {
                    objData._master.document_no = "abc";

                    objData._master.CreateDate     = DateTime.Now;
                    objData._master.CreateByUserId = 1;
                    UnitOfWork.Context.Set <RequisitionModel>().Add(objData._master);
                }
                else
                {
                    UnitOfWork.Context.Set <RequisitionModel>().Update(objData._master);
                }

                int i = UnitOfWork.Context.SaveChanges();

                foreach (var item in objData._lstProducts)
                {
                    item.ModifyDate     = DateTime.Now;
                    item.ModifyByUserId = 1;
                    if (item.id <= 0)
                    {
                        item.requisition_id = objData._master.requisition_id;
                        item.document_no    = objData._master.document_no;
                        item.status         = "Y";
                        item.CreateDate     = DateTime.Now;
                        item.CreateByUserId = 1;
                        UnitOfWork.Context.Set <RequisitionProductModel>().Add(item);
                    }
                    else
                    {
                        UnitOfWork.Context.Set <RequisitionProductModel>().Update(item);
                    }

                    await UnitOfWork.Context.SaveChangesAsync();

                    if ("APR,POS,DLV".Contains(objData._master.requisition_type))
                    {
                        ProductStockModel objStock = new ProductStockModel();
                        objStock.CreateByUserId = 1;
                        objStock.CreateDate     = DateTime.Now;
                        objStock.ModifyByUserId = item.ModifyByUserId;
                        objStock.ModifyDate     = item.ModifyDate;
                        objStock.product_id     = item.product_id;
                        objStock.relate_doc_id  = item.requisition_id;
                        objStock.item_amt       = item.quantity;
                        objStock.from_action    = objData._master.requisition_type;

                        ProductStockModule processStock = new ProductStockModule(UnitOfWork);
                        await processStock.InsertAsync(objStock);
                    }
                }

                if (objData._lstPackages != null)
                {
                    foreach (var item in objData._lstPackages)
                    {
                        item.ModifyDate     = DateTime.Now;
                        item.ModifyByUserId = 1;
                        if (item.id <= 0)
                        {
                            item.requisition_id = objData._master.requisition_id;
                            item.document_no    = objData._master.document_no;
                            item.status         = "Y";
                            item.CreateDate     = DateTime.Now;
                            item.CreateByUserId = 1;
                            UnitOfWork.Context.Set <RequisitionPackageModel>().Add(item);
                        }
                        else
                        {
                            UnitOfWork.Context.Set <RequisitionPackageModel>().Update(item);
                        }

                        await UnitOfWork.Context.SaveChangesAsync();
                    }
                }

                return(objData);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
Esempio n. 2
0
        /// <summary>
        ///     Insert new Product to database
        /// </summary>
        /// <param name="blackList">The object of Product</param>
        /// <returns>The Product object</returns>
        public async Task <ReturnRequisitionDataModel> SaveReturnRequisitionData(ReturnRequisitionDataModel objData)
        {
            try
            {
                //ReturnRequisitionModel objMast = new ReturnRequisitionModel();

                //List<ProductModel> lstProRemain = new List<ProductModel>();
                //if (objData._master.description == "APR")
                //{
                //    foreach (var item in objData._lstProducts)
                //    {
                //        var objChk = UnitOfWork.Context.Set<ProductModel>().Where(w => w.product_id.Equals(item.product_id) && w.remain_amt < item.quantity).FirstOrDefault();
                //        if (objChk != null)
                //            lstProRemain.Add(objChk);
                //    }

                //    if (lstProRemain.Count > 0)
                //    {
                //        var lstMsg = lstProRemain.Select(s => string.Format("รายการสินค้า {0} ยอดคงเหลือ {1} น้อยกว่า ยอดเบิกจ่าย", s.product_name, s.remain_amt));
                //        throw new Exception(new ErrorInfo
                //        {
                //            Message = string.Join("\n", lstMsg),
                //            MessageLocal = string.Join("\n", lstMsg),
                //            Data = -1
                //        }.ConvertErrorInfoToException());
                //    }
                //}

                objData._master.ModifyDate     = DateTime.Today;
                objData._master.ModifyByUserId = 1;

                if (objData._master.retrun_requisition_id <= 0)
                {
                    //objData._master.document_no = "abc";

                    objData._master.CreateDate     = DateTime.Today;
                    objData._master.CreateByUserId = 1;
                    UnitOfWork.Context.Set <ReturnRequisitionModel>().Add(objData._master);
                }
                else
                {
                    UnitOfWork.Context.Set <ReturnRequisitionModel>().Update(objData._master);
                }

                int i = UnitOfWork.Context.SaveChanges();
                foreach (var item in objData._lstProducts)
                {
                    item.ModifyDate     = DateTime.Today;
                    item.ModifyByUserId = 1;
                    if (item.return_product_id <= 0)
                    {
                        item.retrun_requisition_id = objData._master.retrun_requisition_id;
                        //item.document_no = objData._master.document_no;
                        item.status         = "Y";
                        item.CreateDate     = DateTime.Today;
                        item.CreateByUserId = 1;
                        UnitOfWork.Context.Set <ReturnRequisitionProductModel>().Add(item);
                    }
                    else
                    {
                        UnitOfWork.Context.Set <ReturnRequisitionProductModel>().Update(item);
                    }

                    UnitOfWork.Context.SaveChanges();

                    if (item.return_quantity > 0)
                    {
                        ProductStockModel objStock = new ProductStockModel();
                        objStock.CreateByUserId = 1;
                        objStock.CreateDate     = DateTime.Today;
                        objStock.ModifyByUserId = item.ModifyByUserId;
                        objStock.ModifyDate     = item.ModifyDate;
                        objStock.product_id     = item.product_id;
                        objStock.relate_doc_id  = item.return_product_id;
                        objStock.item_amt       = item.return_quantity ?? 0;
                        objStock.from_action    = "RTN";

                        ProductStockModule processStock = new ProductStockModule(UnitOfWork);
                        await processStock.InsertAsync(objStock);
                    }
                }

                foreach (var item in objData._lstPackages)
                {
                    //item.ModifyDate = DateTime.Today;
                    //item.ModifyByUserId = 1;
                    if (item.return_requisition_package_id <= 0)
                    {
                        item.retrun_requisition_id = objData._master.retrun_requisition_id;
                        //item.document_no = objData._master.document_no;
                        item.status = "Y";
                        //item.CreateDate = DateTime.Today;
                        //item.CreateByUserId = 1;
                        UnitOfWork.Context.Set <ReturnRequisitionPackageModel>().Add(item);
                    }
                    else
                    {
                        UnitOfWork.Context.Set <ReturnRequisitionPackageModel>().Update(item);
                    }

                    UnitOfWork.Context.SaveChanges();
                }

                foreach (var item in objData._lstItems)
                {
                    //item.ModifyDate = DateTime.Today;
                    //item.ModifyByUserId = 1;
                    if (item.return_requisition_item_id <= 0)
                    {
                        item.retrun_requisition_id = objData._master.retrun_requisition_id;
                        //item.document_no = objData._master.document_no;
                        item.status = "Y";
                        //item.CreateDate = DateTime.Today;
                        //item.CreateByUserId = 1;
                        UnitOfWork.Context.Set <ReturnRequisitionItemModel>().Add(item);
                    }
                    else
                    {
                        UnitOfWork.Context.Set <ReturnRequisitionItemModel>().Update(item);
                    }

                    UnitOfWork.Context.SaveChanges();
                }

                return(objData);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
Esempio n. 3
0
 public ProductStockController(IceFactoryUnitOfWork unitOfWork) : base(unitOfWork)
 {
     _objModule = new ProductStockModule(unitOfWork);
 }