예제 #1
0
 private void PreencherFicha(string pCd_produto)
 {
     //Buscar Ficha Formula
     CamadaDados.Estoque.Cadastros.TList_FichaTecProduto lFichaTec =
         CamadaNegocio.Estoque.Cadastros.TCN_FichaTecProduto.Buscar(pCd_produto, string.Empty, null);
     if (lFichaTec.Exists(p => string.IsNullOrEmpty(p.Cd_local)))
     {
         string vColunas = "a.ds_local|Local Armazenagem|150;" +
                           "a.cd_local|Código|50";
         string vParam = "|exists|(select 1 from tb_est_empresa_x_localarm x " +
                         "           where x.cd_local = a.cd_local and x.cd_empresa = '" + (bsItensOrcamento.Current as TRegistro_Orcamento_Item).Cd_empresa.Trim() + "')";
         DataRowView linha = FormBusca.UtilPesquisa.BTN_BUSCA(vColunas, null,
                                                              new CamadaDados.Estoque.Cadastros.TCD_CadLocalArm(), vParam);
         try
         {
             if (linha != null)
             {
                 lFichaTec.ForEach(p =>
                 {
                     p.Cd_local = string.IsNullOrEmpty(p.Cd_local) ? linha["cd_local"].ToString() : p.Cd_local;
                     CamadaNegocio.Estoque.Cadastros.TCN_FichaTecProduto.Gravar(p, null);
                 });
             }
             else
             {
                 PreencherFicha(pCd_produto);
             }
         }
         catch { }
     }
     lFichaTec.ForEach(p =>
     {
         (bsItensOrcamento.Current as TRegistro_Orcamento_Item).lFichaTec.Add(
             new TRegistro_FichaTecOrcItem()
         {
             Nr_orcamento    = (bsItensOrcamento.Current as TRegistro_Orcamento_Item).Nr_orcamento,
             Id_item         = (bsItensOrcamento.Current as TRegistro_Orcamento_Item).Id_item,
             Cd_item         = p.Cd_item,
             Ds_item         = p.Ds_item,
             Cd_local        = p.Cd_local,
             Ds_local        = p.Ds_local,
             Sg_unditem      = p.Sg_unditem,
             Cd_unditem      = p.Cd_unditem,
             Ds_unditem      = p.Ds_unditem,
             Quantidade      = p.Quantidade,
             SaldoEstoque    = TCN_LanEstoque.Busca_Saldo_Local((bsItensOrcamento.Current as TRegistro_Orcamento_Item).Cd_empresa, p.Cd_item, p.Cd_local, null),
             Vl_custo        = TCN_LanEstoque.BuscarVlEstoqueUltimaCompra((bsItensOrcamento.Current as TRegistro_Orcamento_Item).Cd_empresa, p.Cd_produto, null),
             Vl_ultimacompra = TCN_LanEstoque.BuscarVlUltimaCompra((bsItensOrcamento.Current as TRegistro_Orcamento_Item).Cd_empresa, p.Cd_produto, null)
         });
     });
     bsItensOrcamento.ResetCurrentItem();
 }
예제 #2
0
 private void bbCorrigirFicha_Click(object sender, EventArgs e)
 {
     if (bsFichaTec.Current != null)
     {
         using (TFFichaTec fFicha = new TFFichaTec())
         {
             if ((bsFichaTec.Current as TRegistro_FichaTec).lfichaItens.Count <= 0)
             {
                 if ((bsFichaTec.Current as TRegistro_FichaTec).st_composto.Equals("S"))
                 {
                     if ((bsFichaTec.Current as TRegistro_FichaTec).lfichaItens.Count <= 0)
                     {
                         (bsFichaTec.Current as TRegistro_FichaTec).lfichaItens.Clear();
                         if ((bsFichaTec.Current as TRegistro_FichaTec).lfichaItens != null)
                         {
                             (bsFichaTec.Current as TRegistro_FichaTec).lfichaItens = TCN_FichaItens.Buscar((bsFichaTec.Current as TRegistro_FichaTec).Cd_empresa,
                                                                                                            (bsFichaTec.Current as TRegistro_FichaTec).Id_orcamentostr, (bsFichaTec.Current as TRegistro_FichaTec).Nr_versaostr,
                                                                                                            (bsFichaTec.Current as TRegistro_FichaTec).Id_projetostr, (bsFichaTec.Current as TRegistro_FichaTec).Id_fichastr,
                                                                                                            string.Empty, null);
                         }
                     }
                     if ((bsFichaTec.Current as TRegistro_FichaTec).lfichaItens.Count <= 0)
                     {
                         CamadaDados.Estoque.Cadastros.TList_FichaTecProduto lFichaitens = CamadaNegocio.Estoque.Cadastros.TCN_FichaTecProduto.Buscar((bsFichaTec.Current as TRegistro_FichaTec).Cd_produto, string.Empty, null);
                         lFichaitens.ForEach(iten =>
                         {
                             TRegistro_FichaItens item = new TRegistro_FichaItens();
                             item.Cd_itemstr           = iten.Cd_item;
                             item.ds_item     = iten.Ds_item;
                             item.quantidade  = iten.Quantidade;
                             item.vl_unitario = iten.Vl_custoservico;
                             item.vl_subtotal = iten.Vl_subtotalservico;
                             (bsFichaTec.Current as TRegistro_FichaTec).lfichaItens.Add(item);
                         });
                     }
                 }
             }
             fFicha.rFicha      = bsFichaTec.Current as TRegistro_FichaTec;
             fFicha.pCd_empresa = (bsOrcamento.Current as TRegistro_Orcamento).Cd_empresa;
             if (fFicha.ShowDialog() == DialogResult.OK)
             {
                 int position = bsFichaTec.Position;
                 bsFichaTec.RemoveCurrent();
                 bsFichaTec.Insert(position, fFicha.rFicha);
                 MessageBox.Show("Ficha técinica adicionada com sucesso.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
             }
         }
     }
 }
예제 #3
0
 private void Quantidade_Leave(object sender, EventArgs e)
 {
     if (bsItens.Current != null)
     {
         (bsItens.Current as TRegistro_ItensCondicional).Quantidade = Quantidade.Value;
         if (lCfg[0].St_movestoquebool)
         {
             if ((!new CamadaDados.Estoque.Cadastros.TCD_CadProduto().ItemServico((bsItens.Current as TRegistro_ItensCondicional).Cd_produto)) &&
                 (!new CamadaDados.Estoque.Cadastros.TCD_CadProduto().ProdutoConsumoInterno((bsItens.Current as TRegistro_ItensCondicional).Cd_produto)))
             {
                 if (!new CamadaDados.Estoque.Cadastros.TCD_CadProduto().ProdutoComposto((bsItens.Current as TRegistro_ItensCondicional).Cd_produto))
                 {
                     decimal saldo = BuscarSaldoLocal((bsItens.Current as TRegistro_ItensCondicional).Cd_produto);
                     if (saldo < Quantidade.Value)
                     {
                         MessageBox.Show("Não existe saldo disponivel no estoque.\r\n" +
                                         "Empresa.........: " + cd_empresa.Text.Trim() + "-" + nm_empresa.Text.Trim() + "\r\n" +
                                         "Produto.........: " + (bsItens.Current as TRegistro_ItensCondicional).Cd_produto.Trim() + "-" +
                                         (bsItens.Current as TRegistro_ItensCondicional).Ds_produto.Trim() + "\r\n" +
                                         "Local Arm.......: " + lCfg[0].Cd_local.Trim() + "-" + lCfg[0].Ds_local + "\r\n" +
                                         "Saldo Disponivel: " + saldo.ToString("N3", new System.Globalization.CultureInfo("pt-BR", true)),
                                         "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                         Quantidade.Focus();
                         Quantidade.Value = decimal.Zero;
                         (bsItens.Current as TRegistro_ItensCondicional).Quantidade = Quantidade.Value;
                         return;
                     }
                 }
                 else
                 {
                     //Buscar ficha tecnica produto composto
                     CamadaDados.Estoque.Cadastros.TList_FichaTecProduto lFicha =
                         CamadaNegocio.Estoque.Cadastros.TCN_FichaTecProduto.Buscar((bsItens.Current as TRegistro_ItensCondicional).Cd_produto, string.Empty, null);
                     lFicha.ForEach(p => p.Quantidade = p.Quantidade * Quantidade.Value);
                     CamadaNegocio.Estoque.Cadastros.TCN_FichaTecProduto.MontarFichaTec(string.Empty, string.Empty, lFicha, null);
                     //Buscar saldo itens da ficha tecnica
                     string msg = string.Empty;
                     lFicha.ForEach(p =>
                     {
                         //Buscar saldo estoque do item
                         decimal saldo = decimal.Zero;
                         CamadaNegocio.Estoque.TCN_LanEstoque.SaldoEstoqueLocal(cd_empresa.Text, p.Cd_item, lCfg[0].Cd_local, ref saldo, null);
                         if (saldo < p.Quantidade)
                         {
                             msg += "Produto.........: " + p.Cd_item.Trim() + "-" + p.Ds_item.Trim() + "\r\n" +
                                    "Saldo Disponivel: " + saldo.ToString("N3", new System.Globalization.CultureInfo("pt-BR", true)) + "\r\n";
                         }
                     });
                     if (!string.IsNullOrEmpty(msg))
                     {
                         msg = "Produto Composto contem itens da ficha tecnica sem saldo em estoque para concretizar a venda.\r\n" + msg.Trim();
                         MessageBox.Show(msg, "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                         Quantidade.Focus();
                         Quantidade.Value = decimal.Zero;
                         (bsItens.Current as TRegistro_ItensCondicional).Quantidade = Quantidade.Value;
                         return;
                     }
                 }
             }
         }
         bsItens.ResetCurrentItem();
         if (bsItens.Current != null)
         {
             object obj = new CamadaDados.Estoque.Cadastros.TCD_CadProduto().BuscarEscalar(
                 new TpBusca[]
             {
                 new TpBusca()
                 {
                     vNM_Campo = "a.cd_produto",
                     vOperador = "=",
                     vVL_Busca = "'" + (bsItens.Current as TRegistro_ItensCondicional).Cd_produto.Trim() + "'"
                 }
             }, "a.id_caracteristicaH");
             if (obj == null ? false : !string.IsNullOrEmpty(obj.ToString()))
             {
                 using (Proc_Commoditties.TFGradeProduto fGrade = new Proc_Commoditties.TFGradeProduto())
                 {
                     fGrade.pId_caracteristica = obj.ToString();
                     fGrade.pCd_empresa        = cd_empresa.Text;
                     fGrade.pCd_produto        = (bsItens.Current as TRegistro_ItensCondicional).Cd_produto;
                     fGrade.pDs_produto        = (bsItens.Current as TRegistro_ItensCondicional).Ds_produto;
                     fGrade.pQuantidade        = (bsItens.Current as TRegistro_ItensCondicional).Quantidade;
                     fGrade.pTp_movimento      = "S";
                     if (fGrade.ShowDialog() == DialogResult.OK)
                     {
                         fGrade.lGrade.ForEach(p => (bsItens.Current as TRegistro_ItensCondicional).lGrade.Add(p));
                         Quantidade.Value   = fGrade.lGrade.Sum(p => p.Vl_mov);
                         Quantidade.Enabled = false;
                     }
                     else
                     {
                         MessageBox.Show("Obrigatório informar grade.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                         bsItens.RemoveCurrent();
                     }
                 }
             }
         }
         TotalizarVenda();
         if (!cd_produto.Focused)
         {
             vl_unit.Focus();
         }
         bsItens_PositionChanged(this, new EventArgs());
     }
 }
예제 #4
0
        private bool BuscarItens()
        {
            if (!string.IsNullOrEmpty(cd_produto.Text))
            {
                string pCd_codbarra = cd_produto.Text;
                //Buscar lengt cd_produto
                CamadaDados.Diversos.TList_CadParamSys lParam =
                    CamadaNegocio.Diversos.TCN_CadParamSys.Busca("CD_PRODUTO",
                                                                 string.Empty,
                                                                 decimal.Zero,
                                                                 null);
                if (lParam.Count > 0)
                {
                    if (cd_produto.Text.Trim().Length < lParam[0].Tamanho)
                    {
                        cd_produto.Text = cd_produto.Text.Trim().PadLeft(Convert.ToInt32(lParam[0].Tamanho), '0');
                    }
                }
                //Buscar produto
                CamadaDados.Estoque.Cadastros.TList_CadProduto lProduto =
                    CamadaNegocio.Estoque.Cadastros.TCN_CadProduto.BuscarProdutoVendaRapida(cd_produto.Text,
                                                                                            pCd_codbarra,
                                                                                            null);

                if (lProduto.Count > 0)
                {
                    if (lCfg[0].St_movestoquebool)
                    {
                        if ((!new CamadaDados.Estoque.Cadastros.TCD_CadProduto().ItemServico(lProduto[0].CD_Produto)) &&
                            (!new CamadaDados.Estoque.Cadastros.TCD_CadProduto().ProdutoConsumoInterno(lProduto[0].CD_Produto)))
                        {
                            if (!new CamadaDados.Estoque.Cadastros.TCD_CadProduto().ProdutoComposto(lProduto[0].CD_Produto))
                            {
                                decimal saldo = BuscarSaldoLocal(lProduto[0].CD_Produto);
                                if (saldo < Quantidade.Value)
                                {
                                    MessageBox.Show("Não existe saldo disponivel no estoque.\r\n" +
                                                    "Empresa.........: " + cd_empresa.Text.Trim() + "-" + nm_empresa.Text.Trim() + "\r\n" +
                                                    "Produto.........: " + lProduto[0].CD_Produto.Trim() + "-" + lProduto[0].DS_Produto.Trim() + "\r\n" +
                                                    "Local Arm.......: " + lCfg[0].Cd_local.Trim() + "-" + lCfg[0].Ds_local + "\r\n" +
                                                    "Saldo Disponivel: " + saldo.ToString("N3", new System.Globalization.CultureInfo("pt-BR", true)),
                                                    "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                    return(false);
                                }
                            }
                            else
                            {
                                //Buscar ficha tecnica produto composto
                                CamadaDados.Estoque.Cadastros.TList_FichaTecProduto lFicha =
                                    CamadaNegocio.Estoque.Cadastros.TCN_FichaTecProduto.Buscar(lProduto[0].CD_Produto, string.Empty, null);
                                lFicha.ForEach(p => p.Quantidade = p.Quantidade * Quantidade.Value);
                                CamadaNegocio.Estoque.Cadastros.TCN_FichaTecProduto.MontarFichaTec(string.Empty, string.Empty, lFicha, null);
                                //Buscar saldo itens da ficha tecnica
                                string msg = string.Empty;
                                lFicha.ForEach(p =>
                                {
                                    //Buscar saldo estoque do item
                                    decimal saldo = decimal.Zero;
                                    CamadaNegocio.Estoque.TCN_LanEstoque.SaldoEstoqueLocal(cd_empresa.Text, p.Cd_item, lCfg[0].Cd_local, ref saldo, null);
                                    if (saldo < p.Quantidade)
                                    {
                                        msg += "Produto.........: " + p.Cd_item.Trim() + "-" + p.Ds_item.Trim() + "\r\n" +
                                               "Saldo Disponivel: " + saldo.ToString("N3", new System.Globalization.CultureInfo("pt-BR", true)) + "\r\n";
                                    }
                                });
                                if (!string.IsNullOrEmpty(msg))
                                {
                                    msg = "Produto Composto contem itens da ficha tecnica sem saldo em estoque para concretizar a venda.\r\n" + msg.Trim();
                                    MessageBox.Show(msg, "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                    return(false);
                                }
                            }
                        }
                    }
                    //Cria novo item
                    bsItens.AddNew();
                    (bsItens.Current as TRegistro_ItensCondicional).Cd_produto            = lProduto[0].CD_Produto;
                    (bsItens.Current as TRegistro_ItensCondicional).Ds_produto            = lProduto[0].DS_Produto;
                    (bsItens.Current as TRegistro_ItensCondicional).Cd_condfiscal_produto = lProduto[0].CD_CondFiscal_Produto;
                    (bsItens.Current as TRegistro_ItensCondicional).Cd_unidade            = lProduto[0].CD_Unidade;
                    (bsItens.Current as TRegistro_ItensCondicional).Sigla_unidade         = lProduto[0].Sigla_unidade;
                    (bsItens.Current as TRegistro_ItensCondicional).Cd_local    = lCfg[0].Cd_local;
                    (bsItens.Current as TRegistro_ItensCondicional).Quantidade  = Quantidade.Value;
                    (bsItens.Current as TRegistro_ItensCondicional).Vl_unitario = ConsultaPreco(lProduto[0].CD_Produto);
                    vl_unit.Enabled = vl_unit.Value.Equals(decimal.Zero) ||
                                      CamadaNegocio.Diversos.TCN_Usuario_RegraEspecial.ValidaRegra(Utils.Parametros.pubLogin,
                                                                                                   "PERMITIR INFORMAR PREÇO VENDA",
                                                                                                   null);
                    bsItens.ResetCurrentItem();
                    bsItens_PositionChanged(this, new EventArgs());
                    TotalizarVenda();
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            else
            {
                return(false);
            }
        }
예제 #5
0
 private void gAssistente_CellClick(object sender, DataGridViewCellEventArgs e)
 {
     if ((e.ColumnIndex == 0) && (bsAssistente.Current != null))
     {
         try
         {
             if ((bsAssistente.Current as CamadaDados.Estoque.Cadastros.TRegistro_CadAssistenteVenda).St_processar != true)
             {
                 //Informar Quantidade
                 using (Componentes.TFQuantidade fQtde = new Componentes.TFQuantidade())
                 {
                     fQtde.Ds_label       = "QTD.Venda";
                     fQtde.Casas_decimais = 2;
                     fQtde.Vl_default     = 1;
                     if (fQtde.ShowDialog() == DialogResult.OK)
                     {
                         (bsAssistente.Current as CamadaDados.Estoque.Cadastros.TRegistro_CadAssistenteVenda).St_processar = true;
                         //Verificar saldo estoque do produto
                         if (lCfg[0].St_movestoquebool)
                         {
                             if ((!new CamadaDados.Estoque.Cadastros.TCD_CadProduto().ItemServico((bsAssistente.Current as CamadaDados.Estoque.Cadastros.TRegistro_CadAssistenteVenda).CD_ProdVenda)) &&
                                 (!new CamadaDados.Estoque.Cadastros.TCD_CadProduto().ProdutoConsumoInterno((bsAssistente.Current as CamadaDados.Estoque.Cadastros.TRegistro_CadAssistenteVenda).CD_ProdVenda)))
                             {
                                 if (!new CamadaDados.Estoque.Cadastros.TCD_CadProduto().ProdutoComposto((bsAssistente.Current as CamadaDados.Estoque.Cadastros.TRegistro_CadAssistenteVenda).CD_ProdVenda) &&
                                     !new CamadaDados.Estoque.Cadastros.TCD_CadProduto().ProdutoPatrimonio((bsAssistente.Current as CamadaDados.Estoque.Cadastros.TRegistro_CadAssistenteVenda).CD_ProdVenda))
                                 {
                                     decimal saldo = this.BuscarSaldoLocal(Cd_empresa, (bsAssistente.Current as CamadaDados.Estoque.Cadastros.TRegistro_CadAssistenteVenda).CD_ProdVenda);
                                     if (saldo < fQtde.Quantidade)
                                     {
                                         MessageBox.Show("Não existe saldo disponível no estoque, porém será processado na locação.\r\n" +
                                                         "Empresa.........: " + Cd_empresa.Trim() + "-" + Nm_empresa.Trim() + "\r\n" +
                                                         "Produto.........: " + (bsAssistente.Current as CamadaDados.Estoque.Cadastros.TRegistro_CadAssistenteVenda).CD_ProdVenda.Trim() + "-" + (bsAssistente.Current as CamadaDados.Estoque.Cadastros.TRegistro_CadAssistenteVenda).DS_ProdVenda.Trim() + "\r\n" +
                                                         "Local Arm.......: " + lCfg[0].Cd_local.Trim() + "-" + lCfg[0].Ds_local + "\r\n" +
                                                         "Saldo Disponível: " + saldo.ToString("N3", new System.Globalization.CultureInfo("pt-BR", true)),
                                                         "Informativo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                         //(bsAssistente.Current as CamadaDados.Estoque.Cadastros.TRegistro_CadAssistenteVenda).St_processar = false;
                                         //return;
                                     }
                                 }
                                 else
                                 {
                                     //Buscar ficha tecnica produto composto
                                     CamadaDados.Estoque.Cadastros.TList_FichaTecProduto lFicha =
                                         CamadaNegocio.Estoque.Cadastros.TCN_FichaTecProduto.Buscar((bsAssistente.Current as CamadaDados.Estoque.Cadastros.TRegistro_CadAssistenteVenda).CD_ProdVenda, string.Empty, null);
                                     lFicha.ForEach(p => p.Quantidade = p.Quantidade * fQtde.Quantidade);
                                     CamadaNegocio.Estoque.Cadastros.TCN_FichaTecProduto.MontarFichaTec(string.Empty, string.Empty, lFicha, null);
                                     //Buscar saldo itens da ficha tecnica
                                     string msg = string.Empty;
                                     lFicha.ForEach(p =>
                                     {
                                         //Buscar saldo estoque do item
                                         decimal saldo = decimal.Zero;
                                         CamadaNegocio.Estoque.TCN_LanEstoque.SaldoEstoqueLocal(Cd_empresa, p.Cd_item, lCfg[0].Cd_local, ref saldo, null);
                                         if (saldo < p.Quantidade)
                                         {
                                             msg += "Produto.........: " + p.Cd_item.Trim() + "-" + p.Ds_item.Trim() + "\r\n" +
                                                    "Saldo Disponivel: " + saldo.ToString("N3", new System.Globalization.CultureInfo("pt-BR", true)) + "\r\n";
                                         }
                                     });
                                     if (!string.IsNullOrEmpty(msg))
                                     {
                                         msg = "Produto Composto contem itens da ficha tecnica sem saldo em estoque para concretizar a venda.\r\n" + msg.Trim();
                                         MessageBox.Show(msg, "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                         (bsAssistente.Current as CamadaDados.Estoque.Cadastros.TRegistro_CadAssistenteVenda).St_processar = false;
                                         return;
                                     }
                                 }
                             }
                         }
                         (bsAssistente.Current as CamadaDados.Estoque.Cadastros.TRegistro_CadAssistenteVenda).Quantidade = fQtde.Quantidade;
                     }
                     bsAssistente.ResetCurrentItem();
                 }
             }
             else
             {
                 (bsAssistente.Current as CamadaDados.Estoque.Cadastros.TRegistro_CadAssistenteVenda).St_processar = false;
                 (bsAssistente.Current as CamadaDados.Estoque.Cadastros.TRegistro_CadAssistenteVenda).Quantidade   = decimal.Zero;
                 bsAssistente.ResetCurrentItem();
             }
         }
         catch (Exception ex)
         { MessageBox.Show(ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); }
     }
 }
예제 #6
0
 private void PreencherFicha()
 {
     //Buscar Ficha do Cadastro de Produto
     CamadaDados.Estoque.Cadastros.TList_FichaTecProduto lFicha =
         TCN_FichaTecProduto.Buscar(cd_produto.Text,
                                    string.Empty,
                                    null);
     if (lFicha.Count > 0)
     {
         if (lFicha.Exists(p => string.IsNullOrEmpty(p.Cd_local)))
         {
             string vColunas = "a.ds_local|Local Armazenagem|150;" +
                               "a.cd_local|Código|50";
             string vParam = "|exists|(select 1 from tb_est_empresa_x_localarm x " +
                             "           where x.cd_local = a.cd_local and x.cd_empresa = '" + CD_Empresa.Text.Trim() + "')";
             DataRowView linha = FormBusca.UtilPesquisa.BTN_BUSCA(vColunas, null,
                                                                  new CamadaDados.Estoque.Cadastros.TCD_CadLocalArm(), vParam);
             try
             {
                 if (linha != null)
                 {
                     lFicha.ForEach(p =>
                     {
                         p.Cd_local = string.IsNullOrEmpty(p.Cd_local) ? linha["cd_local"].ToString() : p.Cd_local;
                         TCN_FichaTecProduto.Gravar(p, null);
                     });
                 }
                 else
                 {
                     PreencherFicha();
                 }
             }
             catch { }
         }
         lFicha.ForEach(p =>
         {
             (bsOrdemProducao.Current as TRegistro_OrdemProducao).lOrdem_MPrima.Add(
                 new TRegistro_Ordem_MPrima
             {
                 Cd_produto       = p.Cd_item,
                 Ds_produto       = p.Ds_item,
                 Cd_unidade       = p.Cd_unditem,
                 Ds_unidade       = p.Ds_unditem,
                 Sigla_unidade    = p.Sg_unditem,
                 Cd_local         = p.Cd_local,
                 Ds_local         = p.Ds_local,
                 Qtd_produto      = p.Quantidade,
                 Qtd_produto_calc = p.Quantidade,
                 SaldoEstoque     = TCN_LanEstoque.Busca_Saldo_Local(CD_Empresa.Text, p.Cd_item, p.Cd_local, null)
             });
         });
     }
     else
     {
         //Verificar ficha tecnica produção
         TList_FormulaApontamento lFormula =
             CamadaNegocio.Producao.Producao.TCN_FormulaApontamento.Buscar(CD_Empresa.Text,
                                                                           string.Empty,
                                                                           string.Empty,
                                                                           string.Empty,
                                                                           string.Empty,
                                                                           cd_produto.Text,
                                                                           string.Empty,
                                                                           0,
                                                                           string.Empty,
                                                                           null);
         TRegistro_FormulaApontamento rFormula = null;
         if (lFormula.Count > 1)
         {
             using (TFListFormula fList = new TFListFormula())
             {
                 fList.lFormula = lFormula;
                 if (fList.ShowDialog() == DialogResult.OK)
                 {
                     rFormula = fList.rFormula;
                     (bsOrdemProducao.Current as TRegistro_OrdemProducao).Qt_produto = rFormula.Qt_produto;
                 }
                 else
                 {
                     MessageBox.Show("Obrigatório selecionar formula.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Error);
                     return;
                 }
             }
         }
         else if (lFormula.Count.Equals(1))
         {
             rFormula = lFormula[0];
         }
         if (rFormula != null)
         {
             (bsOrdemProducao.Current as TRegistro_OrdemProducao).Qt_produto = rFormula.Qt_produto;
             (bsOrdemProducao.Current as TRegistro_OrdemProducao).Cd_local   = rFormula.Cd_local;
             (bsOrdemProducao.Current as TRegistro_OrdemProducao).Ds_local   = rFormula.Ds_local;
             //Buscar ficha tecnica da formula selecionada
             TList_FichaTec_MPrima lFichaP =
                 CamadaNegocio.Producao.Producao.TCN_FichaTec_MPrima.Buscar(rFormula.Cd_empresa,
                                                                            rFormula.Id_formulacaostr,
                                                                            string.Empty,
                                                                            string.Empty,
                                                                            string.Empty,
                                                                            0,
                                                                            string.Empty,
                                                                            null);
             lFichaP.ForEach(p =>
             {
                 (bsOrdemProducao.Current as TRegistro_OrdemProducao).lOrdem_MPrima.Add(
                     new TRegistro_Ordem_MPrima
                 {
                     CD_Empresa           = p.Cd_empresa,
                     ID_Formulacao_MPrima = p.Id_formulacao_mprima,
                     Cd_produto           = p.Cd_produto,
                     Ds_produto           = p.Ds_produto,
                     Cd_unidade           = p.Cd_unidade,
                     Ds_unidade           = p.Ds_unidade,
                     Sigla_unidade        = p.Sigla_unidade,
                     Cd_local             = p.Cd_local,
                     Ds_local             = p.Ds_local,
                     Qtd_produto          = p.Qtd_produto,
                     Qtd_produto_calc     = p.Qtd_produto,
                     SaldoEstoque         = TCN_LanEstoque.Busca_Saldo_Local(CD_Empresa.Text, p.Cd_produto, p.Cd_local, null)
                 });
             });
             (bsOrdemProducao.Current as TRegistro_OrdemProducao).Id_formulacao = rFormula.Id_formulacao;
         }
     }
     bsOrdemMP.ResetCurrentItem();
     bsOrdemProducao.ResetCurrentItem();
 }
예제 #7
0
        private void bbImportar_Click(object sender, EventArgs e)
        {
            if (bsOrcamento.Current != null)
            {
                string id_orcamento = string.Empty;
                using (TFConsultaProjetos cProjetos = new TFConsultaProjetos())
                {
                    if (cProjetos.ShowDialog() == DialogResult.OK)
                    {
                        TList_Orcamento lorcamento = new TList_Orcamento();
                        TList_Orcamento lprojeto2  = new TList_Orcamento();
                        lorcamento = cProjetos.lOrc;
                        lorcamento.ForEach(o => {
                            o.lDespesas.Where(p => p.st_importar).ToList().ForEach(p =>
                            {
                                p.Id_orcamentostr = (bsOrcamento.Current as TRegistro_Orcamento).Id_orcamentostr;
                                p.Nr_versaostr    = (bsOrcamento.Current as TRegistro_Orcamento).Nr_versaostr;
                                p.Id_RegDesp      = (bsDespesas.Count) + 1;
                                bsDespesas.Add(p);
                            });
                            o.lOEncargo.Where(p => p.st_importar).ToList().ForEach(p =>
                            {
                                p.Id_orcamentostr = (bsOrcamento.Current as TRegistro_Orcamento).Id_orcamentostr;
                                p.Nr_versaostr    = (bsOrcamento.Current as TRegistro_Orcamento).Nr_versaostr;
                                p.vl_encargo      = decimal.Zero;
                                bsEncargo.Add(p);
                            });
                            o.lMaoObra.Where(p => p.st_importar).ToList().ForEach(p =>
                            {
                                p.Id_orcamentostr = (bsOrcamento.Current as TRegistro_Orcamento).Id_orcamentostr;
                                p.Nr_versaostr    = (bsOrcamento.Current as TRegistro_Orcamento).Nr_versaostr;
                                p.Id_MaoObra      = (bsMaoObra).Count + 1;
                                bsMaoObra.Add(p);
                            });
                            o.lOrcProjeto.Where(p => p.st_importar).ToList().ForEach(p =>
                            {
                                TList_FichaTec lista = new TList_FichaTec();
                                p.lFicha.Where(i => i.st_agregar).ToList().ForEach(i =>
                                {
                                    i.Quantidade         = i.quantidade_agregar;
                                    i.quantidade_agregar = decimal.Zero;
                                    i.Id_ficha           = decimal.Zero;
                                    i.Id_orcamentostr    = (bsOrcamento.Current as TRegistro_Orcamento).Id_orcamentostr;
                                    i.Id_projetostr      = string.Empty;
                                    i.Nr_versaostr       = (bsOrcamento.Current as TRegistro_Orcamento).Nr_versaostr;
                                    i.Vl_subtotal        = i.Vl_unitario * i.Quantidade;
                                    if (i.st_composto.Equals("S"))
                                    {
                                        CamadaDados.Estoque.Cadastros.TList_FichaTecProduto lFichaitens = CamadaNegocio.Estoque.Cadastros.TCN_FichaTecProduto.Buscar(i.Cd_produto, string.Empty, null);
                                        lFichaitens.ForEach(iten =>
                                        {
                                            TRegistro_FichaItens item = new TRegistro_FichaItens();
                                            item.Cd_itemstr           = iten.Cd_item;
                                            item.ds_item     = iten.Ds_item;
                                            item.quantidade  = iten.Quantidade;
                                            item.vl_unitario = iten.Vl_custoservico;
                                            item.vl_subtotal = iten.Vl_subtotalservico;
                                            i.lfichaItens.Add(item);
                                        });
                                    }

                                    lista.Add(i);
                                });

                                p.Id_orcamentostr = (bsOrcamento.Current as TRegistro_Orcamento).Id_orcamentostr;
                                p.Id_projeto      = (bsAtividade).Count + 1;
                                p.Nr_versaostr    = (bsOrcamento.Current as TRegistro_Orcamento).Nr_versaostr;
                                p.lFicha          = lista;
                                bsAtividade.Add(p);

                                bsAtividade.ResetCurrentItem();
                            });
                        });
                        bsAtividade.Position = bsAtividade.Count - 1;
                        MessageBox.Show("Importado com sucesso.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                }
            }
            else
            {
                MessageBox.Show("Selecione um Orcamento.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
        }
예제 #8
0
        private void BuscarItens()
        {
            if (!string.IsNullOrEmpty(cd_produto.Text))
            {
                if (Quantidade.Value.Equals(decimal.Zero))
                {
                    MessageBox.Show("Obrigatorio informar quantidade.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return;
                }
                string pCd_codbarra = cd_produto.Text;
                //Buscar lengt cd_produto
                CamadaDados.Diversos.TList_CadParamSys lParam =
                    CamadaNegocio.Diversos.TCN_CadParamSys.Busca("CD_PRODUTO",
                                                                 string.Empty,
                                                                 decimal.Zero,
                                                                 null);
                if (lParam.Count > 0)
                {
                    if (cd_produto.Text.Trim().Length < lParam[0].Tamanho)
                    {
                        cd_produto.Text = cd_produto.Text.Trim().PadLeft(Convert.ToInt32(lParam[0].Tamanho), '0');
                    }
                }
                //Buscar produto
                CamadaDados.Estoque.Cadastros.TList_CadProduto lProduto =
                    CamadaNegocio.Estoque.Cadastros.TCN_CadProduto.BuscarProdutoVendaRapida(cd_produto.Text, pCd_codbarra, null);

                if (lProduto.Count > 0)
                {
                    if (new CamadaDados.Faturamento.Cadastros.TCD_CFGCupomFiscal().BuscarEscalar(
                            new Utils.TpBusca[]
                    {
                        new Utils.TpBusca()
                        {
                            vNM_Campo = "a.cd_empresa",
                            vOperador = "=",
                            vVL_Busca = "'" + Cd_empresa.Trim() + "'"
                        },
                        new Utils.TpBusca()
                        {
                            vNM_Campo = "isnull(a.st_movestoque, 'N')",
                            vOperador = "=",
                            vVL_Busca = "'S'"
                        }
                    }, "1") != null)
                    {
                        if ((!new CamadaDados.Estoque.Cadastros.TCD_CadProduto().ItemServico(lProduto[0].CD_Produto)) &&
                            (!new CamadaDados.Estoque.Cadastros.TCD_CadProduto().ProdutoConsumoInterno(lProduto[0].CD_Produto)))
                        {
                            if (!new CamadaDados.Estoque.Cadastros.TCD_CadProduto().ProdutoComposto(lProduto[0].CD_Produto))
                            {
                                decimal saldo = this.BuscarSaldoLocal(lProduto[0].CD_Produto);
                                if (saldo < 1)
                                {
                                    MessageBox.Show("Não existe saldo disponivel no estoque.\r\n" +
                                                    "Empresa.........: " + Cd_empresa.Trim() + "\r\n" +
                                                    "Produto.........: " + lProduto[0].CD_Produto.Trim() + "-" + lProduto[0].DS_Produto.Trim() + "\r\n" +
                                                    "Local Arm.......: " + Cd_local + "\r\n" +
                                                    "Saldo Disponivel: " + saldo.ToString("N3", new System.Globalization.CultureInfo("pt-BR", true)),
                                                    "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                    return;
                                }
                            }
                            else
                            {
                                //Buscar ficha tecnica produto composto
                                CamadaDados.Estoque.Cadastros.TList_FichaTecProduto lFicha =
                                    CamadaNegocio.Estoque.Cadastros.TCN_FichaTecProduto.Buscar(lProduto[0].CD_Produto, string.Empty, null);
                                lFicha.ForEach(p => p.Quantidade = p.Quantidade * Quantidade.Value);
                                CamadaNegocio.Estoque.Cadastros.TCN_FichaTecProduto.MontarFichaTec(string.Empty, string.Empty, lFicha, null);
                                //Buscar saldo itens da ficha tecnica
                                string msg = string.Empty;
                                lFicha.ForEach(p =>
                                {
                                    //Buscar saldo estoque do item
                                    decimal saldo = decimal.Zero;
                                    CamadaNegocio.Estoque.TCN_LanEstoque.SaldoEstoqueLocal(Cd_empresa.Trim(), p.Cd_item, Cd_local.Trim(), ref saldo, null);
                                    if (saldo < p.Quantidade)
                                    {
                                        msg += "Produto.........: " + p.Cd_item.Trim() + "-" + p.Ds_item.Trim() + "\r\n" +
                                               "Saldo Disponivel: " + saldo.ToString("N3", new System.Globalization.CultureInfo("pt-BR", true)) + "\r\n";
                                    }
                                });
                                if (!string.IsNullOrEmpty(msg))
                                {
                                    msg = "Produto Composto contem itens da ficha tecnica sem saldo em estoque para concretizar a venda.\r\n" + msg.Trim();
                                    MessageBox.Show(msg, "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                    return;
                                }
                            }
                        }
                    }
                    //Buscar preco venda produto
                    decimal vl_unit = this.ConsultaPreco(lProduto[0].CD_Produto);
                    if (vl_unit <= decimal.Zero)
                    {
                        using (Componentes.TFQuantidade fValor = new Componentes.TFQuantidade())
                        {
                            fValor.Casas_decimais = 2;
                            fValor.Ds_label       = "Valor Unitario";
                            if (fValor.ShowDialog() == DialogResult.OK)
                            {
                                vl_unit = fValor.Quantidade;
                            }
                        }
                    }
                    if (vl_unit > decimal.Zero)
                    {
                        try
                        {
                            CamadaNegocio.PostoCombustivel.TCN_ItensVendaMesaConv.Gravar(
                                new CamadaDados.PostoCombustivel.TRegistro_ItensVendaMesaConv()
                            {
                                Cd_empresa  = Cd_empresa,
                                Cd_local    = Cd_local,
                                Cd_produto  = lProduto[0].CD_Produto,
                                Id_vendastr = Id_venda,
                                Quantidade  = Quantidade.Value,
                                Vl_unitario = vl_unit
                            }, null);
                            //Buscar Itens Venda
                            bsItensVenda.DataSource = CamadaNegocio.PostoCombustivel.TCN_ItensVendaMesaConv.Buscar(Id_venda,
                                                                                                                   Cd_empresa,
                                                                                                                   string.Empty,
                                                                                                                   string.Empty,
                                                                                                                   false,
                                                                                                                   null);
                            //Totalizar Venda
                            this.TotalizarVenda();
                            //Quantidade Padrao
                            Quantidade.Value = 1;
                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show(ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            cd_produto.Clear();
                            cd_produto.Focus();
                        }
                    }
                    else
                    {
                        MessageBox.Show("Obrigatorio informar preço venda item.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        cd_produto.Clear();
                        cd_produto.Focus();
                    }
                }
            }
        }