コード例 #1
0
        public override bool execute( )
        {
            if (base.execute() == false)
            {
                return(false);
            }

            Registry("execute exec_processaArqConvenio ");

            /// USER [ execute ]

            DataPortable csv_AllArchive = MemoryGet(input_st_id);

            ApplicationUtil var_util = new ApplicationUtil();

            string st_ids = csv_AllArchive.getValue("ids");

            Trace(st_ids);

            int total_records = var_util.indexCSV(st_ids);

            T_Empresa emp = new T_Empresa(this);

            if (!emp.select_rows_empresa(input_st_empresa))
            {
                PublishError("");
                return(false);
            }

            if (!emp.fetch())
            {
                PublishError("");
                return(false);
            }

            T_Cartao                cart     = new T_Cartao(this);
            T_Cartao                cart_mat = new T_Cartao(this);
            T_Proprietario          prot     = new T_Proprietario(this);
            T_InfoAdicionais        info     = new T_InfoAdicionais(this);
            T_Dependente            dep      = new T_Dependente(this);
            LINK_ProprietarioCartao lpc      = new LINK_ProprietarioCartao(this);

            int linha = 0;

            for (int t = 0; t < total_records; ++t)
            {
                linha++;

                DataPortable port_line = MemoryGet(var_util.getCSV(t));

                string line = port_line.getValue("line");

                Trace(line);

                int pos = 0;

                try
                {
                    string st_mat     = line.Substring(pos, 6).Trim();    pos += 6;
                    string cpf        = line.Substring(pos, 11).Trim();   pos += 11;
                    string tit        = line.Substring(pos, 2).Trim();   pos += 2;
                    string nome       = line.Substring(pos, 50).Trim();   pos += 50;
                    string end        = line.Substring(pos, 40).Trim();   pos += 40;
                    string bairro     = line.Substring(pos, 20).Trim();   pos += 20;
                    string cep        = line.Substring(pos, 8).Trim();   pos += 8;
                    string cidade     = line.Substring(pos, 20).Trim();   pos += 20;
                    string tel        = line.Substring(pos, 10).Trim();   pos += 10;
                    string email      = line.Substring(pos, 50).Trim();   pos += 50;
                    string dt_nasc    = line.Substring(pos, 8).Trim();   pos += 8;
                    string lim_mensal = line.Substring(pos, 12).Trim().TrimStart('0').PadLeft(1, '0');     pos += 12;
                    string lim_total  = line.Substring(pos, 12).Trim().TrimStart('0').PadLeft(1, '0');     pos += 12;

                    if (lim_total == "0")
                    {
                        lim_total = lim_mensal;
                    }

                    st_mat = st_mat.PadLeft(6, '0');

                    bool found = false;

                    if (cart_mat.select_rows_empresa_matricula(input_st_empresa, st_mat))
                    {
                        PublishNote("Matricula " + st_mat + " já cadastrada. Registro descartado");
                        continue;
                    }

                    if (Convert.ToInt32(tit) == 1)                          // titular
                    {
                        if (prot.select_rows_cpf(cpf))
                        {
                            if (prot.fetch())
                            {
                                if (cart.select_rows_prop(prot.get_identity()))
                                {
                                    while (cart.fetch())
                                    {
                                        if (cart.get_st_empresa() == input_st_empresa)
                                        {
                                            if (cart.get_st_titularidade() == "01")
                                            {
                                                found = true;
                                                break;
                                            }
                                        }
                                    }

                                    if (found)
                                    {
                                        continue;                                         // descarta pois cartão já foi criado
                                    }
                                }
                            }

                            // não precisa criar dadosproprietario, só o cartão desta empresa
                            found = true;
                        }

                        if (!found)
                        {
                            // cria dados proprietario

                            prot.Reset();

                            prot.set_st_nome(nome);
                            prot.set_st_cpf(cpf);
                            prot.set_st_endereco(end);
                            prot.set_st_bairro(bairro);
                            prot.set_st_cidade(cidade);
                            prot.set_st_telefone(tel);
                            prot.set_st_email(email);

                            if (dt_nasc == "00000000")
                            {
                                dt_nasc = GetDataBaseTime();
                            }
                            else
                            {
                                int year  = Convert.ToInt32(dt_nasc.Substring(4, 4));
                                int month = Convert.ToInt32(dt_nasc.Substring(2, 2));
                                int day   = Convert.ToInt32(dt_nasc.Substring(0, 2));

                                dt_nasc = GetDataBaseTime(new DateTime(year, month, day));
                            }

                            prot.set_dt_nasc(dt_nasc);

                            prot.create_T_Proprietario();
                        }

                        info.Reset();

                        info.set_st_empresa(input_st_empresa);
                        info.set_st_matricula(st_mat);

                        info.create_T_InfoAdicionais();

                        cart.Reset();

                        cart.set_st_empresa(input_st_empresa);
                        cart.set_st_matricula(st_mat);
                        cart.set_st_titularidade(tit.PadLeft(2, '0'));

                        cart.set_tg_emitido(StatusExpedicao.NaoExpedido);

                        cart.set_fk_dadosProprietario(prot.get_identity());
                        cart.set_fk_infoAdicionais(info.get_identity());

                        cart.set_vr_limiteMensal(lim_mensal);
                        cart.set_vr_limiteTotal(lim_total);

                        cart.set_tg_tipoCartao("0");
                        cart.set_st_venctoCartao(DateTime.Now.Month.ToString().PadLeft(2, '0') +
                                                 (DateTime.Now.Year + 5).ToString().Substring(2, 2));

                        cart.set_tg_status("0");
                        cart.set_nu_viaCartao("1");

                        cart.create_T_Cartao();
                    }
                    else                     // dependente
                    {
                        // busca proprietario
                        if (prot.select_rows_cpf(cpf))
                        {
                            if (prot.fetch())
                            {
                                dep.Reset();

                                dep.set_st_nome(nome);
                                dep.set_nu_titularidade(tit);
                                dep.set_fk_proprietario(prot.get_identity());

                                dep.create_T_Dependente();

                                info.Reset();

                                info.set_st_empresa(input_st_empresa);
                                info.set_st_matricula(st_mat);

                                info.create_T_InfoAdicionais();

                                cart.Reset();

                                cart.set_st_empresa(input_st_empresa);
                                cart.set_st_titularidade(tit.PadLeft(2, '0'));
                                cart.set_st_matricula(st_mat);

                                cart.set_tg_emitido(StatusExpedicao.NaoExpedido);

                                cart.set_fk_dadosProprietario(prot.get_identity());
                                cart.set_fk_infoAdicionais(info.get_identity());

                                cart.set_vr_limiteMensal(lim_mensal);
                                cart.set_vr_limiteTotal(lim_total);

                                cart.set_tg_tipoCartao("0");
                                cart.set_st_venctoCartao(DateTime.Now.Month.ToString().PadLeft(2, '0') +
                                                         (DateTime.Now.Year + 5).ToString().Substring(2, 2));

                                cart.set_tg_status("0");
                                cart.set_nu_viaCartao("1");

                                cart.create_T_Cartao();
                            }
                        }
                    }
                }
                catch (System.Exception ex)
                {
                    ex.ToString();

                    PublishError("Arquivo com registro inválido na linha " + linha);
                    return(false);
                }
            }

            /// USER [ execute ] END

            Registry("execute done exec_processaArqConvenio ");

            return(true);
        }