示例#1
0
        //***********************************************************//
        //*****************      FATURAR     ************************//
        //***********************************************************//
        private void btnFaturar_Click(object sender, EventArgs e)
        {
            //
            // ALGORITIMO DE FATURAMENTO
            //  ao clicar em faturar
            //  lista dados selecionados a faturar

            //    se > caso nao tenha nenhuma linha selecionada
            //         emite aviso(voce deve selecionar os itens para faturar)

            //    se nao >
            //        soma total pelas linhas selecionadas
            //        salva novo registro na fatura e retorna o id
            //  **
            //        pega o id do cliente selecionado

            //  salva nos registros selecionados
            //    o valor 1 em faturado e o id da fatura

            //  apos o evento recupera os dados da fatura
            //    e preenche os dados nas variaveis pra passar por parametro.

            //    entao abre novo formulario com a fatura selecionada
            //
            List <DataGridViewRow> Selecionados = (from row in gridTrabalhos.Rows.Cast <DataGridViewRow>()
                                                   where Convert.ToBoolean(row.Cells[0].Value) == true
                                                   select row).ToList();

            //
            if (Selecionados.Count > 0)
            {
                var msg = "";
                if (rdAbertos.Checked == true)
                {
                    msg = "Faturar";
                }
                else if (rdFaturados.Checked == true)
                {
                    msg = "Cancelar Faturamento de";
                }

                if (MessageBox.Show(string.Format("Tem Certeza que Deseja " + msg + " {0} Registro(s)?", Selecionados.Count), "Confirmação", MessageBoxButtons.YesNo) == DialogResult.Yes)
                {
                    decimal  total     = 0;
                    DateTime hoje      = DateTime.Today.Date;
                    int      IDCliente = Convert.ToInt32(lblClienteID.Text);
                    hoje.ToShortDateString();
                    var dia = hoje.ToString("yyyy/MM/dd");
                    //
                    //salva fatura e retorna id
                    var fatura = new Faturas();
                    fatura.clienteFatura  = IDCliente;
                    fatura.dataEmissao    = hoje;
                    fatura.dataVencimento = hoje.AddDays(5);
                    fatura.moeda          = lblMoeda.Text;
                    fatura.valorHora      = lblPrecoHora.Text;
                    fatura.totalFatura    = txtTotal.Text;
                    fatura.Salvar();
                    //
                    foreach (DataGridViewRow row in Selecionados)
                    {
                        var i = row.Cells[1].Value;
                        // # checa se estiver aberto, entao fatura
                        if (rdAbertos.Checked == true)
                        {
                            //retorna o id e escreve no textbox
                            var idRetorno   = Faturas.retornaID();
                            var fat         = idRetorno[0];
                            var idRetornado = fat.IDFat;
                            txtIDFat.Text = Convert.ToString(idRetornado);
                            //
                            //soma e escreve valores selecionados
                            //pra somar precisa converter, pois a entrada vem com a string R$
                            //pega o valor correspondente a linha.celula
                            var     valor  = row.Cells[8].Value.ToString();
                            decimal valorC = Convert.ToDecimal(valor);
                            total += valorC;
                            //txtTotal.Text = Convert.ToString(total);
                            //atualiza fatura com os dados retornados e calculados
                            var upFatura = new Faturas();
                            fatura.IDFat       = idRetornado;
                            fatura.totalFatura = Convert.ToString(total);
                            fatura.Salvar();
                            //salva os dados nos itens
                            //salva id da fatura e marca como faturado
                            var id  = Convert.ToInt32(i);
                            var sim = 1;
                            var t   = new iTrabalho();
                            t.Fatura(id, sim, idRetornado);
                            //TODO..
                            //
                        }
                        // # se estiver fechado, cancela fatura
                        else if (rdFaturados.Checked == true)
                        {
                            //seta idRetornado como 0;
                            var idRetornado = 0;
                            var id          = Convert.ToInt32(i);
                            var nao         = 0;
                            var t           = new iTrabalho();
                            t.Fatura(id, nao, idRetornado);
                        }
                        //
                        //TESTE DE FUNCIONAMENTO
                        //MessageBox.Show(id + "Selecionado");
                    }
                    try
                    {
                        //abre formulario com itens da fatura
                        int idFatura = Convert.ToInt32(txtIDFat.Text);
                        //processo concluido agora abre o formulario com a fatura criada
                        frmFatura NovaFatura = new frmFatura(idFatura);
                        NovaFatura.Owner = this;
                        NovaFatura.Show();
                    }
                    catch
                    {
                    }
                    rastDados();
                }
            }
            else
            {
                MessageBox.Show("Por favor selecione pelo menos um item da lista.");
            }
        }