Esempio n. 1
0
 public InventoryOrderDetail AddInventoryOrderDetail(RepeaterItem rptrItem, int inventoryID)
 {
     try
     {
         InventoryOrderDetail orderDetail = new InventoryOrderDetail();
         orderDetail.CreatedBy        = currentUserName;
         orderDetail.CreatedDate      = DateTime.Now.Date;
         orderDetail.InventoryOrderID = inventoryID;
         orderDetail.InventoryTypeID  = Convert.ToInt32(((HiddenField)rptrItem.FindControl("rptrhdnItemID")).Value);
         orderDetail.IsActive         = true;
         orderDetail.PurchaseRate     = Convert.ToDecimal(((Label)rptrItem.FindControl("lblPurchaseRate")).Text);
         orderDetail.Quantity         = Convert.ToInt32(((Label)rptrItem.FindControl("lblQuantity")).Text);
         orderDetail.SaleRate         = Convert.ToDecimal(((Label)rptrItem.FindControl("lblSellingRate")).Text);
         orderDetail.TotalItemsCost   = Convert.ToDecimal(((Label)rptrItem.FindControl("lblTotalAmount")).Text);
         orderDetail.VatNo            = ((Label)rptrItem.FindControl("lblVAT")).Text;
         context.InventoryOrderDetails.Add(orderDetail);
         context.SaveChanges();
         return(orderDetail);
     }
     catch (Exception)
     {
         throw;
     }
 }
Esempio n. 2
0
        protected void btnUpdateInventory_Click(object sender, EventArgs e)
        {
            try
            {
                if (rptrData.Items.Count > 0)
                {
                    using (TransactionScope scope = new TransactionScope())
                    {
                        string PurchaseOrderIDObj = Request.QueryString[Constants.queryPurchaseOrderID];

                        if (!string.IsNullOrEmpty(PurchaseOrderIDObj))
                        {
                            int PurchaseOrderID = Convert.ToInt32(PurchaseOrderIDObj);
                            if (PurchaseOrderID > 0)
                            {
                                var PurchaseOrderCollection = context.InventoryOrders.Where(x => x.InventoryOrderID == PurchaseOrderID);
                                if (PurchaseOrderCollection.Count() > 0)
                                {
                                    InventoryOrder itemOrder = AddItemOrder(PurchaseOrderCollection.FirstOrDefault());

                                    foreach (RepeaterItem rptrItem in rptrData.Items)
                                    {
                                        if (rptrItem.Visible)
                                        {
                                            //For bulk purchase each item detail
                                            int orderDetailID = Convert.ToInt32(((HiddenField)rptrItem.FindControl("rptrhdnOrderDetailID")).Value);
                                            if (orderDetailID > 0)
                                            {
                                                var invOrderDetailCollection = context.InventoryOrderDetails.Where(x => x.InventoryOrderDetailID == orderDetailID);
                                                if (invOrderDetailCollection.Count() > 0)
                                                {
                                                    Database.InventoryOrderDetail orderDetail = invOrderDetailCollection.FirstOrDefault();
                                                    orderDetail.ModifiedBy       = currentUserName;
                                                    orderDetail.ModifiedDate     = DateTime.Now.Date;
                                                    orderDetail.InventoryOrderID = itemOrder.InventoryOrderID;
                                                    orderDetail.InventoryTypeID  = Convert.ToInt32(((HiddenField)rptrItem.FindControl("rptrhdnItemID")).Value);
                                                    orderDetail.IsActive         = true;
                                                    orderDetail.PurchaseRate     = Convert.ToDecimal(((Label)rptrItem.FindControl("lblPurchaseRate")).Text);

                                                    //To add or substract inventory in inventory table
                                                    int?oldQuantity = orderDetail.Quantity;

                                                    orderDetail.Quantity       = Convert.ToInt32(((Label)rptrItem.FindControl("lblQuantity")).Text);
                                                    orderDetail.SaleRate       = Convert.ToDecimal(((Label)rptrItem.FindControl("lblSellingRate")).Text);
                                                    orderDetail.TotalItemsCost = Convert.ToDecimal(((Label)rptrItem.FindControl("lblTotalAmount")).Text);
                                                    orderDetail.VatNo          = ((Label)rptrItem.FindControl("lblVAT")).Text;
                                                    context.SaveChanges();

                                                    //For company inventory detail
                                                    var inventoryCollection = context.InventoryTypes.Where(x => x.InventoryTypeId == orderDetail.InventoryTypeID);
                                                    if (inventoryCollection.Count() > 0)
                                                    {
                                                        var inventory = inventoryCollection.SingleOrDefault();
                                                        //substract old quantity and add new quantity
                                                        inventory.InventoryCount = inventory.InventoryCount - oldQuantity + orderDetail.Quantity;
                                                        inventory.PurchaseRate   = orderDetail.PurchaseRate;
                                                        inventory.SellingRate    = orderDetail.SaleRate;
                                                        inventory.VAT            = orderDetail.VatNo;
                                                        inventory.ModifiedBy     = currentUserName;
                                                        inventory.ModifiedDate   = DateTime.Now.Date;
                                                        inventory.IsActive       = true;
                                                        context.SaveChanges();
                                                    }
                                                }
                                                else
                                                {
                                                    InventoryOrderDetail orderDetail = AddInventoryOrderDetail(rptrItem, itemOrder.InventoryOrderID);

                                                    //If user add extra items in previous order
                                                    var inventoryCollection = context.InventoryTypes.Where(x => x.InventoryTypeId == orderDetail.InventoryTypeID);
                                                    if (inventoryCollection.Count() > 0)
                                                    {
                                                        var inventory = inventoryCollection.SingleOrDefault();
                                                        inventory.InventoryCount += orderDetail.Quantity;
                                                        inventory.PurchaseRate    = orderDetail.PurchaseRate;
                                                        inventory.SellingRate     = orderDetail.SaleRate;
                                                        inventory.VAT             = orderDetail.VatNo;
                                                        inventory.ModifiedBy      = currentUserName;
                                                        inventory.ModifiedDate    = DateTime.Now.Date;
                                                        inventory.IsActive        = true;
                                                        context.SaveChanges();
                                                    }
                                                }
                                            }
                                        }
                                        else
                                        {
                                            //For deleted item
                                            int orderDetailID = Convert.ToInt32(((HiddenField)rptrItem.FindControl("rptrhdnOrderDetailID")).Value);
                                            if (orderDetailID > 0)
                                            {
                                                //it means item deleted from existing order
                                                var invOrderDetailCollection = context.InventoryOrderDetails.Where(x => x.InventoryOrderDetailID == orderDetailID);
                                                if (invOrderDetailCollection.Count() > 0)
                                                {
                                                    Database.InventoryOrderDetail orderDetail = invOrderDetailCollection.FirstOrDefault();
                                                    orderDetail.ModifiedBy   = currentUserName;
                                                    orderDetail.ModifiedDate = DateTime.Now.Date;
                                                    orderDetail.IsActive     = false;
                                                    context.SaveChanges();

                                                    //For company inventory detail
                                                    var inventoryCollection = context.InventoryTypes.Where(x => x.InventoryTypeId == orderDetail.InventoryTypeID);
                                                    if (inventoryCollection.Count() > 0)
                                                    {
                                                        var inventory = inventoryCollection.SingleOrDefault();
                                                        //substract quantity as we delete order Detail
                                                        inventory.InventoryCount = inventory.InventoryCount - orderDetail.Quantity;
                                                        inventory.ModifiedBy     = currentUserName;
                                                        inventory.ModifiedDate   = DateTime.Now.Date;
                                                        context.SaveChanges();
                                                    }
                                                }
                                            }
                                        }
                                    }
                                    lblMessage.Text      = "Record Updated sucessfully";
                                    lblMessage.ForeColor = Color.Green;
                                    scope.Complete();
                                }
                            }
                        }
                    }
                }
                else
                {
                    lblMessage.Text      = "Atleast One Record Item Should Be There";
                    lblMessage.ForeColor = Color.Red;
                }
            }
            catch (Exception ex)
            {
                Helper.LogError(ex);
                lblMessage.Text      = "Something went Wrong kindly check log";
                lblMessage.ForeColor = Color.Red;
            }
        }
        protected void btnAddInventoryOrders_Click(object sender, EventArgs e)
        {
            try
            {
                if (rptrData.Items.Count > 0)
                {
                    using (TransactionScope scope = new TransactionScope())
                    {
                        InventoryOrder itemOrder = new InventoryOrder();
                        itemOrder.AmountPaid       = txtPaidAmount.Text == "" ? 0 : Convert.ToDecimal(txtPaidAmount.Text);
                        itemOrder.AmountPaidDate   = txtAmountPaidDate.Text == "" ? DateTime.Now.Date : Convert.ToDateTime(txtAmountPaidDate.Text);
                        itemOrder.BillDate         = txtBillDate.Text == "" ? DateTime.Now.Date : Convert.ToDateTime(txtBillDate.Text);
                        itemOrder.CreatedBy        = currentUserName;
                        itemOrder.CreatedDate      = DateTime.Now.Date;
                        itemOrder.CustomerTypeID   = Convert.ToInt32(ddlCustomerType.SelectedValue);
                        itemOrder.IsActive         = true;
                        itemOrder.IsCompleted      = chkOrderComplete.Checked;
                        itemOrder.OwnBillNo        = txtOwnBillNo.Text;
                        itemOrder.PurchaseBillNo   = txtPurchaseBillNO.Text;
                        itemOrder.PurchaseDate     = txtPurchaseDate.Text == "" ? DateTime.Now.Date : Convert.ToDateTime(txtPurchaseDate.Text);
                        itemOrder.Remarks          = txtDetails.Text;
                        itemOrder.SellerID         = txtSellerID.Text == "" ? 0 : Convert.ToInt32(txtSellerID.Text);
                        itemOrder.TotalOrderAmount = txtTotalOrderAmount.Text == "" ? 0 : Convert.ToDecimal(txtTotalOrderAmount.Text);
                        itemOrder.BalanceAmount    = itemOrder.TotalOrderAmount - itemOrder.AmountPaid;
                        context.InventoryOrders.Add(itemOrder);
                        context.SaveChanges();

                        foreach (RepeaterItem rptrItem in rptrData.Items)
                        {
                            if (rptrItem.Visible)
                            {
                                //For bulk purchase each item detail
                                InventoryOrderDetail orderDetail = new InventoryOrderDetail();
                                orderDetail.CreatedBy        = currentUserName;
                                orderDetail.CreatedDate      = DateTime.Now.Date;
                                orderDetail.InventoryOrderID = itemOrder.InventoryOrderID;
                                orderDetail.InventoryTypeID  = Convert.ToInt32(((HiddenField)rptrItem.FindControl("rptrhdnItemID")).Value);
                                orderDetail.IsActive         = true;
                                orderDetail.PurchaseRate     = Convert.ToDecimal(((Label)rptrItem.FindControl("lblPurchaseRate")).Text);
                                orderDetail.Quantity         = Convert.ToInt32(((Label)rptrItem.FindControl("lblQuantity")).Text);
                                orderDetail.SaleRate         = Convert.ToDecimal(((Label)rptrItem.FindControl("lblSellingRate")).Text);
                                orderDetail.TotalItemsCost   = Convert.ToDecimal(((Label)rptrItem.FindControl("lblTotalAmount")).Text);
                                orderDetail.VatNo            = ((Label)rptrItem.FindControl("lblVAT")).Text;
                                context.InventoryOrderDetails.Add(orderDetail);
                                context.SaveChanges();

                                //For company inventory detail
                                var inventoryCollection = context.InventoryTypes.Where(x => x.InventoryTypeId == orderDetail.InventoryTypeID);
                                if (inventoryCollection.Count() > 0)
                                {
                                    var inventory     = inventoryCollection.SingleOrDefault();
                                    var existingCount = inventory.InventoryCount == null ? 0 : inventory.InventoryCount;
                                    inventory.InventoryCount = existingCount + orderDetail.Quantity;
                                    inventory.PurchaseRate   = orderDetail.PurchaseRate;
                                    inventory.SellingRate    = orderDetail.SaleRate;
                                    inventory.VAT            = orderDetail.VatNo;
                                    inventory.ModifiedBy     = currentUserName;
                                    inventory.ModifiedDate   = DateTime.Now.Date;
                                    inventory.IsActive       = true;
                                    context.SaveChanges();
                                }
                                else
                                {
                                    lblMessage.Text      = "One of the Record Item Should not select proper items";
                                    lblMessage.ForeColor = Color.Red;
                                    return;
                                }
                            }
                        }

                        //Value is set from javascript of autocomplete
                        //string companyIDObj = hdnCompanyID.Value;
                        //if(! string.IsNullOrEmpty(companyIDObj))
                        //{
                        //    int sellerID = Convert.ToInt32(companyIDObj);
                        //    var sellerCollection = context.Sellers.Where(x => x.SellerID == sellerID);
                        //    if(sellerCollection.Count()>0)
                        //    {
                        //        Database.Seller seller = sellerCollection.First();
                        //        string paidAmtobj = txtPaidAmount.Text;

                        //        seller.Balance += txtPaidAmount.Text == "" ? 0 : Convert.ToInt32();
                        //    }
                        //}

                        lblMessage.Text      = "Record Inserted sucessfully";
                        lblMessage.ForeColor = Color.Green;
                        ClearForm();
                        BindDefault();
                        scope.Complete();
                    }
                }
                else
                {
                    lblMessage.Text      = "Atleast One Record Item Should Be There";
                    lblMessage.ForeColor = Color.Red;
                }
            }
            catch (Exception ex)
            {
                Helper.LogError(ex);
                lblMessage.Text      = "Something went Wrong kindly check log";
                lblMessage.ForeColor = Color.Red;
            }
        }