Пример #1
0
        // Retorna uma lista de produtos da autorização
        public static List<Produtos> GetProdAutor(string pAutorizacaoId)
        {
            string sql = " Select PRECO_UNI, PRECO_TAB, QTDE, DESCRICAO, MOV_PROD2.PROD_ID, CODINBS, MOV_ID, COMREC" +
                        " FROM MOV_PROD2 JOIN PRODUTOS ON PRODUTOS.PROD_ID = MOV_PROD2.PROD_ID " +
                        " WHERE MOV_PROD2.AUTORIZACAO_ID = @autorizacaoId AND MOV_PROD2.CANCELADO <> 'S'";
             SqlParamsList ps = new SqlParamsList();
             ps.Add(new Fields("autorizacaoId", pAutorizacaoId));
             BD BD = new BD();
             SafeDataReader dr = BD.GetDataReader(sql, ps);
             List<Produtos> prodList = new List<Produtos>();
             try
             {
             while (dr.Read())
             {
                 Produtos prod = new Produtos();
                 prod.Descricao = dr.GetString("DESCRICAO");
                 prod.PrecoTabela = dr.GetDouble("PRECO_TAB");
                 prod.PrecoVenda = dr.GetDouble("PRECO_UNI");
                 prod.Qtde = dr.GetInt32("QTDE");
                 prod.Produto_id = dr.GetInt32("PROD_ID");
                 prod.ComRec = dr.GetString("COMREC");

                 prodList.Add(prod);
             }

             }
             finally
             {
             dr.Close();
             }
             return prodList;
        }
Пример #2
0
        // Insere produto na autorização
        public static void InsertMov(string pAutorizacaoId, Produtos pProduto)
        {
            MontadorSql mont = new MontadorSql("mov_prod2", MontadorType.Insert);
             mont.AddField("AUTORIZACAO_ID", pAutorizacaoId);
             mont.AddField("PROD_ID", pProduto.Produto_id);
             mont.AddField("QTDE", pProduto.Qtde);
             mont.AddField("PRECO_UNI", pProduto.PrecoVenda.ToString().Replace(",", "."));
             mont.AddField("PRECO_TAB", pProduto.PrecoTabela.ToString().Replace(",", "."));
             mont.AddField("COMREC", pProduto.ComRec);
             mont.AddField("CRM", pProduto.Crm);

             BD BD = new BD();
             BD.ExecuteNoQuery(mont.GetSqlString(), mont.GetParams());
        }
Пример #3
0
        public void Delete(Produtos produto)
        {
            ProdutosDAL dal = new ProdutosDAL();

            dal.Delete(produto);
        }
Пример #4
0
        private void btnSalvar_Click(object sender, EventArgs e)
        {
            try
            {
                if (ValidaCampos())
                {
                    if (string.IsNullOrEmpty(txtDescricao.Text))
                    {
                        MessageBox.Show("Por favor, informe a descrição do Produto!", "Aviso do Sistema", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        txtDescricao.Focus();
                        return;
                    }

                    if (string.IsNullOrEmpty(txtNCM.Text))
                    {
                        MessageBox.Show("Por favor, informe a classificação fiscal do Produto!", "Aviso do Sistema", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        btnNCM.Focus();
                        return;
                    }

                    if (string.IsNullOrEmpty(cbbUnidadeMedida.Text))
                    {
                        MessageBox.Show("Por favor, informe a classificação fiscal do Produto!", "Aviso do Sistema", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        btnNCM.Focus();
                        return;
                    }


                    #region Verifica se o Código de Barras já não está cadastrado ou se é igual ao Código do produto

                    if (!string.IsNullOrEmpty(txtCodigoBarras.Text))
                    {
                        try
                        {
                            if (ValidarCodigoDeBarras(txtCodigoBarras.Text.Trim()))
                            {
                                return;
                            }
                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show("Erro ao tentar verificar se o Código de Barras já existe cadastrado!" + ex.Message, "Aviso do Sistema", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                    }

                    #endregion


                    Produtos produtos = new Produtos();

                    produtos.Descricao = txtDescricao.Text.Trim();
                    if (tabelaIBPTId > 0)
                    {
                        produtos.TabelaIBPTId = tabelaIBPTId;
                    }
                    produtos.Ativo              = chkAtivo.Checked;
                    produtos.CodigoBarras       = txtCodigoBarras.Text.Trim();
                    produtos.UnidadeMedidaId    = Convert.ToInt32(cbbUnidadeMedida.SelectedValue);
                    produtos.GrupoProdutosId    = Convert.ToInt32(cbbGrupoProdutos.SelectedValue);
                    produtos.SubgrupoProdutosId = Convert.ToInt32(cbbSubgrupoProdutos.SelectedValue);
                    if (tributacaoFiscalId > 0)
                    {
                        produtos.TributacaoFiscalId = tributacaoFiscalId;
                    }
                    if (fornecedorId > 0)
                    {
                        produtos.FornecedorId = fornecedorId;
                    }
                    produtos.ValorCompra   = !string.IsNullOrEmpty(txtValorCompra.Text) ? Convert.ToDecimal(txtValorCompra.Text) : 0;
                    produtos.ValorVenda    = !string.IsNullOrEmpty(txtValorVenda.Text) ? Convert.ToDecimal(txtValorVenda.Text) : 0;
                    produtos.ValorUnitario = !string.IsNullOrEmpty(txtValorUnitario.Text) ? Convert.ToDecimal(txtValorUnitario.Text) : 0;

                    produtos.EstoqueInicial = !string.IsNullOrEmpty(txtEstoqueInicial.Text) ? Convert.ToInt32(txtEstoqueInicial.Text) : 0;
                    if (produtosId <= 0)
                    {
                        produtos.EstoqueAtual = produtos.EstoqueInicial;
                    }
                    else
                    {
                        produtos.EstoqueAtual = !string.IsNullOrEmpty(txtEstoqueAtual.Text) ? Convert.ToInt32(txtEstoqueAtual.Text) : produtos.EstoqueInicial;
                        produtosNegocios.ReporEstoque(Convert.ToInt32(txtEstoqueAtual.Text), produtosId);
                    }
                    produtos.EstoqueMinimo = !string.IsNullOrEmpty(txtEstoqueMinimo.Text) ? Convert.ToInt32(txtEstoqueMinimo.Text) : 0;
                    produtos.EstoqueMaximo = !string.IsNullOrEmpty(txtEstoqueMaximo.Text) ? Convert.ToInt32(txtEstoqueMaximo.Text) : 0;
                    produtos.Observacao    = txtObservacao.Text.Trim();
                    produtos.DataCadastro  = Convert.ToDateTime(dtpDataCadastro.Value.ToString("dd/MM/yyyy HH:mm:ss"));
                    produtos.UltimaCompra  = Convert.ToDateTime(dtpUltimaCompra.Value.ToString("dd/MM/yyyy HH:mm:ss"));

                    //INSERIR
                    if (produtosId <= 0)
                    {
                        try
                        {
                            if (produtosNegocios.Inserir(produtos))
                            {
                                MessageBox.Show("Produto cadastrado com sucesso!", "Aviso do Sistema", MessageBoxButtons.OK, MessageBoxIcon.Information);

                                Limpar();
                                HabilitaCampos(false);
                                btnSalvar.Text     = "Salvar [ F5 ]";
                                btnSalvar.Enabled  = false;
                                btnExcluir.Enabled = false;
                                btnNovo.Text       = "Novo [ F2 ]";
                                CarregarGrid();
                            }
                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show("Erro ao tentar cadastrar o produto!\n\nDetalhe técnico: " + ex.Message, "Aviso do Sistema", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                    }
                    else //ALTERAR
                    {
                        try
                        {
                            produtos.ProdutosId = produtosId;

                            if (produtosNegocios.Alterar(produtos))
                            {
                                MessageBox.Show("Produto alterado com sucesso!", "Aviso do Sistema", MessageBoxButtons.OK, MessageBoxIcon.Information);

                                Limpar();
                                HabilitaCampos(false);
                                btnSalvar.Text     = "Salvar [ F5 ]";
                                btnSalvar.Enabled  = false;
                                btnExcluir.Enabled = false;
                                btnNovo.Text       = "Novo [ F2 ]";
                                CarregarGrid();
                            }
                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show("Erro ao tentar alterar o produto selecionado!\n\nDetalhe técnico: " + ex.Message, "Aviso do Sistema", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                    }

                    produtosId = 0;
                    toolTip.SetToolTip(this.btnSalvar, "Salvar [ F5 ]");
                    toolTip.SetToolTip(this.btnNovo, "Novo cadastro [ F2 ]");
                    btnPesquisar_Click(sender, e);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Erro ao tentar cadastrar o produto!\n\nDetalhe técnico : " + ex.Message, "Aviso do Sistema", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
 public bool AdicionaProduto(Produtos produto)
 {
     _Local.Add(produto);
     _Local.SaveChanges();
     return(true);
 }
Пример #6
0
 public ItemVenda()
 {
     Produto  = new Produtos();
     CriadoEm = DateTime.Now;
 }
Пример #7
0
 private void Excluir(Produtos dados)
 {
     dados.Id_produto = Convert.ToInt32(txtId.Text);
     model.Excluir(dados);
     MessageBox.Show("Fornecedor excluido com Sucesso");
 }
Пример #8
0
 partial void UpdateProdutos(Produtos instance);
Пример #9
0
 public frmSearchProdutos()
 {
     InitializeComponent();
     p          = new Produtos();
     controller = new ProdutosController();
 }
Пример #10
0
        public void TrocaQuantidade(Produto produto)
        {
            Produto produtoCarregado = Produtos.FirstOrDefault(p => p.Id == produto.Id);

            produtoCarregado.Quantidade = produto.Quantidade;
        }
Пример #11
0
        public void Remove(long id)
        {
            Produto produto = Produtos.FirstOrDefault(p => p.Id == id);

            Produtos.Remove(produto);
        }
        public ActionResult Create([Bind(Include = "Prod_ID,NomeProduto,Descricao,IVAVenda,PrecoVenda,Stock,CategoriasFK")] Produtos produto, HttpPostedFileBase[] Uploadimagens)//para ter multiplas imagens faco um array e um ciclo for para ir buscar cada imagem. uma coisa q o vs faz por ti ex: produto.imgem.caminho
        {
            int idImagem = db.Imagens.Max(a => a.Imagem_ID);

            foreach (var Uploadimagem in Uploadimagens)
            {
                string name = System.IO.Path.GetFileName(Uploadimagem.FileName);
                Uploadimagem.SaveAs(Server.MapPath("~/Imagens/" + name));

                string filename = "Imagens/" + name;

                //ID do novo produto
                int idNovoPoduto = 0;
                try
                {
                    idNovoPoduto = db.Produtos.Max(a => a.Prod_ID) + 1;
                    idImagem++;
                }
                catch (Exception)
                {
                    idNovoPoduto = 1;
                }
                //guarda o ID
                produto.Prod_ID = idNovoPoduto;

                //escolher o nome do ficheiro
                string nomeImg = "Imagem_" + idImagem + ".jpg";

                //var auxiliar
                string path = "";

                //validar se a img foi fornecida
                if (Uploadimagens != null)
                {
                    path = Path.Combine(Server.MapPath("~/imagens/"), nomeImg);
                    //produto.ListaDeImagens= nomeImg;
                    Imagens imagem = new Imagens
                    {
                        Img   = nomeImg,
                        Ordem = ""
                    };

                    try
                    {
                        Uploadimagem.SaveAs(path);
                        produto.ListaDeImagens.Add(imagem);
                    }
                    catch (Exception)
                    {
                        ModelState.AddModelError("", "Error Creating a new Product");
                    }
                }
                else
                {
                    ModelState.AddModelError("", "No Image was found. Please insert a image");

                    return(View(produto));
                }
            }
            if (ModelState.IsValid)
            {
                try
                {
                    db.Produtos.Add(produto);
                    db.SaveChanges();
                    return(RedirectToAction("Index"));
                }
                catch (Exception) {
                    ModelState.AddModelError("", "Error Creating a new Product");
                }
            }

            //ViewBag.CategoriasFK = new SelectList(db.Categorias, "Cat_ID", "NomeCateg", produto.CategoriasFK);
            return(View(produto));
        }
 public Produto BuscarProdutosPorNome(int id)
 {
     return(Produtos.Where(o => o.Id == id).FirstOrDefault());
 }
 public Produto[] BuscarProdutosPorNome(string nome)
 {
     return(Produtos.Where(o => o.Nome.ToLower().Contains(nome.ToLower())).ToArray());
 }
Пример #15
0
        public IActionResult Index()
        {
            Produtos produtos = new Produtos();

            return(View(produtos));
        }
Пример #16
0
 public void ADD(Produtos produto)
 {
     listaProdutos.Add(produto);
 }
Пример #17
0
        public IList <Produto> GetProdutosByDescricao()
        {
            IList <Produto> produtos = Produtos.ToList();

            return(produtos.OrderBy(p => p.CategoriaDescricao).ToList());
        }
Пример #18
0
 partial void InsertProdutos(Produtos instance);
Пример #19
0
        /// <summary>
        ///
        /// </summary>
        /// <returns>Código do movimento caso seja efetuado com sucesso. Caso haja erros, retornará 0.</returns>
        public int FechaMovimento(decimal troco)
        {
            UnitOfWork unit = new UnitOfWork(true);

            try
            {
                unit.BeginTransaction();
                db.Context = unit.Context;

                if (itens_mov == null)
                {
                    itens_mov = Movimento.Itens_movimento.ToList();
                }
                Movimento.Itens_movimento.Clear();

                if (itens_pag == null)
                {
                    itens_pag = Movimento.Itens_pagamento.ToList();
                }
                Movimento.Itens_pagamento.Clear();

                Movimentos_caixasController movimentos_caixaController = new Movimentos_caixasController();
                movimentos_caixaController.SetContext(unit.Context);

                Formas_pagamentoController fpg_controller = new Formas_pagamentoController();
                fpg_controller.SetContext(unit.Context);

                Tipos_movimentoController tmc = new Tipos_movimentoController();
                tmc.SetContext(unit.Context);

                Tipos_movimento tipo_mov = tmc.Find(Movimento.Tipo_movimento_id);

                Movimento.Id         = db.NextId(e => e.Id);
                Movimento.Data       = DateTime.Now;
                Movimento.Usuario_id = UsuariosController.UsuarioAtual.Id;
                Movimento.Loja_id    = UsuariosController.LojaAtual.Id;

                db.Save(Movimento);
                db.Commit();

                if (troco > 0)
                {
                    int tipo_pg_dinheiro      = (int)Tipo_pagamento.DINHEIRO;
                    Formas_pagamento fpgTroco = fpg_controller.Get(e => e.Tipo_pagamento == tipo_pg_dinheiro);

                    Movimentos_caixas mcTroco = new Movimentos_caixas();
                    mcTroco.Descricao          = $"Movimento {Movimento.Id} (TROCO)";
                    mcTroco.Caixa_id           = movimentos_caixaController.Get_ID_CaixaAtualUsuario();
                    mcTroco.Data               = Movimento.Data;
                    mcTroco.Movimento_id       = Movimento.Id;
                    mcTroco.Usuario_id         = Movimento.Usuario_id;
                    mcTroco.Forma_pagamento_id = fpgTroco.Id;
                    mcTroco.Loja_id            = UsuariosController.LojaAtual.Id;
                    mcTroco.Tipo_mov           = (int)Tipo_movimentacao_caixa.TROCO;
                    mcTroco.Valor              = (troco * (-1));

                    if (!movimentos_caixaController.Save(mcTroco))
                    {
                        unit.RollBack();
                        return(0);
                    }
                }

                Itens_movimentoController imc = new Itens_movimentoController();
                imc.SetContext(unit.Context);

                EstoqueController estoque_controller = new EstoqueController();
                estoque_controller.SetContext(unit.Context);

                string lote = imc.GetLastLote(false);
                lote = estoque_controller.GeraProximoLote(lote);
                int sublote = 1;

                #region Itens do movimento
                foreach (Itens_movimento item in itens_mov)
                {
                    item.Produtos     = null;
                    item.Unidades     = null;
                    item.Movimento_id = Movimento.Id;

                    Estoque e = new Estoque();
                    e.Produto_id = item.Produto_id;
                    e.Loja_id    = UsuariosController.LojaAtual.Id;
                    e.Quant      = item.Quant;
                    e.Lote       = (string.IsNullOrEmpty(item.Lote)
                            ? null
                            : (item.Lote + "SL" + item.Sublote));
                    e.Grade_id = item.Grade_id;

                    ProdutosController pc = new ProdutosController();
                    pc.SetContext(unit.Context);
                    Produtos prod = pc.Find(item.Produto_id);

                    Produtos_fornecedoresController pForn_c = new Produtos_fornecedoresController();
                    pForn_c.SetContext(unit.Context);

                    switch (tipo_mov.Movimentacao_itens)
                    {
                    case (int)Tipo_movimentacao.ENTRADA:

                        /*
                         *   O produto controla Lote, e a sua entrada é vinda de um Fornecedor.
                         *   Neste caso é gerado o seu Lote e inserido no estoque da
                         *   loja em questão
                         */
                        #region tipo_mov.Utiliza_fornecedor && prod.Controla_lote
                        if (tipo_mov.Utiliza_fornecedor && prod.Controla_lote)
                        {
                            e.Lote         = lote;
                            e.Sublote      = sublote.ToString();
                            e.Data_entrada = DateTime.Now;

                            Produtos_fornecedores pf = pForn_c.Find(item.Produto_id, Movimento.Fornecedor_id);
                            if (pf != null)
                            {
                                item.Quant = (item.Quant * pf.Fator_conversao);
                            }

                            estoque_controller.Save(e);
                            sublote++;

                            break;
                        }
                        #endregion

                        #region tipo_mov.Utiliza_fornecedor && !prod.Controla_lote
                        if (tipo_mov.Utiliza_fornecedor && !prod.Controla_lote)
                        {
                            Produtos_fornecedores pf = pForn_c.Find(item.Produto_id, Movimento.Fornecedor_id);
                            if (pf != null)
                            {
                                item.Quant = (item.Quant * pf.Fator_conversao);
                            }

                            if (!estoque_controller.InsereEstoque(item.Quant, item.Produto_id, Movimento.Loja_id, (item.Lote + "SL" + item.Sublote)))
                            {
                                unit.RollBack();
                                return(0);
                            }

                            break;
                        }
                        #endregion

                        /*
                         *   O produto controla Lote, porém sua entrada NÃO é proveniennte de um fornecedor.
                         *   Pode ser uma devolução, troca ou entrada por transferencia de loja.
                         *
                         *   Neste caso, é verificado se existe o lote em questão.
                         *   Caso não exista, será criado,
                         *   Caso exista, o Saldo em Estoque do mesmo será atualizado
                         */
                        #region (!tipo_mov.Utiliza_fornecedor) && prod.Controla_lote
                        if ((!tipo_mov.Utiliza_fornecedor) && prod.Controla_lote)
                        {
                            if (!estoque_controller.ExisteLote(item.Lote, item.Sublote))
                            {
                                estoque_controller.CriaLote(item.Produto_id, Movimento.Loja_id, item.Lote, item.Sublote);
                            }

                            if (!estoque_controller.InsereEstoque(item.Quant, item.Produto_id, Movimento.Loja_id, (item.Lote + "SL" + item.Sublote)))
                            {
                                unit.RollBack();
                                return(0);
                            }

                            break;
                        }
                        #endregion

                        #region prod.Controla_grade
                        if (prod.Controla_grade)
                        {
                            if (!estoque_controller.InsereEstoque(item.Quant, item.Produto_id, Movimento.Loja_id, null, item.Grade_id))
                            {
                                unit.RollBack();
                                return(0);
                            }

                            break;
                        }
                        #endregion

                        /*
                         *  O produto NÃO controla lote, e sua entrada NÃO é proveniente de um fornecedor.
                         *  Neste caso, o estoque será inserido levando em consideração o produto pelo seu código.
                         *
                         *  OBS.: Quando um produto NÃO possui lotes em estoque, a tabela de Estoque só pode
                         *  conter um unico registro referente ao produto em questão, considerando a Loja.
                         *
                         *  Quando o produto POSSUI lotes em estoque, a tabela de estoque pode conter varios
                         *  registros referente ao produto em questão, levando em consideração o Lote, Sub-Lote
                         *  e respectiva Loja.
                         */
                        #region !tipo_mov.Utiliza_fornecedor && !prod.Controla_lote
                        if (!tipo_mov.Utiliza_fornecedor && !prod.Controla_lote)
                        {
                            if (!estoque_controller.InsereEstoque(item.Quant, item.Produto_id, Movimento.Loja_id))
                            {
                                unit.RollBack();
                                return(0);
                            }

                            break;
                        }
                        #endregion

                        break;

                    case (int)Tipo_movimentacao.SAIDA:

                        string loteEst = (string.IsNullOrEmpty(e.Lote)
                                ? null
                                : e.Lote);

                        if (!estoque_controller.RetiraEstoque(e.Quant, e.Produto_id, e.Loja_id, loteEst, item.Grade_id))
                        {
                            unit.RollBack();
                            return(0);
                        }

                        break;
                    }

                    if (e.Lote != null)
                    {
                        if (e.Lote.Contains("SL"))
                        {
                            item.Lote    = e.Lote.Substring(0, e.Lote.IndexOf("SL"));
                            item.Sublote = e.Lote.Substring(e.Lote.IndexOf("SL") + 2);
                        }
                        else
                        {
                            item.Lote    = e.Lote;
                            item.Sublote = e.Sublote;
                        }
                    }

                    if (!imc.Save(item))
                    {
                        unit.RollBack();
                        return(0);
                    }
                }
                #endregion

                int numero_parcela = 1;

                #region Itens do Pagamento
                foreach (Itens_pagamento item_pg in itens_pag)
                {
                    if (tipo_mov.Movimentacao_valores == (int)Tipo_movimentacao.NENHUM)
                    {
                        continue;
                    }

                    item_pg.Movimento_id = Movimento.Id;

                    ContasController contas_controller = new ContasController();
                    contas_controller.SetContext(unit.Context);

                    Itens_pagamentoController ipc = new Itens_pagamentoController();
                    ipc.SetContext(unit.Context);

                    if (!ipc.Save(item_pg))
                    {
                        unit.RollBack();
                        return(0);
                    }

                    Formas_pagamento forma_pagamento = fpg_controller.Find(item_pg.Forma_pagamento_id);

                    Movimentos_caixas movimento_caixa = new Movimentos_caixas();
                    movimento_caixa.Descricao          = $"Movimento {Movimento.Id} ({(tipo_mov.Movimentacao_valores == (int)Tipo_movimentacao.ENTRADA ? "ENTRADA" : "SAIDA")})";
                    movimento_caixa.Caixa_id           = movimentos_caixaController.Get_ID_CaixaAtualUsuario();
                    movimento_caixa.Data               = Movimento.Data;
                    movimento_caixa.Movimento_id       = Movimento.Id;
                    movimento_caixa.Usuario_id         = Movimento.Usuario_id;
                    movimento_caixa.Forma_pagamento_id = item_pg.Forma_pagamento_id;
                    movimento_caixa.Loja_id            = UsuariosController.LojaAtual.Id;

                    ParcelasController parcController = new ParcelasController();
                    parcController.SetContext(unit.Context);

                    switch (forma_pagamento.Tipo_pagamento)
                    {
                        #region DINHEIRO
                    case (int)Tipo_pagamento.DINHEIRO:

                        switch (tipo_mov.Movimentacao_valores)
                        {
                        case (int)Tipo_movimentacao.ENTRADA:
                            movimento_caixa.Tipo_mov = (int)Tipo_movimentacao_caixa.ENTRADA;
                            movimento_caixa.Valor    = item_pg.Valor;
                            break;

                        case (int)Tipo_movimentacao.SAIDA:
                            movimento_caixa.Tipo_mov = (int)Tipo_movimentacao_caixa.SAIDA;
                            movimento_caixa.Valor    = (item_pg.Valor * (-1));
                            break;
                        }

                        break;
                        #endregion

                        #region CARTAO
                    case (int)Tipo_pagamento.CARTAO:

                        movimento_caixa.Valor = 0;

                        Operadoras_cartaoController opController = new Operadoras_cartaoController();
                        opController.SetContext(unit.Context);

                        Operadoras_cartao operadora = opController.Find(forma_pagamento.Operadora_cartao_id);

                        Parcelas parcela_cartao = new Parcelas();
                        parcela_cartao.Item_pagamento_id = item_pg.Id;
                        parcela_cartao.Valor             = item_pg.Valor;
                        parcela_cartao.Situacao          = (int)Situacao_parcela.EM_ABERTO;
                        parcela_cartao.Data_lancamento   = Movimento.Data;

                        parcela_cartao.Data_vencimento = (operadora.Tipo_recebimento == (int)Tipo_prazo_operadora.DIAS
                                ? Movimento.Data.AddDays(operadora.Prazo_recebimento)
                                : Movimento.Data.AddHours(operadora.Prazo_recebimento));
                        parcela_cartao.Portador = forma_pagamento.Conta_id;

                        if (tipo_mov.Movimentacao_valores == (int)Tipo_movimentacao.ENTRADA)
                        {
                            parcela_cartao.Tipo_parcela = (int)Tipo_parcela.RECEBER;
                            parcela_cartao.Cliente_id   = Movimento.Cliente_id;

                            movimento_caixa.Tipo_mov = (int)Tipo_movimentacao_caixa.ENTRADA;
                            movimento_caixa.Valor    = item_pg.Valor;
                        }

                        if (tipo_mov.Movimentacao_valores == (int)Tipo_movimentacao.SAIDA)
                        {
                            parcela_cartao.Tipo_parcela  = (int)Tipo_parcela.PAGAR;
                            parcela_cartao.Fornecedor_id = Movimento.Cliente_id;

                            movimento_caixa.Tipo_mov = (int)Tipo_movimentacao_caixa.SAIDA;
                            movimento_caixa.Valor    = item_pg.Valor * (-1);
                        }

                        parcela_cartao.Num_documento     = Movimento.Id.ToString().PadLeft(8 - Movimento.Id.ToString().Length, '0') + "-" + numero_parcela;
                        parcela_cartao.Parcela_descricao = $"REFERENTE AO MOVIMENTO {Movimento.Id} ({tipo_mov.Descricao})";
                        parcela_cartao.Numero_cheque     = string.Empty;
                        parcela_cartao.Banco             = string.Empty;
                        parcela_cartao.Agencia           = string.Empty;
                        parcela_cartao.Dias_compensacao  = 0;
                        parcela_cartao.Conta             = string.Empty;

                        if (!parcController.Save(parcela_cartao))
                        {
                            unit.RollBack();
                            return(0);
                        }
                        numero_parcela++;
                        break;
                        #endregion

                        #region CHEQUE
                    case (int)Tipo_pagamento.CHEQUE:

                        movimento_caixa.Valor = 0;
                        IRegistroCheques registroCheques;

                        if (tipo_mov.Movimentacao_valores == (int)Tipo_movimentacao.ENTRADA)
                        {
                            registroCheques          = new RecebimentoCheques();
                            movimento_caixa.Tipo_mov = (int)Tipo_movimentacao_caixa.ENTRADA;
                            movimento_caixa.Valor    = item_pg.Valor;
                        }
                        else
                        {
                            registroCheques = new LancamentoCheque();
                            registroCheques.SetConta(contas_controller.Find(forma_pagamento.Conta_id));

                            movimento_caixa.Tipo_mov = (int)Tipo_movimentacao_caixa.SAIDA;
                            movimento_caixa.Valor    = item_pg.Valor * (-1);
                        }

                        registroCheques.Exibir(item_pg.Valor);

                        foreach (Cheque cheque in registroCheques.Cheques)
                        {
                            Parcelas parcela_cheque = new Parcelas();

                            parcela_cheque.Item_pagamento_id = item_pg.Id;
                            parcela_cheque.Valor             = cheque.Valor;
                            parcela_cheque.Situacao          = (int)Situacao_parcela.EM_ABERTO;
                            parcela_cheque.Data_lancamento   = Movimento.Data;
                            parcela_cheque.Num_documento     = Movimento.Id.ToString().PadLeft(8 - Movimento.Id.ToString().Length, '0') + "-" + numero_parcela;
                            parcela_cheque.Parcela_descricao = $"REFERENTE AO MOVIMENTO {Movimento.Id} ({tipo_mov.Descricao})";
                            parcela_cheque.Data_vencimento   = cheque.Data_deposito;

                            if (tipo_mov.Movimentacao_valores == (int)Tipo_movimentacao.ENTRADA)
                            {
                                parcela_cheque.Tipo_parcela = (int)Tipo_parcela.RECEBER;
                                parcela_cheque.Cliente_id   = Movimento.Cliente_id;

                                parcela_cheque.Numero_cheque    = cheque.Numero_cheque;
                                parcela_cheque.Banco            = cheque.Banco;
                                parcela_cheque.Agencia          = cheque.Agencia;
                                parcela_cheque.Dias_compensacao = cheque.Dias_compensacao;
                                parcela_cheque.Conta            = cheque.Conta;
                            }

                            if (tipo_mov.Movimentacao_valores == (int)Tipo_movimentacao.SAIDA)
                            {
                                parcela_cheque.Tipo_parcela  = (int)Tipo_parcela.PAGAR;
                                parcela_cheque.Fornecedor_id = Movimento.Fornecedor_id;

                                parcela_cheque.Portador         = forma_pagamento.Conta_id;
                                parcela_cheque.Numero_cheque    = cheque.Numero_cheque;
                                parcela_cheque.Banco            = string.Empty;
                                parcela_cheque.Agencia          = string.Empty;
                                parcela_cheque.Dias_compensacao = 0;
                                parcela_cheque.Conta            = string.Empty;
                            }

                            if (!parcController.Save(parcela_cheque))
                            {
                                unit.RollBack();
                                return(0);
                            }

                            numero_parcela++;
                        }

                        break;
                        #endregion

                        #region PRAZO
                    case (int)Tipo_pagamento.PRAZO:

                        DateTime data_base = (forma_pagamento.Tipo_intervalo == (int)Tipo_intervalo.DATA_BASE
                                ? DateTime.Now.AddMonths(1)
                                : DateTime.Now.AddDays(forma_pagamento.Intervalo)); //baseando a data para o mes sequente ao atual

                        for (int i = 0; i < forma_pagamento.Parcelas; i++)
                        {
                            Parcelas parcela_prazo = new Parcelas();

                            parcela_prazo.Item_pagamento_id = item_pg.Id;
                            parcela_prazo.Valor             = (item_pg.Valor / forma_pagamento.Parcelas);
                            parcela_prazo.Situacao          = (int)Situacao_parcela.EM_ABERTO;
                            parcela_prazo.Data_lancamento   = Movimento.Data;
                            parcela_prazo.Parcela_descricao = $"REFERENTE AO MOVIMENTO {Movimento.Id} ({tipo_mov.Descricao})";
                            parcela_prazo.Num_documento     = Movimento.Id.ToString().PadLeft(8 - Movimento.Id.ToString().Length, '0') + "-" + numero_parcela;
                            parcela_prazo.Numero_cheque     = string.Empty;
                            parcela_prazo.Banco             = string.Empty;
                            parcela_prazo.Agencia           = string.Empty;
                            parcela_prazo.Dias_compensacao  = 0;
                            parcela_prazo.Conta             = string.Empty;

                            if (forma_pagamento.Tipo_intervalo == (int)Tipo_intervalo.DATA_BASE)
                            {
                                data_base = new DateTime(data_base.Year, data_base.Month, forma_pagamento.Dia_base);
                                parcela_prazo.Data_vencimento = data_base;
                                data_base = data_base.AddMonths(1);
                            }

                            if (forma_pagamento.Tipo_intervalo == (int)Tipo_intervalo.INTERVALO)
                            {
                                parcela_prazo.Data_vencimento = data_base;
                                data_base = data_base.AddDays(forma_pagamento.Intervalo);
                            }

                            if (tipo_mov.Movimentacao_valores == (int)Tipo_movimentacao.ENTRADA)
                            {
                                parcela_prazo.Tipo_parcela = (int)Tipo_parcela.RECEBER;
                                parcela_prazo.Cliente_id   = Movimento.Cliente_id;

                                movimento_caixa.Tipo_mov = (int)Tipo_movimentacao_caixa.ENTRADA;
                                movimento_caixa.Valor    = item_pg.Valor;
                            }

                            if (tipo_mov.Movimentacao_valores == (int)Tipo_movimentacao.SAIDA)
                            {
                                parcela_prazo.Tipo_parcela  = (int)Tipo_parcela.PAGAR;
                                parcela_prazo.Fornecedor_id = Movimento.Fornecedor_id;

                                movimento_caixa.Tipo_mov = (int)Tipo_movimentacao_caixa.SAIDA;
                                movimento_caixa.Valor    = item_pg.Valor * (-1);
                            }

                            if (!parcController.Save(parcela_prazo))
                            {
                                unit.RollBack();
                                return(0);
                            }

                            numero_parcela++;
                        }
                        break;
                        #endregion
                    }

                    if (!movimentos_caixaController.Save(movimento_caixa))
                    {
                        unit.RollBack();
                        return(0);
                    }
                }
                #endregion

                if (Pedido_venda != null)
                {
                    Pedidos_vendaController pedidosController = new Pedidos_vendaController();
                    pedidosController.SetContext(unit.Context);

                    pedidosController.RemovePedido(Pedido_venda.Id);
                }

                unit.Commit();
                BStatus.Success("Movimento salvo");
                return(Movimento.Id);
            }
            catch (Exception ex)
            {
                unit.RollBack();
                return(0);
            }
        }
Пример #20
0
 partial void DeleteProdutos(Produtos instance);
Пример #21
0
 public void AdicionarProduto(Produto produto, int quantidade)
 {
     Produtos.Add(produto);
     ValorTotal += quantidade * produto.Valor;
 }