示例#1
0
        private bool DadosMudaramDaEmpresa(bool exibeerro)
        {
            #region --DadosMudaramDaEmpresa

            EmpresaValidada = true;

            if (currentEmpresa == null || !Modificado)
            {
                return(false);
            }

            try
            {
                uc_geral.Validar();
                if (!uce_divs.Validar(exibeerro, Convert.ToInt16(btnNova.Tag) == 1))
                {
                    EmpresaValidada = false;
                    return(false);
                }

                uce_pastas.Validar();

                switch (currentEmpresa.Servico)
                {
                case TipoAplicativo.SAT:
                    uce_danfe.Validar();
                    uce_ftp.Validar();
                    uce_sat.Validar();
                    break;

                case TipoAplicativo.Nfse:
                case TipoAplicativo.EFDReinf:
                case TipoAplicativo.eSocial:
                case TipoAplicativo.EFDReinfeSocial:
                    uce_cert.Validar();
                    break;

                case TipoAplicativo.Nfe:
                case TipoAplicativo.Cte:
                case TipoAplicativo.MDFe:
                case TipoAplicativo.NFCe:
                case TipoAplicativo.Todos:
                case TipoAplicativo.Nulo:
                default:
                    uce_cert.Validar();
                    uce_danfe.Validar();
                    uce_ftp.Validar();
                    break;
                }
            }
            catch (Exception ex)
            {
                if (exibeerro)
                {
                    throw ex;
                }
            }

            if (Convert.ToInt16(btnNova.Tag) == 1) //se inclusao nao precisa verificar se mudou algo, já que nao tem classe existente
            {
                return(Modificado);
            }

            var _Empresa = Empresas.FindConfEmpresa(empcnpj, servico);
            if (_Empresa == null)
            {
                return(Modificado);
            }

            PropertyInfo[] allClassToProperties = _Empresa.GetType().GetProperties(BindingFlags.Instance | BindingFlags.Public);
            foreach (var pi in allClassToProperties)
            {
                if (pi.CanWrite)
                {
                    var pii = currentEmpresa.GetType().GetProperty(pi.Name, BindingFlags.Instance | BindingFlags.Public);
                    if (pii != null)
                    {
                        object ob1 = pi.GetValue(_Empresa, null);
                        object ob2 = pii.GetValue(currentEmpresa, null);
                        if (ob1 == null || ob2 == null)
                        {
                            continue;
                        }

                        if (!ob1.Equals(ob2))
                        {
                            Console.WriteLine("{0}: old:{1} x new:{2}", pi.Name, ob1.ToString(), ob2.ToString());
                            return(true);
                        }
                    }
                }
            }
            return(false);

            #endregion
        }