Exemplo n.º 1
0
        public string AddOrUpdatePurchaseOrder(int id, int branchID, DateTime date, DateTime expectedDate, int supplierID, string notes,
                                               decimal discValue, string terms,
                                               List <PurchaseOrderDetailViewModel> detail)
        {
            var poHeader = id == 0
                ? new PurchaseOrderHeader()
                : context.PurchaseOrderHeaders.Single(po => po.ID == id);

            if (id == 0)
            {
                poHeader.DocumentNo = autoNumberProvider.Generate(branchID, "PO", date.Month, date.Year);
            }

            poHeader.BranchID        = branchID;
            poHeader.DocumentDate    = date;
            poHeader.ExpectedDate    = expectedDate;
            poHeader.SupplierID      = supplierID;
            poHeader.Notes           = notes;
            poHeader.DiscountValue   = discValue;
            poHeader.Terms           = terms;
            poHeader.EmployeeID      = employeeProvider.Get(CurrentUserName).ID;
            poHeader.Status          = 'O';
            poHeader.StatusReceiving = 'O';
            EntityHelper.SetAuditField(id, poHeader, CurrentUserName);

            context.Delete(poHeader.PurchaseOrderDetails.ToList());

            foreach (var detailLine in detail)
            {
                PurchaseOrderDetailViewModel line = detailLine;
                //var itemProvider = new ItemProvider(context, principal);
                decimal ratio = itemProvider.GetItemUnitRatio(detailLine.ItemID, detailLine.UnitName);

                var poDetail = new PurchaseOrderDetail
                {
                    ItemID       = detailLine.ItemID,
                    UnitPrice    = detailLine.UnitPrice,
                    Quantity     = detailLine.Quantity,
                    IsTaxed      = detailLine.IsTaxed,
                    DiscountRate = detailLine.DiscountRate,
                    UnitName     = detailLine.UnitName,
                    UnitRatio    = ratio,
                    Notes        = String.Empty
                };

                poHeader.PurchaseOrderDetails.Add(poDetail);
            }

            if (id == 0)
            {
                context.Add(poHeader);
                autoNumberProvider.Increment("PO", branchID, date.Year);
            }


            context.SaveChanges();

            return(poHeader.DocumentNo);
        }
Exemplo n.º 2
0
        public async Task <IActionResult> CreatePurchaseOrderDetailAsync([FromBody] PurchaseOrderDetailViewModel value)
        {
            var response = new SingleModelResponse <PurchaseOrderDetailViewModel>() as ISingleModelResponse <PurchaseOrderDetailViewModel>;

            try
            {
                var entity = await Task.Run(() =>
                {
                    return(_RESTfulAPI_Repository.AddPurchaseOrderDetail(value.ToEntity()));
                });


                if (response.DidError == false)
                {
                    response.Model = entity.ToViewModel();
                }
            }
            catch (Exception ex)
            {
                string webRoot   = _hostingEnvironment.WebRootPath;
                string errorGuid = String.Format(Guid.NewGuid().ToString().Replace("-", string.Empty).Substring(0, 16));

                HttpContext.Session.SetString("ErrorGuid", errorGuid);
                ViewBag.ErrorGuid = HttpContext.Session.GetString("ErrorGuid");

                if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
                {
                    using (StreamWriter w = new StreamWriter(webRoot + "\\log.txt", append: true))
                    {
                        Log.Logging(ex.ToString(), w, ViewBag.ErrorGuid);
                    }
                }

                if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
                {
                    using (StreamWriter w = new StreamWriter(webRoot + "/log.txt", append: true))
                    {
                        Log.Logging(ex.ToString(), w, ViewBag.ErrorGuid);
                    }
                }


                response.DidError = true;
                //response.ErrorMessage = ex.ToString();


                return(this.Json(new { timestamp = DateTime.Now, errorGuid = ViewBag.ErrorGuid, status = HttpStatusCode.InternalServerError, info = "Error logged in log file." }));
            }



            response.Info = "Client " + " " + HttpContext.Connection.RemoteIpAddress.ToString();

            return(response.ToHttpResponse());
        }
        protected void btnAddDetail_Click(object sender, EventArgs e)
        {
            Page.Validate("AddDetail");
            if (Page.IsValid)
            {
                if (Convert.ToInt32(ntbQty.Value) == 0)
                {
                    ntbQty.Value = 1;
                }

                try
                {
                    var detailLine = new PurchaseOrderDetailViewModel();
                    var item       = ItemService.Get(Convert.ToInt32(cboItem.SelectedValue));

                    detailLine.ItemID       = item.ID;
                    detailLine.ItemCode     = item.Barcode;
                    detailLine.ItemName     = item.Description;
                    detailLine.UnitName     = ddlUnit.SelectedItem.Text;
                    detailLine.Quantity     = Convert.ToInt32(ntbQty.Value);
                    detailLine.UnitPrice    = Convert.ToDecimal(ntbUnitPrice.Value);
                    detailLine.IsTaxed      = true;
                    detailLine.DiscountRate = Convert.ToDecimal(ntbDisc.Value);
                    detailLine.Total        = (detailLine.Quantity * detailLine.UnitPrice) -
                                              (detailLine.Quantity * detailLine.UnitPrice * detailLine.DiscountRate / 100);

                    if (detailLine.IsTaxed)
                    {
                        detailLine.Total += detailLine.Total * 0.1M;
                    }

                    detailLine.ID = Detail.Any() ? Detail.Max(detail => detail.ID) + 1 : 1;
                    Detail.Add(detailLine);

                    RefreshDetail();

                    cboItem.Text          = "";
                    ntbQty.Value          = 1;
                    ddlUnit.SelectedIndex = -1;
                    ntbUnitPrice.Value    = 0;
                    ntbDisc.Value         = 0;

                    cboItem.Focus();
                }
                catch (Exception ex)
                {
                    WebFormHelper.SetLabelTextWithCssClass(lblStatusAddEdit, ex.Message, LabelStyleNames.ErrorMessage);
                }
            }
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="viewModel"></param>
        /// <returns></returns>
        public static PurchaseOrderDetail ToEntity(this PurchaseOrderDetailViewModel viewModel)
        {
            return(viewModel == null ? null : new PurchaseOrderDetail
            {
                Id = viewModel.Id,

                Purchase_Order_Id = viewModel.Purchase_Order_Id,
                Product_Id = viewModel.Product_Id,
                Quantity = viewModel.Quantity,
                Unit_Cost = viewModel.Unit_Cost,
                Date_Received = viewModel.Date_Received,
                Posted_To_Inventory = viewModel.Posted_To_Inventory,
                Inventory_Id = viewModel.Inventory_Id


                               //
                               //RowGuid = viewModel.RowGuid,
                               //ModifiedDate = viewModel.ModifiedDate
            });
        }
Exemplo n.º 5
0
        public async Task <IActionResult> UpdatePurchaseOrderDetailAsync(Int32 id, [FromBody] PurchaseOrderDetailViewModel value)
        {
            var response = new SingleModelResponse <PurchaseOrderDetailViewModel>() as ISingleModelResponse <PurchaseOrderDetailViewModel>;

            try
            {
                var entity = await Task.Run(() =>
                {
                    return(_RESTfulAPI_Repository.UpdatePurchaseOrderDetail(id, value.ToEntity()));
                });



                response.Model = entity.ToViewModel();
                response.Info  = "The record was updated successfully";
            }
            catch (Exception ex)
            {
                response.DidError     = true;
                response.ErrorMessage = ex.Message;
            }

            return(response.ToHttpResponse());
        }
        public string AddOrUpdatePurchaseOrder(int id, int branchID, DateTime date, DateTime expectedDate, int supplierID, string notes,
                                               decimal discValue, string terms,
                                               List <PurchaseOrderDetailViewModel> detail)
        {
            var poHeader = id == 0
                ? new PurchaseOrderHeader()
                : context.PurchaseOrderHeaders.Single(po => po.ID == id);

            var autoNo = new AutoNumberProvider(context, principal);
            var emp    = new EmployeeProvider(context, principal);

            if (id == 0)
            {
                poHeader.DocumentNo = autoNo.GeneratePurchaseOrderRunningNumber(CurrentCompanyCode, date);
            }
            poHeader.BranchID        = branchID;
            poHeader.Date            = date;
            poHeader.ExpectedDate    = expectedDate;
            poHeader.SupplierID      = supplierID;
            poHeader.Notes           = notes;
            poHeader.DiscountValue   = discValue;
            poHeader.Terms           = terms;
            poHeader.EmployeeID      = emp.GetEmployee(CurrentUserName).ID;
            poHeader.Status          = "O";
            poHeader.StatusReceiving = "O";
            EntityHelper.SetAuditFields(id, poHeader, CurrentUserName);

            //context.SubmitChanges();

            context.PurchaseOrderDetails.DeleteAllOnSubmit(poHeader.PurchaseOrderDetails);

            foreach (var detailLine in detail)
            {
                PurchaseOrderDetailViewModel line = detailLine;
                var     itemProvider = new ItemProvider(context, principal);
                decimal ratio        = itemProvider.GetItemUnitRatio(detailLine.ItemID, detailLine.UnitName);

                var poDetail = new PurchaseOrderDetail
                {
                    ItemID       = detailLine.ItemID,
                    UnitPrice    = detailLine.UnitPrice,
                    Quantity     = detailLine.Quantity,
                    IsTaxed      = detailLine.IsTaxed,
                    DiscountRate = detailLine.DiscountRate,
                    UnitName     = detailLine.UnitName,
                    UnitRatio    = ratio,
                    Notes        = String.Empty
                };
                poDetail.PurchaseOrderHeader = poHeader;
                //poHeader.PurchaseOrderDetails.Add(poDetail);
                context.PurchaseOrderDetails.InsertOnSubmit(poDetail);
            }

            if (id == 0)
            {
                context.PurchaseOrderHeaders.InsertOnSubmit(poHeader);
            }
            context.SubmitChanges();

            return(poHeader.DocumentNo);
        }