public IList <PRMMaterialReceiveItemMapEntity> GetPagedData(Int32 startRowIndex, Int32 pageSize, String sortExpression)
        {
            IList <PRMMaterialReceiveItemMapEntity> pRMMaterialReceiveItemMapEntityList = new List <PRMMaterialReceiveItemMapEntity>();

            try
            {
                if (pageSize == -1)
                {
                    pageSize = 1000000000;
                }

                if (String.IsNullOrEmpty(sortExpression))
                {
                    sortExpression = PRMMaterialReceiveItemMapEntity.FLD_NAME_MaterialReceiveItemMapID + " " + SQLConstants.SORT_ORDER_DESCENDING;
                }

                startRowIndex = Convert.ToInt32(startRowIndex / pageSize) + 1;

                pRMMaterialReceiveItemMapEntityList = FCCPRMMaterialReceiveItemMap.GetFacadeCreate().GetIL(startRowIndex, pageSize, sortExpression, null, DatabaseOperationType.LoadPagedWithSortExpression);

                if (pRMMaterialReceiveItemMapEntityList != null && pRMMaterialReceiveItemMapEntityList.Count > 0)
                {
                    totalRowCount = pRMMaterialReceiveItemMapEntityList[0].TotalRowCount;
                }
            }
            catch (Exception ex)
            {
            }

            return(pRMMaterialReceiveItemMapEntityList ?? new List <PRMMaterialReceiveItemMapEntity>());
        }
        private void UpdateMaterialReceiveEntity()
        {
            IList <ListViewDataItem> list = lvPRMMaterialReceiveItemMap.Items;

            if (list != null && list.Count > 0)
            {
                Int32 tempDataItemIndex = 0;

                foreach (ListViewDataItem lvdi in list)
                {
                    DataKey currentDataKey           = lvPRMMaterialReceiveItemMap.DataKeys[tempDataItemIndex++];
                    Int64   materialReceiveItemMapID = (Int64)currentDataKey["MaterialReceiveItemMapID"];

                    Decimal ReceiveQty;

                    // Label lblRequisitonItemIDLV = (Label)lvdi.FindControl("lblRequisitonItemIDLV");
                    TextBox txtReceiveQtyLV = (TextBox)lvdi.FindControl("txtReceiveQtyLV");
                    // TextBox txtChallanNoLV = (TextBox)lvdi.FindControl("txtChallanNoLV");
                    //TextBox txtReceiveDateLV = (TextBox)lvdi.FindControl("txtReceiveDateLV");
                    //Label lblRateLV = (Label)lvdi.FindControl("lblRateLV");

                    Decimal.TryParse(txtReceiveQtyLV.Text.Trim(), out ReceiveQty);
                    //Decimal.TryParse(lblRateLV.Text.Trim(), out rateLV);

                    PRMMaterialReceiveItemMapEntity ent = FCCPRMMaterialReceiveItemMap.GetFacadeCreate().GetByID(materialReceiveItemMapID);
                    ent.ReceiveQty = ReceiveQty;

                    String fe = SqlExpressionBuilder.PrepareFilterExpression(PRMMaterialReceiveItemMapEntity.FLD_NAME_MaterialReceiveItemMapID, materialReceiveItemMapID.ToString(), SQLMatchType.Equal);
                    FCCPRMMaterialReceiveItemMap.GetFacadeCreate().Update(ent, fe, DatabaseOperationType.Update, TransactionRequired.No);
                }
            }
        }
        private void PrepareEditView()
        {
            PRMMaterialReceiveEntity pRMMaterialReceiveEntity = CurrentPRMMaterialReceiveEntity;

            if (!pRMMaterialReceiveEntity.IsNew)
            {
                if (ddlProjectID.Items.Count > 0 && pRMMaterialReceiveEntity.ProjectID != null)
                {
                    ddlProjectID.SelectedValue = pRMMaterialReceiveEntity.ProjectID.ToString();
                }

                BindRequisitonAndWOByProject();

                if (ddlSupplierID.Items.Count > 0 && pRMMaterialReceiveEntity.SupplierID != null)
                {
                    ddlSupplierID.SelectedValue = pRMMaterialReceiveEntity.SupplierID.ToString();
                }

                BindRequisitionBySupplier();

                if (ddlRequisitionID.Items.Count > 0 && pRMMaterialReceiveEntity.RequisitionID != null)
                {
                    ddlRequisitionID.SelectedValue = pRMMaterialReceiveEntity.RequisitionID.ToString();
                }

                BindWorkorderByRequisition();

                if (ddlWorkOrderID.Items.Count > 0 && pRMMaterialReceiveEntity.WorkOrderID != null)
                {
                    ddlWorkOrderID.SelectedValue = pRMMaterialReceiveEntity.WorkOrderID.ToString();
                }

                txtMRRNo.Text   = pRMMaterialReceiveEntity.MRRNo.ToString();
                txtMRRDate.Text = pRMMaterialReceiveEntity.MRRDate.ToStringDefault();
                txtRemarks.Text = pRMMaterialReceiveEntity.Remarks.ToString();

                String fe = SqlExpressionBuilder.PrepareFilterExpression(PRMMaterialReceiveItemMapEntity.FLD_NAME_MaterialReceiveID, _MaterialReceiveID.ToString(), SQLMatchType.Equal);
                UpdatedMappedPRMMaterialReceiveEntity = FCCPRMMaterialReceiveItemMap.GetFacadeCreate().GetIL(null, null, String.Empty, fe, DatabaseOperationType.LoadWithFilterExpression);
                if (UpdatedMappedPRMMaterialReceiveEntity != null && UpdatedMappedPRMMaterialReceiveEntity.Count > 0)
                {
                    PRMMaterialReceiveItemMapList = UpdatedMappedPRMMaterialReceiveEntity;
                }
                else
                {
                    UpdatedMappedPRMMaterialReceiveEntity = new List <PRMMaterialReceiveItemMapEntity>();
                }

                BindPRMWorkOrderItemMapList();

                btnSubmit.Text    = "Update";
                btnAddNew.Visible = false;
            }
        }
        protected void lvPRMMaterialReceiveItemMap_ItemCommand(object sender, ListViewCommandEventArgs e)
        {
            Int64 MaterialReceiveItemMapID;

            Int64.TryParse(e.CommandArgument.ToString(), out MaterialReceiveItemMapID);

            if (MaterialReceiveItemMapID > 0)
            {
                if (string.Equals(e.CommandName, "EditItem"))
                {
                    //_MaterialReceiveItemMapID = MaterialReceiveItemMapID;
                }
                else if (string.Equals(e.CommandName, "DeleteItem"))
                {
                    try
                    {
                        Int64 result = -1;

                        String fe = SqlExpressionBuilder.PrepareFilterExpression(PRMMaterialReceiveItemMapEntity.FLD_NAME_MaterialReceiveItemMapID, MaterialReceiveItemMapID.ToString(), SQLMatchType.Equal);

                        PRMMaterialReceiveItemMapEntity pRMMaterialReceiveItemMapEntity = new PRMMaterialReceiveItemMapEntity();


                        result = FCCPRMMaterialReceiveItemMap.GetFacadeCreate().Delete(pRMMaterialReceiveItemMapEntity, fe, DatabaseOperationType.Delete, TransactionRequired.No);

                        if (result == 0)
                        {
                            //_MaterialReceiveItemMapID = 0;
                            //_PRMMaterialReceiveItemMapEntity = new PRMMaterialReceiveItemMapEntity();
                            //PrepareInitialView();
                            //BindPRMMaterialReceiveItemMapList();

                            MiscUtil.ShowMessage(lblMessage, "Material Receive Item Map has been successfully deleted.", true);
                        }
                        else
                        {
                            MiscUtil.ShowMessage(lblMessage, "Failed to delete Material Receive Item Map.", true);
                        }
                    }
                    catch (Exception ex)
                    {
                        MiscUtil.ShowMessage(lblMessage, ex.Message, true);
                    }
                }
            }
        }
        public IList <PRMMaterialReceiveItemMapEntity> GetData()
        {
            IList <PRMMaterialReceiveItemMapEntity> pRMMaterialReceiveItemMapEntityList = new List <PRMMaterialReceiveItemMapEntity>();

            try
            {
                pRMMaterialReceiveItemMapEntityList = FCCPRMMaterialReceiveItemMap.GetFacadeCreate().GetIL(null, null, null, null, DatabaseOperationType.Load);

                if (pRMMaterialReceiveItemMapEntityList != null && pRMMaterialReceiveItemMapEntityList.Count > 0)
                {
                    totalRowCount = pRMMaterialReceiveItemMapEntityList[0].TotalRowCount;
                }
            }
            catch (Exception ex)
            {
            }

            return(pRMMaterialReceiveItemMapEntityList ?? new List <PRMMaterialReceiveItemMapEntity>());
        }
        private Boolean ValidationInput()
        {
            Boolean flag = true;

            if (ddlMaterialReceiveID != null && ddlMaterialReceiveID.Items.Count > 0)
            {
                String fe_itemMap = SqlExpressionBuilder.PrepareFilterExpression(PRMMaterialReceiveItemMapEntity.FLD_NAME_MaterialReceiveID, ddlMaterialReceiveID.SelectedValue.ToString(), SQLMatchType.Equal);
                IList <PRMMaterialReceiveItemMapEntity> lst = FCCPRMMaterialReceiveItemMap.GetFacadeCreate().GetIL(null, null, String.Empty, fe_itemMap, DatabaseOperationType.LoadWithFilterExpression);

                if (lst != null && lst.Count > 0)
                {
                }
                else
                {
                    MiscUtil.ShowMessage(lblMessage, "MRR has no item to adjust.", true);
                    flag = false;
                }
            }

            return(flag);
        }
        private void SavePRMMaterialReceiveEntity()
        {
            if (IsValid)
            {
                try
                {
                    PRMMaterialReceiveEntity pRMMaterialReceiveEntity = BuildPRMMaterialReceiveEntity();

                    #region Requisition

                    String RequisitionNo = String.Empty;

                    if (txtRequisition.Text.IsNotNullOrEmpty())
                    {
                        RequisitionNo = "BL-" + txtRequisition.Text.ToString();
                    }

                    Int64 resultRequisition     = -1;
                    Int64 resultRequisitionItem = -1;

                    String fe = SqlExpressionBuilder.PrepareFilterExpression(REQRequisitionEntity.FLD_NAME_RequisitionNo, RequisitionNo, SQLMatchType.Equal);
                    IList <REQRequisitionEntity> lstRequisition = FCCREQRequisition.GetFacadeCreate().GetIL(null, null, String.Empty, fe, DatabaseOperationType.LoadWithFilterExpression);

                    REQRequisitionItemEntity rEQRequisitionItemEntity = null;

                    if (lstRequisition != null && lstRequisition.Count > 0)
                    {
                        rEQRequisitionItemEntity = BuildREQRequisitionItemEntity(lstRequisition[0].RequisitionID);
                        pRMMaterialReceiveEntity.RequisitionID = lstRequisition[0].RequisitionID;
                    }
                    else
                    {
                        REQRequisitionEntity rEQRequisitionEntity = BuildREQRequisitionEntity();
                        resultRequisition = FCCREQRequisition.GetFacadeCreate().Add(rEQRequisitionEntity, DatabaseOperationType.Add, TransactionRequired.No);
                        pRMMaterialReceiveEntity.RequisitionID = resultRequisition;

                        if (resultRequisition > 0)
                        {
                            rEQRequisitionItemEntity = BuildREQRequisitionItemEntity(resultRequisition);
                        }
                    }

                    if (rEQRequisitionItemEntity != null)
                    {
                        resultRequisitionItem = FCCREQRequisitionItem.GetFacadeCreate().Add(rEQRequisitionItemEntity, DatabaseOperationType.Add, TransactionRequired.No);
                    }

                    #endregion

                    #region MRR

                    Int64 resultOne = -1;

                    if (pRMMaterialReceiveEntity.IsNew)
                    {
                        resultOne = FCCPRMMaterialReceive.GetFacadeCreate().Add(pRMMaterialReceiveEntity, DatabaseOperationType.Add, TransactionRequired.No);
                    }
                    else
                    {
                        String filterExpression = SqlExpressionBuilder.PrepareFilterExpression(PRMMaterialReceiveEntity.FLD_NAME_MaterialReceiveID, pRMMaterialReceiveEntity.MaterialReceiveID.ToString(), SQLMatchType.Equal);
                        resultOne = FCCPRMMaterialReceive.GetFacadeCreate().Update(pRMMaterialReceiveEntity, filterExpression, DatabaseOperationType.Update, TransactionRequired.No);
                    }

                    #endregion

                    if (resultOne > 0 && resultRequisitionItem > 0)
                    {
                        #region Material Receive Item Map

                        Int64 resultTwo = -1;

                        PRMMaterialReceiveItemMapEntity pRMMaterialReceiveItemMapEntity = BuildPRMMaterialReceiveItemMapEntity(resultOne, resultRequisitionItem);
                        resultTwo = FCCPRMMaterialReceiveItemMap.GetFacadeCreate().Add(pRMMaterialReceiveItemMapEntity, DatabaseOperationType.Add, TransactionRequired.No);

                        #endregion

                        try
                        {
                            #region Inventory

                            Int64 _employeeID = MiscUtil.GetCurrentEmployeeByMemberID(CurrentMember);
                            Int64 _projectID  = Int64.Parse(ddlProjectID.SelectedValue);

                            INVStoreEntity storeEntity = INVManager.GetDefaultStore(_projectID);
                            Int64          storeID     = storeEntity.StoreID;

                            INVStoreUnitEntity storeUnitEntity = INVManager.GetDefaultStoreUnit(storeID);
                            Int64 storeUnitID = storeUnitEntity.StoreUnitID;

                            String fe_requisitionItem = SqlExpressionBuilder.PrepareFilterExpression("REQRequisitionItem." + REQRequisitionItemEntity.FLD_NAME_RequisitionItemID, resultRequisitionItem.ToString(), SQLMatchType.Equal);
                            IList <REQRequisitionItem_DetailedEntity> lst = FCCREQRequisitionItem_Detailed.GetFacadeCreate().GetIL(10000, 1, String.Empty, fe_requisitionItem);

                            Int64   _itemID   = 0;
                            Decimal _rate     = 0;
                            Int64   brandID   = MasterDataConstants.ItemDefaults.DEFAULT_BRAD;
                            Int64   regionID  = MasterDataConstants.ItemDefaults.DEFAULT_REGION;
                            Int64   countryID = MasterDataConstants.ItemDefaults.DEFAULT_COUNTRY;

                            if (lst != null && lst.Count > 0)
                            {
                                _itemID   = lst[0].ItemID;
                                brandID   = (Int64)lst[0].BrandID;
                                regionID  = (Int64)lst[0].RegionID;
                                countryID = (Int64)lst[0].CountryID;
                                _rate     = lst[0].Rate;
                            }

                            Boolean invResult = INVManager.AddItemsToStoreUnit(_itemID, brandID, regionID, countryID, "", Int64.Parse(txtReceiveQty.Text.ToString()), MiscUtil.GetLocalIP(), _employeeID, _rate, txtRequisition.Text, ddlWorkOrderID.SelectedItem.Text, resultOne.ToString(), "", Int64.Parse(ddlProjectID.SelectedValue), storeID, storeUnitID);

                            #endregion
                        }
                        catch (Exception ex)
                        {
                        }

                        _MaterialReceiveID = resultOne;
                        PrepareInitialViewSave();
                        btnAddNew.Visible = true;

                        if (pRMMaterialReceiveEntity.IsNew)
                        {
                            MiscUtil.ShowMessage(lblMessage, "Material Receive Information has been added successfully.", false);
                        }
                        else
                        {
                            MiscUtil.ShowMessage(lblMessage, "Material Receive Information has been updated successfully.", false);
                        }
                    }
                    else
                    {
                        if (pRMMaterialReceiveEntity.IsNew)
                        {
                            MiscUtil.ShowMessage(lblMessage, "Failed to add Material Receive Information.", false);
                        }
                        else
                        {
                            MiscUtil.ShowMessage(lblMessage, "Failed to update Material Receive Information.", false);
                        }
                    }
                }
                catch (Exception ex)
                {
                    MiscUtil.ShowMessage(lblMessage, ex.Message, true);
                }
            }
        }
        private void BuildPRMMaterialReceiveItemEntity(Int64 result, PRMMaterialReceiveEntity pRMMaterialReceiveEntity)
        {
            IList <ListViewDataItem> list = lvPRMWorkOrderItemMap.Items;

            if (list != null && list.Count > 0)
            {
                foreach (ListViewDataItem lvdi in list)
                {
                    Decimal ReceiveQty, rateLV, totalWOItemAmount;
                    Int64   requisitionItemID;

                    Label   lblRequisitonItemIDLV = (Label)lvdi.FindControl("lblRequisitonItemIDLV");
                    TextBox txtQtyLV         = (TextBox)lvdi.FindControl("txtReceiveQtyLV");
                    TextBox txtChallanNoLV   = (TextBox)lvdi.FindControl("txtChallanNoLV");
                    TextBox txtReceiveDateLV = (TextBox)lvdi.FindControl("txtReceiveDateLV");
                    Label   lblRateLV        = (Label)lvdi.FindControl("lblRateLV");


                    Decimal.TryParse(txtQtyLV.Text.Trim(), out ReceiveQty);
                    Decimal.TryParse(lblRateLV.Text.Trim(), out rateLV);

                    totalWOItemAmount = ReceiveQty * rateLV;

                    if (ReceiveQty <= 0)
                    {
                        continue;
                    }

                    Int64.TryParse(lblRequisitonItemIDLV.Text, out requisitionItemID);

                    PRMMaterialReceiveItemMapEntity pRMMaterialReceiveItemMap = new PRMMaterialReceiveItemMapEntity();
                    pRMMaterialReceiveItemMap.MaterialReceiveID = result;
                    pRMMaterialReceiveItemMap.RequisitionItemID = requisitionItemID;
                    pRMMaterialReceiveItemMap.ReceiveQty        = ReceiveQty;
                    pRMMaterialReceiveItemMap.ItemRate          = rateLV;
                    pRMMaterialReceiveItemMap.WOItemTotalRate   = totalWOItemAmount;
                    pRMMaterialReceiveItemMap.ChallanNo         = txtChallanNoLV.Text.ToString();
                    if (txtReceiveDateLV.Text.Trim().IsNotNullOrEmpty())
                    {
                        pRMMaterialReceiveItemMap.ReceiveDate = MiscUtil.ParseToDateTime(txtReceiveDateLV.Text);
                    }

                    if (pRMMaterialReceiveEntity.IsNew)
                    {
                        FCCPRMMaterialReceiveItemMap.GetFacadeCreate().Add(pRMMaterialReceiveItemMap, DatabaseOperationType.Add, TransactionRequired.No);
                    }

                    else
                    {
                        String fe;
                        String fe1 = SqlExpressionBuilder.PrepareFilterExpression(PRMMaterialReceiveItemMapEntity.FLD_NAME_MaterialReceiveID, pRMMaterialReceiveEntity.MaterialReceiveID.ToString(), SQLMatchType.Equal);
                        String fe2 = SqlExpressionBuilder.PrepareFilterExpression(PRMMaterialReceiveItemMapEntity.FLD_NAME_RequisitionItemID, requisitionItemID.ToString(), SQLMatchType.Equal);
                        fe = SqlExpressionBuilder.PrepareFilterExpression(fe1, SQLJoinType.AND, fe2);

                        FCCPRMMaterialReceiveItemMap.GetFacadeCreate().Update(pRMMaterialReceiveItemMap, fe, DatabaseOperationType.Update, TransactionRequired.No);
                    }

                    //#region Inventory

                    //Int64 _employeeID = MiscUtil.GetCurrentEmployeeByMemberID(CurrentMember);
                    //Int64 _projectID=Int64.Parse(ddlProjectID.SelectedValue);

                    //INVStoreEntity storeEntity = INVManager.GetDefaultStore(_projectID);
                    //Int64 storeID = storeEntity.StoreID;

                    //INVStoreUnitEntity storeUnitEntity = INVManager.GetDefaultStoreUnit(storeID);
                    //Int64 storeUnitID = storeUnitEntity.StoreUnitID;

                    //String fe_requisitionItem = SqlExpressionBuilder.PrepareFilterExpression("REQRequisitionItem."+REQRequisitionItemEntity.FLD_NAME_RequisitionItemID, requisitionItemID.ToString(), SQLMatchType.Equal);
                    //IList<REQRequisitionItem_DetailedEntity> lst = FCCREQRequisitionItem_Detailed.GetFacadeCreate().GetIL(10000, 1, String.Empty, fe_requisitionItem);

                    //Int64 _itemID = 0;
                    //Decimal _rate = 0;
                    //Int64 brandID = 0;
                    //Int64 regionID = 0;
                    //Int64 countryID = 0;

                    //if (lst != null && lst.Count>0)
                    //{
                    //    _itemID = lst[0].ItemID;
                    //    brandID = (Int64)lst[0].BrandID;
                    //    regionID = (Int64)lst[0].RegionID;
                    //    countryID = (Int64)lst[0].CountryID;

                    //    String fe_WOItemID = SqlExpressionBuilder.PrepareFilterExpression(PRMWorkOrderItemMapEntity.FLD_NAME_RequisitionItemID, lst[0].RequisitionItemID.ToString(), SQLMatchType.Equal);
                    //    String fe_WOID = SqlExpressionBuilder.PrepareFilterExpression(PRMWorkOrderItemMapEntity.FLD_NAME_WorkOrderID, ddlWorkOrderID.SelectedValue.ToString(), SQLMatchType.Equal);

                    //    String fe_WOItemMap = SqlExpressionBuilder.PrepareFilterExpression(fe_WOItemID, SQLJoinType.AND, fe_WOID);

                    //    IList<PRMWorkOrderItemMapEntity> lstWOItem = FCCPRMWorkOrderItemMap.GetFacadeCreate().GetIL(null, null, String.Empty, fe_WOItemMap, DatabaseOperationType.LoadWithFilterExpression);

                    //    if (lstWOItem != null && lstWOItem.Count > 0)
                    //    {
                    //        Decimal.TryParse(lstWOItem[0].Rate.ToString(),out _rate);
                    //    }
                    //}

                    //Boolean invResult = INVManager.AddItemsToStoreUnit(_itemID,brandID,regionID,countryID, "", Int64.Parse(ReceiveQty.ToString()), MiscUtil.GetLocalIP(), _employeeID, _rate, ddlRequisitionID.SelectedItem.Text, ddlWorkOrderID.SelectedItem.Text, result.ToString(), "", Int64.Parse(ddlProjectID.SelectedValue), storeID, storeUnitID);

                    //#endregion
                }
            }
        }
        private void BuildINVStoreIssueNoteItemMapEntity(Int64 sinID, Int64 projectID)
        {
            try
            {
                String fe_itemMap = SqlExpressionBuilder.PrepareFilterExpression(PRMMaterialReceiveItemMapEntity.FLD_NAME_MaterialReceiveID, ddlMaterialReceiveID.SelectedValue.ToString(), SQLMatchType.Equal);
                IList <PRMMaterialReceiveItemMapEntity> lst = FCCPRMMaterialReceiveItemMap.GetFacadeCreate().GetIL(null, null, String.Empty, fe_itemMap, DatabaseOperationType.LoadWithFilterExpression);

                if (lst != null && lst.Count > 0)
                {
                    foreach (PRMMaterialReceiveItemMapEntity ent in lst)
                    {
                        INVStoreIssueNoteItemMapEntity iNVStoreIssueNoteItemMapEntity = new INVStoreIssueNoteItemMapEntity();

                        REQRequisitionItemEntity rEQRequisitionItemEntity = FCCREQRequisitionItem.GetFacadeCreate().GetByID(ent.RequisitionItemID);

                        if (rEQRequisitionItemEntity != null && rEQRequisitionItemEntity.ItemID > 0)
                        {
                            iNVStoreIssueNoteItemMapEntity.StoreIssueNoteID = sinID;
                            iNVStoreIssueNoteItemMapEntity.ItemID           = rEQRequisitionItemEntity.ItemID;
                            iNVStoreIssueNoteItemMapEntity.FolioNo          = String.Empty;
                            iNVStoreIssueNoteItemMapEntity.RequestQty       = ent.ReceiveQty;
                            iNVStoreIssueNoteItemMapEntity.IssueQty         = ent.ReceiveQty;
                        }

                        String fe_transaction1 = SqlExpressionBuilder.PrepareFilterExpression(INVTransactionEntity.FLD_NAME_ItemID, rEQRequisitionItemEntity.ItemID.ToString(), SQLMatchType.Equal);
                        String fe_transaction2 = SqlExpressionBuilder.PrepareFilterExpression(INVTransactionEntity.FLD_NAME_MRRNumber, ddlMaterialReceiveID.Text.ToString(), SQLMatchType.Equal);
                        String fe_transaction  = SqlExpressionBuilder.PrepareFilterExpression(fe_transaction1, SQLJoinType.AND, fe_transaction2);

                        IList <INVTransactionEntity> lstINVTransactionEntity = FCCINVTransaction.GetFacadeCreate().GetIL(null, null, String.Empty, fe_transaction, DatabaseOperationType.LoadWithFilterExpression);

                        if (lstINVTransactionEntity != null && lstINVTransactionEntity.Count > 0)
                        {
                            iNVStoreIssueNoteItemMapEntity.BatchNo = lstINVTransactionEntity[0].BatchNumber;
                        }

                        //    iNVStoreIssueNoteItemMapEntity.BatchNo = txtBatchNo.Text.Trim();
                        String fe_store1 = SqlExpressionBuilder.PrepareFilterExpression(INVStoreEntity.FLD_NAME_ProjectID, projectID.ToString(), SQLMatchType.Equal);
                        String fe_store2 = SqlExpressionBuilder.PrepareFilterExpression(INVStoreEntity.FLD_NAME_IsDefault, "1", SQLMatchType.Equal);
                        String fe_store  = SqlExpressionBuilder.PrepareFilterExpression(fe_store1, SQLJoinType.AND, fe_store2);

                        IList <INVStoreEntity> lstINVStoreEntity = FCCINVStore.GetFacadeCreate().GetIL(null, null, String.Empty, fe_store, DatabaseOperationType.LoadWithFilterExpression);

                        if (lstINVStoreEntity != null && lstINVStoreEntity.Count > 0)
                        {
                            iNVStoreIssueNoteItemMapEntity.IssuedFromStoreID = lstINVStoreEntity[0].StoreID;

                            String fe_storeUnit1 = SqlExpressionBuilder.PrepareFilterExpression(INVStoreUnitEntity.FLD_NAME_StoreID, lstINVStoreEntity[0].StoreID.ToString(), SQLMatchType.Equal);
                            String fe_storeUnit2 = SqlExpressionBuilder.PrepareFilterExpression(INVStoreUnitEntity.FLD_NAME_IsDefault, "1", SQLMatchType.Equal);
                            String fe_storeUnit  = SqlExpressionBuilder.PrepareFilterExpression(fe_storeUnit1, SQLJoinType.AND, fe_storeUnit2);

                            IList <INVStoreUnitEntity> lstINVStoreUnitEntity = FCCINVStoreUnit.GetFacadeCreate().GetIL(null, null, String.Empty, fe_storeUnit, DatabaseOperationType.LoadWithFilterExpression);

                            if (lstINVStoreUnitEntity != null && lstINVStoreUnitEntity.Count > 0)
                            {
                                iNVStoreIssueNoteItemMapEntity.IssuedFromStoreUnitID = lstINVStoreUnitEntity[0].StoreUnitID;
                            }
                        }


                        iNVStoreIssueNoteItemMapEntity.ReceivedDate         = System.DateTime.Now;
                        iNVStoreIssueNoteItemMapEntity.ReceivedByEmployeeID = 168;

                        iNVStoreIssueNoteItemMapEntity.ReturnQty            = null;
                        iNVStoreIssueNoteItemMapEntity.ReturnDate           = null;
                        iNVStoreIssueNoteItemMapEntity.ReturnToStoreID      = null;
                        iNVStoreIssueNoteItemMapEntity.ReturnToStoreUnitID  = null;
                        iNVStoreIssueNoteItemMapEntity.ReturnedByEmployeeID = null;

                        iNVStoreIssueNoteItemMapEntity.ActualUse = null;
                        iNVStoreIssueNoteItemMapEntity.Amount    = ent.WOItemTotalRate / ent.ReceiveQty;

                        iNVStoreIssueNoteItemMapEntity.PurposeOfWorks = "Adjustment Entry";

                        INVStoreEntity storeEntity = INVManager.GetDefaultStore(projectID);

                        INVStoreUnitEntity storeUnitEntity = INVManager.GetDefaultStoreUnit(storeEntity.StoreID);

                        iNVStoreIssueNoteItemMapEntity.IssuedFromStoreID = storeEntity.StoreID;
                        iNVStoreIssueNoteItemMapEntity.IssuedFromStoreID = storeUnitEntity.StoreUnitID;

                        FCCINVStoreIssueNoteItemMap.GetFacadeCreate().Add(iNVStoreIssueNoteItemMapEntity, DatabaseOperationType.Add, TransactionRequired.No);

                        #region Inventory


                        String  batchNumber    = String.Empty;
                        Decimal transactionQty = 0;
                        Boolean invResult      = false;

                        invResult = INVManager.RemoveItemsFromStoreUnit(rEQRequisitionItemEntity.ItemID, rEQRequisitionItemEntity.BrandID, rEQRequisitionItemEntity.RegionID, rEQRequisitionItemEntity.CountryID, lstINVTransactionEntity[0].BatchNumber, Int64.Parse(transactionQty.ToString()), MiscUtil.GetLocalIP(), MiscUtil.GetCurrentEmployeeByMemberID(CurrentMember), 0, String.Empty, String.Empty, String.Empty, "", projectID, storeEntity.StoreID, storeUnitEntity.StoreUnitID);

                        #endregion
                    }
                }
            }
            catch (Exception ex)
            {
                MiscUtil.ShowMessage(lblMessage, "Some Error Occured " + ex.Message, true);
            }
        }
        protected void lvPRMMaterialReceiveItemMap_ItemCommand(object sender, ListViewCommandEventArgs e)
        {
            Int64 MaterialReceiveItemMapID;

            Int64.TryParse(e.CommandArgument.ToString(), out MaterialReceiveItemMapID);

            if (e.CommandName == "FloorWiseRateAndQty")
            {
                CurrentWorkOrderItemIDPopup = MaterialReceiveItemMapID;

                Label lblItemLV               = (Label)e.Item.FindControl("lblItemLV");
                Label lblRequisitionIDLV      = (Label)e.Item.FindControl("lblRequisitionIDLV");
                Label lblRequisitionItemIDLV  = (Label)e.Item.FindControl("lblRequisitionItemIDLV");
                Label lblWorkOrderItemMapIDLV = (Label)e.Item.FindControl("lblWorkOrderItemMapIDLV");

                Label lblProjectIDLV   = (Label)e.Item.FindControl("lblProjectIDLV");
                Label lblWorkOrderIDLV = (Label)e.Item.FindControl("lblWorkOrderIDLV");

                Int64 itemID;
                Int64.TryParse(lblItemLV.Text.Trim(), out itemID);

                String fe_floor = SqlExpressionBuilder.PrepareFilterExpression(BDProjectFloorEntity.FLD_NAME_ProjectID, lblProjectIDLV.Text.ToString(), SQLMatchType.Equal);
                IList <BDProjectFloorEntity> lstBDProjectFloor = FCCBDProjectFloor.GetFacadeCreate().GetIL(null, null, String.Empty, fe_floor, DatabaseOperationType.LoadWithFilterExpression);

                if (lstBDProjectFloor != null && lstBDProjectFloor.Count > 0)
                {
                    String fe = SqlExpressionBuilder.PrepareFilterExpression(PRMPreBOQEntity.FLD_NAME_ProjectID, lblProjectIDLV.Text.ToString(), SQLMatchType.Equal);
                    IList <PRMPreBOQEntity> preBOQList = FCCPRMPreBOQ.GetFacadeCreate().GetIL(null, null, String.Empty, fe, DatabaseOperationType.LoadWithFilterExpression);

                    if (preBOQList != null && preBOQList.Count > 0)
                    {
                        Int64 preBOQID = preBOQList[0].PreBOQID;

                        switch (preBOQList[0].IsLocked)
                        {
                        case true:

                            #region GET Item From BOQ

                            String fe_boq = SqlExpressionBuilder.PrepareFilterExpression(PRMBOQEntity.FLD_NAME_PreBOQID, preBOQID.ToString(), SQLMatchType.Equal);
                            IList <PRMBOQEntity> lstPRMBOQ = FCCPRMBOQ.GetFacadeCreate().GetIL(null, null, String.Empty, fe_boq, DatabaseOperationType.LoadWithFilterExpression);

                            if (lstPRMBOQ != null && lstPRMBOQ.Count > 0)
                            {
                                String fe_BOQDetail1 = SqlExpressionBuilder.PrepareFilterExpression(PRMBOQDetailEntity.FLD_NAME_BOQID, lstPRMBOQ[0].BOQID.ToString(), SQLMatchType.Equal);
                                String fe_BOQDetail2 = SqlExpressionBuilder.PrepareFilterExpression(PRMBOQDetailEntity.FLD_NAME_ItemID, itemID.ToString(), SQLMatchType.Equal);

                                String fe_BOQDetail = SqlExpressionBuilder.PrepareFilterExpression(fe_BOQDetail1, SQLJoinType.AND, fe_BOQDetail2);

                                IList <PRMBOQDetailEntity> lstPRMBOQDetail = FCCPRMBOQDetail.GetFacadeCreate().GetIL(null, null, String.Empty, fe_BOQDetail, DatabaseOperationType.LoadWithFilterExpression);

                                if (lstPRMBOQDetail != null && lstPRMBOQDetail.Count > 0)
                                {
                                    String fe_floorDetail = SqlExpressionBuilder.PrepareFilterExpression("PRMBOQFloorDetail." + PRMBOQFloorDetailEntity.FLD_NAME_BOQDetailID, lstPRMBOQDetail[0].BOQDetailID.ToString(), SQLMatchType.Equal);
                                    IList <PRMBOQFloorDetail_DetailedEntity> lstPRMPreBOQFloorDetail = FCCPRMBOQFloorDetail_Detailed.GetFacadeCreate().GetIL(100000, 1, String.Empty, fe_floorDetail);

                                    lvREQRequisitionItemFloorDetail.DataSource = lstPRMPreBOQFloorDetail;
                                    lvREQRequisitionItemFloorDetail.DataBind();
                                }
                            }

                            #endregion

                            break;

                        case false:

                            #region Get Item From Pre-BOQ

                            String fe_preBOQDetail1 = SqlExpressionBuilder.PrepareFilterExpression(PRMPreBOQDetailEntity.FLD_NAME_PreBOQID, preBOQID.ToString(), SQLMatchType.Equal);
                            String fe_preBOQDetail2 = SqlExpressionBuilder.PrepareFilterExpression(PRMPreBOQDetailEntity.FLD_NAME_ItemID, itemID.ToString(), SQLMatchType.Equal);

                            String fe_preBOQDetail = SqlExpressionBuilder.PrepareFilterExpression(fe_preBOQDetail1, SQLJoinType.AND, fe_preBOQDetail2);

                            IList <PRMPreBOQDetailEntity> lstPRMPreBOQDetail = FCCPRMPreBOQDetail.GetFacadeCreate().GetIL(null, null, String.Empty, fe_preBOQDetail, DatabaseOperationType.LoadWithFilterExpression);

                            if (lstPRMPreBOQDetail != null && lstPRMPreBOQDetail.Count > 0)
                            {
                                String fe_floorDetail = SqlExpressionBuilder.PrepareFilterExpression("PRMPreBOQFloorDetail." + PRMPreBOQFloorDetailEntity.FLD_NAME_PreBOQDetailID, lstPRMPreBOQDetail[0].PreBOQDetailID.ToString(), SQLMatchType.Equal);
                                IList <PRMPreBOQFloorDetail_DetailedEntity> lstPRMPreBOQFloorDetail = FCCPRMPreBOQFloorDetail_Detailed.GetFacadeCreate().GetIL(10000, 1, String.Empty, fe_floorDetail);

                                lvREQRequisitionItemFloorDetail.DataSource = lstPRMPreBOQFloorDetail;
                                lvREQRequisitionItemFloorDetail.DataBind();
                            }

                            #endregion

                            break;

                        default:
                            break;
                        }
                    }
                }

                Label lblItemNameLV = (Label)e.Item.FindControl("lblItemNameLV");

                //BindREQRequisitionFloorDetailList();
                //lblFloorWiseItemName.Text = lblItemNameLV.Text.ToString();
                this.ModalPopupExtender2.Show();

                if (lvREQRequisitionItemFloorDetail.DataSource != null)
                {
                    btnFloorPopupSave.Enabled = true;
                }
                else
                {
                    btnFloorPopupSave.Enabled = false;
                }

                if (CurrentPRMWorkOrderEntity.WorkOrderStatusID != MasterDataConstants.WorkOrderStatus.APPROVED)
                {
                    lblLockMessage.Visible = false;
                }

                else if (CurrentPRMWorkOrderEntity.WorkOrderStatusID == MasterDataConstants.WorkOrderStatus.APPROVED)
                {
                    btnFloorPopupSave.Enabled = false;
                    lblLockMessage.Visible    = true;
                }
            }

            if (MaterialReceiveItemMapID > 0)
            {
                if (string.Equals(e.CommandName, "EditItem"))
                {
                    _MaterialReceiveItemMapID = MaterialReceiveItemMapID;
                }
                else if (string.Equals(e.CommandName, "DeleteItem"))
                {
                    try
                    {
                        Int64 result = -1;

                        String fe = SqlExpressionBuilder.PrepareFilterExpression(PRMMaterialReceiveItemMapEntity.FLD_NAME_MaterialReceiveItemMapID, MaterialReceiveItemMapID.ToString(), SQLMatchType.Equal);

                        PRMMaterialReceiveItemMapEntity pRMMaterialReceiveItemMapEntity = new PRMMaterialReceiveItemMapEntity();


                        result = FCCPRMMaterialReceiveItemMap.GetFacadeCreate().Delete(pRMMaterialReceiveItemMapEntity, fe, DatabaseOperationType.Delete, TransactionRequired.No);

                        if (result == 0)
                        {
                            _MaterialReceiveItemMapID        = 0;
                            _PRMMaterialReceiveItemMapEntity = new PRMMaterialReceiveItemMapEntity();
                            PrepareInitialView();
                            BindPRMMaterialReceiveItemMapList();

                            MiscUtil.ShowMessage(lblMessage, "Material Receive Item Map has been successfully deleted.", true);
                        }
                        else
                        {
                            MiscUtil.ShowMessage(lblMessage, "Failed to delete Material Receive Item Map.", true);
                        }
                    }
                    catch (Exception ex)
                    {
                        MiscUtil.ShowMessage(lblMessage, ex.Message, true);
                    }
                }
            }
        }