Beispiel #1
0
        private object UpdateObjectByFormId(MASTER_DATA_APPROVAL approvalData, out bool isDelete)
        {
            PropertyInfo propInfo;

            isDelete = false;
            if (approvalData.PAGE_ID == (int)Enums.MenuList.BrandRegistration)
            {
                var tempId      = approvalData.FORM_ID.Split('-');
                var werks       = tempId[0];
                var facode      = tempId[1];
                var stickerCode = tempId[2];

                var dataBrand = _brandRegistrationBLL.GetByPlantIdAndFaCodeStickerCode(werks, facode, stickerCode);
                if (dataBrand != null)
                {
                    foreach (var detail in approvalData.MASTER_DATA_APPROVAL_DETAIL)
                    {
                        propInfo = typeof(ZAIDM_EX_BRAND).GetProperty(detail.COLUMN_NAME);
                        dataBrand.GetType()
                        .GetProperty(detail.COLUMN_NAME)
                        .SetValue(dataBrand, CastPropertyValue(propInfo, detail.NEW_VALUE));
                    }

                    return(null);
                }
                else
                {
                    ZAIDM_EX_BRAND data = new ZAIDM_EX_BRAND();

                    foreach (var detail in approvalData.MASTER_DATA_APPROVAL_DETAIL)
                    {
                        propInfo = typeof(ZAIDM_EX_BRAND).GetProperty(detail.COLUMN_NAME);
                        data.GetType()
                        .GetProperty(detail.COLUMN_NAME)
                        .SetValue(data, CastPropertyValue(propInfo, detail.NEW_VALUE));
                    }

                    return(data);
                }
            }
            else if (approvalData.PAGE_ID == (int)Enums.MenuList.POA)
            {
                var dataPoa = _poaBll.GetById(approvalData.FORM_ID);
                if (dataPoa != null)
                {
                    foreach (var detail in approvalData.MASTER_DATA_APPROVAL_DETAIL)
                    {
                        propInfo = typeof(POA).GetProperty(detail.COLUMN_NAME);
                        dataPoa.GetType()
                        .GetProperty(detail.COLUMN_NAME)
                        .SetValue(dataPoa, CastPropertyValue(propInfo, detail.NEW_VALUE));
                    }

                    return(null);
                }
                else
                {
                    POA data = new POA();

                    foreach (var detail in approvalData.MASTER_DATA_APPROVAL_DETAIL)
                    {
                        propInfo = typeof(POA).GetProperty(detail.COLUMN_NAME);
                        data.GetType()
                        .GetProperty(detail.COLUMN_NAME)
                        .SetValue(data, CastPropertyValue(propInfo, detail.NEW_VALUE));
                    }

                    return(data);
                }
            }
            else if (approvalData.PAGE_ID == (int)Enums.MenuList.POAMap)
            {
                var tempId  = approvalData.FORM_ID.Split('-');
                var poaId   = tempId[0];
                var nppbkc  = tempId[1];
                var plantid = tempId[2];

                var dataPoaMap = _poaMapBLL.GetByNppbckId(nppbkc, plantid, poaId);
                if (dataPoaMap != null)
                {
                    isDelete = approvalData.MASTER_DATA_APPROVAL_DETAIL.Where(x => x.NEW_VALUE == null).Any();
                    if (!isDelete)
                    {
                        foreach (var detail in approvalData.MASTER_DATA_APPROVAL_DETAIL)
                        {
                            propInfo = typeof(POA_MAP).GetProperty(detail.COLUMN_NAME);
                            dataPoaMap.GetType()
                            .GetProperty(detail.COLUMN_NAME)
                            .SetValue(dataPoaMap, CastPropertyValue(propInfo, detail.NEW_VALUE));
                        }
                    }



                    return(null);
                }
                else
                {
                    POA_MAP data = new POA_MAP();

                    foreach (var detail in approvalData.MASTER_DATA_APPROVAL_DETAIL)
                    {
                        propInfo = typeof(POA_MAP).GetProperty(detail.COLUMN_NAME);
                        data.GetType()
                        .GetProperty(detail.COLUMN_NAME)
                        .SetValue(data, CastPropertyValue(propInfo, detail.NEW_VALUE));
                    }

                    return(data);
                }
            }
            else if (approvalData.PAGE_ID == (int)Enums.MenuList.MaterialMaster)
            {
                var tempId         = approvalData.FORM_ID.Split('-');
                var werks          = tempId[0];
                var materialnumber = tempId[1];
                var dataMaterial   = _materialBLL.GetByMaterialAndPlantId(materialnumber, werks);
                if (dataMaterial != null)
                {
                    foreach (var detail in approvalData.MASTER_DATA_APPROVAL_DETAIL)
                    {
                        if (detail.COLUMN_NAME == "CONVERTION")
                        {
                            var materialUoms = detail.NEW_VALUE.Split(',');
                            var uomList      = new List <MATERIAL_UOM>();
                            foreach (var detailConvertion in materialUoms)
                            {
                                if (string.IsNullOrEmpty(detailConvertion))
                                {
                                    continue;
                                }
                                var convertionVal = decimal.Parse(detailConvertion.Trim().Split(' ')[0]);
                                var convertionUom = detailConvertion.Trim().Split(' ')[1];
                                //if (dataMaterial.MATERIAL_UOM.Any(x => x.MEINH == convertionUom))
                                //{
                                //    uomList.FirstOrDefault(x => x.MEINH == convertionUom).UMREN = convertionVal;
                                //}
                                //else
                                //{
                                uomList.Add(new MATERIAL_UOM()
                                {
                                    STICKER_CODE = dataMaterial.STICKER_CODE,
                                    WERKS        = dataMaterial.WERKS,
                                    UMREN        = convertionVal,
                                    MEINH        = convertionUom
                                });

                                //}
                            }
                            dataMaterial.MATERIAL_UOM = uomList;

                            continue;
                        }
                        propInfo = typeof(ZAIDM_EX_MATERIAL).GetProperty(detail.COLUMN_NAME);
                        dataMaterial.GetType().GetProperty(detail.COLUMN_NAME).SetValue(dataMaterial, CastPropertyValue(propInfo, detail.NEW_VALUE));

                        if (detail.COLUMN_NAME == "CLIENT_DELETION")
                        {
                            var materialClientDto = Mapper.Map <MaterialDto>(dataMaterial);
                            _materialBLL.ClientDeletion(materialClientDto, approvalData.APPROVED_BY);
                        }
                        else if (detail.COLUMN_NAME == "PLANT_DELETION")
                        {
                            var materialPlantDto = Mapper.Map <MaterialDto>(dataMaterial);
                            _materialBLL.ClientDeletion(materialPlantDto, approvalData.APPROVED_BY);
                        }
                    }
                    return(null);
                }
                else
                {
                    ZAIDM_EX_MATERIAL data = new ZAIDM_EX_MATERIAL();

                    foreach (var detail in approvalData.MASTER_DATA_APPROVAL_DETAIL)
                    {
                        if (detail.COLUMN_NAME == "CONVERTION")
                        {
                            continue;
                        }
                        propInfo = typeof(ZAIDM_EX_MATERIAL).GetProperty(detail.COLUMN_NAME);
                        data.GetType()
                        .GetProperty(detail.COLUMN_NAME)
                        .SetValue(data, CastPropertyValue(propInfo, detail.NEW_VALUE));
                    }


                    //convertion add
                    var firstOrDefault = approvalData.MASTER_DATA_APPROVAL_DETAIL.Where(x => x.COLUMN_NAME == "CONVERTION").Select(x => x.NEW_VALUE).FirstOrDefault();
                    if (firstOrDefault != null)
                    {
                        var detailConvertions = firstOrDefault.Split(',');
                        data.MATERIAL_UOM = new Collection <MATERIAL_UOM>();
                        foreach (var detailConvertion in detailConvertions)
                        {
                            data.MATERIAL_UOM.Add(new MATERIAL_UOM()
                            {
                                STICKER_CODE = data.STICKER_CODE,
                                WERKS        = data.WERKS,
                                UMREN        = decimal.Parse(detailConvertion.Trim().Split(' ')[0]),
                                MEINH        = detailConvertion.Trim().Split(' ')[1]
                            });
                        }
                    }

                    return(data);
                }
            }

            return(null);
        }