Exemplo n.º 1
0
        private void bsItem_PositionChanged(object sender, EventArgs e)
        {
            if (bsItem.Current != null)
            {
                //Buscar saldo
                decimal saldo = 0;
                TCN_LanEstoque.SaldoEstoqueLocal((bsItem.Current as TRegistro_Inventario_Item_X_Saldo).Cd_empresa,
                                                 (bsItem.Current as TRegistro_Inventario_Item_X_Saldo).Cd_produto,
                                                 (bsItem.Current as TRegistro_Inventario_Item_X_Saldo).Cd_local,
                                                 ref saldo, null);
                (bsItem.Current as TRegistro_Inventario_Item_X_Saldo).Qtd_saldo = saldo;

                //Buscar Vl Medio
                decimal vl_medio = 0;
                TCN_LanEstoque.VlMedioEstoque((bsItem.Current as TRegistro_Inventario_Item_X_Saldo).Cd_empresa,
                                              (bsItem.Current as TRegistro_Inventario_Item_X_Saldo).Cd_produto,
                                              ref vl_medio);
                (bsItem.Current as TRegistro_Inventario_Item_X_Saldo).Vl_unitario = vl_medio;
                cd_local.Enabled             = (bsItem.Current as TRegistro_Inventario_Item_X_Saldo).St_registro.Trim().ToUpper().Equals("A");
                bb_local.Enabled             = (bsItem.Current as TRegistro_Inventario_Item_X_Saldo).St_registro.Trim().ToUpper().Equals("A");
                qtd_contadaEditFloat.Enabled = (bsItem.Current as TRegistro_Inventario_Item_X_Saldo).St_registro.Trim().ToUpper().Equals("A");
                BB_GravarItem.Enabled        = (bsItem.Current as TRegistro_Inventario_Item_X_Saldo).St_registro.Trim().ToUpper().Equals("A");
                BB_Excluir.Enabled           = (bsItem.Current as TRegistro_Inventario_Item_X_Saldo).St_registro.Trim().ToUpper().Equals("A");
                vl_unitarioEditFloat.Enabled = (bsItem.Current as TRegistro_Inventario_Item_X_Saldo).St_registro.Trim().ToUpper().Equals("A");
            }
        }
Exemplo n.º 2
0
 private void BB_Excluir_Click(object sender, EventArgs e)
 {
     if (BS_Estoque.Current != null)
     {
         if ((BS_Estoque.Current as TRegistro_LanEstoque).St_registro_Bool != true)
         {
             if (!(BS_Estoque.Current as TRegistro_LanEstoque).Tp_lancto.Trim().ToUpper().Equals("M"))
             {
                 MessageBox.Show("Permitido cancelar somente lançamento de estoque MANUAL.\r\n" +
                                 "Os outros tipo de movimentação de estoque deve ser cancelado no processo que os gerou.",
                                 "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                 return;
             }
             if (MessageBox.Show("Deseja Cancelar o Estoque?", "Mensagem",
                                 MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) ==
                 System.Windows.Forms.DialogResult.Yes)
             {
                 TCN_LanEstoque.DeletarEstoque((BS_Estoque.Current as TRegistro_LanEstoque), null);
                 Busca();
             }
         }
         else
         {
             MessageBox.Show("Este Registro já foi Cancelado!", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
         }
     }
 }
Exemplo n.º 3
0
        public void busca_Valor_Unitario()
        {
            if (BS_Lan_Estoque.Current != null)
            {
                if (((BS_Lan_Estoque.Current as TRegistro_LanEstoque).Cd_empresa != "") && ((BS_Lan_Estoque.Current as TRegistro_LanEstoque).Cd_produto != ""))
                {
                    decimal Tot_Entrada     = decimal.Zero;
                    decimal Tot_Saida       = decimal.Zero;
                    decimal Tot_Saldo       = decimal.Zero;
                    decimal VL_Estoque_ent  = decimal.Zero;
                    decimal VL_Estoque_sai  = decimal.Zero;
                    decimal VL_SaldoEstoque = decimal.Zero;
                    decimal VL_Medio        = decimal.Zero;

                    TCN_LanEstoque.Valores_EstoqueLocal((BS_Lan_Estoque.Current as TRegistro_LanEstoque).Cd_empresa,
                                                        (BS_Lan_Estoque.Current as TRegistro_LanEstoque).Cd_produto,
                                                        (BS_Lan_Estoque.Current as TRegistro_LanEstoque).Cd_local,
                                                        ref Tot_Entrada,
                                                        ref Tot_Saida,
                                                        ref Tot_Saldo,
                                                        ref VL_Estoque_ent,
                                                        ref VL_Estoque_sai,
                                                        ref VL_SaldoEstoque,
                                                        ref VL_Medio,
                                                        null);


                    TOT_SALDO.Text = Tot_Saldo.ToString("N3", new System.Globalization.CultureInfo("pt-BR", true));
                    VL_SALDO.Text  = VL_SaldoEstoque.ToString("N2", new System.Globalization.CultureInfo("pt-BR", true));
                    VL_MEDIO.Text  = VL_Medio.ToString("N7", new System.Globalization.CultureInfo("pt-BR", true));
                }
            }
        }
Exemplo n.º 4
0
        private void PreencherFicha(TRegistro_FormulaApontamento rFormula)
        {
            //Buscar Ficha Formula
            TList_FichaTec_MPrima lFicha =
                CamadaNegocio.Producao.Producao.TCN_FichaTec_MPrima.Buscar(rFormula.Cd_empresa,
                                                                           rFormula.Id_formulacaostr,
                                                                           string.Empty,
                                                                           string.Empty,
                                                                           string.Empty,
                                                                           0,
                                                                           string.Empty,
                                                                           null);

            lFicha.ForEach(p =>
            {
                lficha.Add(
                    new TRegistro_FichaTecOrcItem()
                {
                    Nr_orcamento = pNr_orcamento,
                    Id_item      = pId_item,
                    Cd_item      = p.Cd_produto,
                    Ds_item      = p.Ds_produto,
                    Cd_local     = p.Cd_local,
                    Ds_local     = p.Ds_local,
                    Sg_unditem   = p.Sigla_unidade,
                    Cd_unditem   = p.Cd_unidade,
                    Ds_unditem   = p.Ds_unidade,
                    Quantidade   = p.Qtd_produto,
                    SaldoEstoque = TCN_LanEstoque.Busca_Saldo_Local(pCd_empresa, p.Cd_produto, p.Cd_local, null),
                });
            });
            bsFichaTec.DataSource = lficha;
            bsFichaTec.ResetBindings(true);
        }
Exemplo n.º 5
0
 private static decimal CalcularCustoMPD(TList_FichaTec_MPrima val,
                                         string Dt_apontamento,
                                         decimal Qtd_batch,
                                         BancoDados.TObjetoBanco banco)
 {
     val.ForEach(p =>
     {
         if (p.Id_formulacao_mprima != null)
         {
             //Buscar lista de materia-prima
             TList_FichaTec_MPrima lMPrima = TCN_FichaTec_MPrima.Buscar(p.Cd_empresa,
                                                                        p.Id_formulacao_mprimastr,
                                                                        string.Empty,
                                                                        string.Empty,
                                                                        string.Empty,
                                                                        0,
                                                                        string.Empty,
                                                                        banco);
             //Chamar o metodo CalcularCustoMPD recursivamente
             p.Vl_custo      = CalcularCustoMPD(lMPrima, Dt_apontamento, Qtd_batch, banco);
             p.Vl_customedio = Math.Round(p.Vl_custo / p.Qtd_produto / Qtd_batch, 2);
         }
         else
         {
             p.Vl_customedio = TCN_CadConvUnidade.ConvertUnid(p.Cd_unidade,
                                                              p.Cd_unid_produto,
                                                              TCN_LanEstoque.BuscarVlEstoqueUltimaCompra(p.Cd_empresa, p.Cd_produto, banco), 5, banco);
             p.Vl_custo = Math.Round(p.Vl_customedio * p.Qtd_produto * Qtd_batch, 2);
         }
     });
     return(val.Sum(p => p.Vl_custo));
 }
Exemplo n.º 6
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();
 }
Exemplo n.º 7
0
 private void BB_Novo_Click(object sender, EventArgs e)
 {
     using (TFLanEstoque Lan_Estoque = new TFLanEstoque())
     {
         Lan_Estoque.BS_Lan_Estoque.AddNew();
         (Lan_Estoque.BS_Lan_Estoque.Current as TRegistro_LanEstoque).Tp_lancto = "M";
         if (Lan_Estoque.ShowDialog() == DialogResult.OK)
         {
             if (new CamadaDados.Estoque.Cadastros.TCD_CadProduto().ProdutoRegAnvisa((Lan_Estoque.BS_Lan_Estoque.Current as TRegistro_LanEstoque).Cd_produto))
             {
                 using (Proc_Commoditties.TFLoteAnvisa fLote = new Proc_Commoditties.TFLoteAnvisa())
                 {
                     fLote.pCd_empresa     = (Lan_Estoque.BS_Lan_Estoque.Current as TRegistro_LanEstoque).Cd_empresa;
                     fLote.pNm_empresa     = (Lan_Estoque.BS_Lan_Estoque.Current as TRegistro_LanEstoque).Nm_empresa;
                     fLote.pCd_produto     = (Lan_Estoque.BS_Lan_Estoque.Current as TRegistro_LanEstoque).Cd_produto;
                     fLote.pDs_produto     = (Lan_Estoque.BS_Lan_Estoque.Current as TRegistro_LanEstoque).Ds_produto;
                     fLote.pQtd_movimentar = (Lan_Estoque.BS_Lan_Estoque.Current as TRegistro_LanEstoque).Tp_movimento.Trim().ToUpper().Equals("E") ?
                                             (Lan_Estoque.BS_Lan_Estoque.Current as TRegistro_LanEstoque).Qtd_entrada : (Lan_Estoque.BS_Lan_Estoque.Current as TRegistro_LanEstoque).Qtd_saida;
                     fLote.pTp_mov = (Lan_Estoque.BS_Lan_Estoque.Current as TRegistro_LanEstoque).Tp_movimento;
                     if (fLote.ShowDialog() == DialogResult.OK)
                     {
                         if (fLote.lMov != null)
                         {
                             fLote.lMov.ForEach(p => (Lan_Estoque.BS_Lan_Estoque.Current as TRegistro_LanEstoque).lMovLoteAnvisa.Add(p));
                         }
                     }
                 }
             }
             try
             {
                 if (!string.IsNullOrEmpty(TCN_LanEstoque.GravarEstoque((Lan_Estoque.BS_Lan_Estoque.Current as TRegistro_LanEstoque), null)))
                 {
                     MessageBox.Show("Lançamento estoque gravado com sucesso.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                     LimpaCampos();
                     id_lanctoestoque.Text = (Lan_Estoque.BS_Lan_Estoque.Current as TRegistro_LanEstoque).Id_lanctoestoque.ToString();
                     if (tcConsulta.SelectedTab.Equals(tpSintetico))
                     {
                         tcConsulta.SelectedTab = tpAnalitico;
                     }
                     Busca();
                 }
                 else
                 {
                     MessageBox.Show("Lançamento de estoque não foi gravado.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                 }
             }
             catch (Exception ex)
             { MessageBox.Show(ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); }
         }
     }
     Busca();
 }
Exemplo n.º 8
0
 private decimal BuscarSaldoLocal()
 {
     if ((!string.IsNullOrEmpty(cd_empresa.Text)) &&
         (!string.IsNullOrEmpty(cd_produto.Text)) &&
         (!string.IsNullOrEmpty(cd_local.Text)))
     {
         decimal saldo = decimal.Zero;
         TCN_LanEstoque.SaldoEstoqueLocal(cd_empresa.Text, cd_produto.Text, cd_local.Text, ref saldo, null);
         return(saldo);
     }
     else
     {
         return(decimal.Zero);
     }
 }
Exemplo n.º 9
0
 private void bbAdd_Click(object sender, EventArgs e)
 {
     using (TFItensFichaTec fItens = new TFItensFichaTec())
     {
         if (fItens.ShowDialog() == DialogResult.OK)
         {
             if (fItens.rFicha != null)
             {
                 fItens.rFicha.Nr_orcamento = pNr_orcamento;
                 fItens.rFicha.Id_item      = pId_item;
                 fItens.rFicha.SaldoEstoque = TCN_LanEstoque.Busca_Saldo_Local(pCd_empresa, fItens.rFicha.Cd_item, fItens.rFicha.Cd_local, null);
                 lficha.Add(fItens.rFicha);
                 AtualizarFicha();
             }
         }
     }
 }
Exemplo n.º 10
0
 private void bbAdd_Click(object sender, EventArgs e)
 {
     if (bsItensOrcamento.Current != null)
     {
         using (TFItensFichaTec fItens = new TFItensFichaTec())
         {
             if (fItens.ShowDialog() == DialogResult.OK)
             {
                 if (fItens.rFicha != null)
                 {
                     fItens.rFicha.Nr_orcamento = (bsItensOrcamento.Current as TRegistro_Orcamento_Item).Nr_orcamento;
                     fItens.rFicha.Id_item      = (bsItensOrcamento.Current as TRegistro_Orcamento_Item).Id_item;
                     fItens.rFicha.SaldoEstoque = TCN_LanEstoque.Busca_Saldo_Local((bsItensOrcamento.Current as TRegistro_Orcamento_Item).Cd_empresa, fItens.rFicha.Cd_item, fItens.rFicha.Cd_local, null);
                     (bsFichaTec.List as TList_FichaTecOrcItem).Add(fItens.rFicha);
                     bsFichaTec.ResetBindings(true);
                 }
             }
         }
     }
 }
Exemplo n.º 11
0
 private void AcertarVlMedio()
 {
     using (TFLanAcertarVlMedio fVlMedio = new TFLanAcertarVlMedio())
     {
         if (fVlMedio.ShowDialog() == DialogResult.OK)
         {
             if (fVlMedio.rEstoque != null)
             {
                 try
                 {
                     TCN_LanEstoque.AcertarVlMedio(fVlMedio.rEstoque, null);
                     MessageBox.Show("Valor Médio de estoque acertado com sucesso.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                 }
                 catch (Exception ex)
                 {
                     MessageBox.Show(ex.Message.Trim());
                 }
             }
         }
     }
 }
Exemplo n.º 12
0
 private void bbAdd_Click(object sender, EventArgs e)
 {
     if (string.IsNullOrEmpty(CD_Empresa.Text))
     {
         MessageBox.Show("Obrigatório informar empresa.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
         return;
     }
     using (TFOrdem_MPrima fOrdem = new TFOrdem_MPrima())
     {
         fOrdem.pCd_empresa = CD_Empresa.Text;
         if (fOrdem.ShowDialog() == DialogResult.OK)
         {
             if (fOrdem.ROrdem_MPrima != null)
             {
                 fOrdem.ROrdem_MPrima.SaldoEstoque     = TCN_LanEstoque.Busca_Saldo_Local(CD_Empresa.Text, fOrdem.ROrdem_MPrima.Cd_produto, fOrdem.ROrdem_MPrima.Cd_local, null);
                 fOrdem.ROrdem_MPrima.Qtd_produto_calc = fOrdem.ROrdem_MPrima.Qtd_produto;
                 (bsOrdemProducao.Current as TRegistro_OrdemProducao).lOrdem_MPrima.Add(fOrdem.ROrdem_MPrima);
                 bsOrdemProducao.ResetCurrentItem();
             }
         }
     }
 }
Exemplo n.º 13
0
        public static string GravaLanInsumos(TRegistro_LanInsumos val, TObjetoBanco banco)
        {
            bool           pode_liberar = false;
            TCD_LanInsumos lanInsumo    = new TCD_LanInsumos();

            try
            {
                if (banco == null)
                {
                    lanInsumo.CriarBanco_Dados(true);
                    pode_liberar = true;
                    banco        = lanInsumo.Banco_Dados;
                }
                else
                {
                    lanInsumo.Banco_Dados = banco;
                }

                string retorno = "";
                TRegistro_LanInsumos_X_Estoque InsumoEstoque = new TRegistro_LanInsumos_X_Estoque();

                if (val.ID_Requisicao <= 0 || val.ID_Requisicao == null)
                {
                    decimal saldo = 0;
                    TCN_LanEstoque.SaldoEstoqueLocal(val.CD_Empresa, val.CD_Produto, val.CD_Local, ref saldo, banco);

                    if (val.Quantidade > saldo)
                    {
                        throw new Exception("Atenção, não há SALDO suficiente desse PRODUTO no LOCAL DE ARMAZENAGEM!");
                    }

                    //GRAVA O LANÇAMENTO EM ESTOQUE
                    TRegistro_LanEstoque reg_estoque = new TRegistro_LanEstoque();

                    reg_estoque.Cd_produto    = val.CD_Produto;
                    reg_estoque.Cd_local      = val.CD_Local;
                    reg_estoque.Qtd_entrada   = 0;
                    reg_estoque.Qtd_saida     = val.Quantidade;
                    reg_estoque.Cd_empresa    = val.CD_Empresa;
                    reg_estoque.St_registro   = "A";
                    reg_estoque.Vl_unitario   = val.VL_Unitario;
                    reg_estoque.Vl_subtotal   = val.VL_Total;
                    reg_estoque.Tp_movimento  = "S";
                    reg_estoque.Ds_observacao = "LANÇAMENTO DE INSUMO CÓDIGO DO INSUMO - " + val.CD_Produto;
                    reg_estoque.Tp_lancto     = "N";

                    TCD_LanEstoque TCD_Estoque = new TCD_LanEstoque();
                    TCD_Estoque.Banco_Dados = banco;
                    string ret_estoque = TCD_Estoque.GravaEstoque(reg_estoque);
                    InsumoEstoque.Id_LanctoEstoque = Convert.ToDecimal(CamadaDados.TDataQuery.getPubVariavel(ret_estoque, "@@P_ID_LANCTOESTOQUE"));
                }
                else
                {
                    TpBusca[] filtro = new TpBusca[0];

                    Array.Resize(ref filtro, filtro.Length + 1);
                    filtro[0].vNM_Campo = "d.cd_EMPRESA";
                    filtro[0].vOperador = "=";
                    filtro[0].vVL_Busca = "'" + val.CD_Empresa + "'";

                    Array.Resize(ref filtro, filtro.Length + 1);
                    filtro[1].vNM_Campo = "a.cd_produto";
                    filtro[1].vOperador = "=";
                    filtro[1].vVL_Busca = "'" + val.CD_Produto + "'";

                    Array.Resize(ref filtro, filtro.Length + 1);
                    filtro[2].vNM_Campo = "E.ST_REGISTRO";
                    filtro[2].vOperador = "=";
                    filtro[2].vVL_Busca = "'A'";

                    DataTable TB_Local_Amx = null;//new TCD_Movimentacao().BuscarSaldo(filtro);
                    if ((TB_Local_Amx == null) || (TB_Local_Amx.Rows.Count == 0))
                    {
                        throw new Exception("O Almoxarifado não possui SALDO suficiente!");
                    }
                    else
                    {
                        if (val.Quantidade > Convert.ToDecimal(TB_Local_Amx.Rows[0]["Tot_Saldo"].ToString()))
                        {
                            throw new Exception("O Almoxarifado não possui SALDO suficiente!");
                        }
                    }

                    //BUSCA OS DADOS DE ENTREGA
                    TpBusca[] vBusca = new TpBusca[0];

                    Array.Resize(ref vBusca, vBusca.Length + 1);
                    vBusca[vBusca.Length - 1].vNM_Campo = "a.ID_Requisicao";
                    vBusca[vBusca.Length - 1].vOperador = "=";
                    vBusca[vBusca.Length - 1].vVL_Busca = val.ID_Requisicao.ToString();

                    Array.Resize(ref vBusca, vBusca.Length + 1);
                    vBusca[vBusca.Length - 1].vNM_Campo = "b.cd_produto";
                    vBusca[vBusca.Length - 1].vOperador = "=";
                    vBusca[vBusca.Length - 1].vVL_Busca = "'" + val.CD_Produto + "'";

                    //InsumoEstoque.Id_LanctoEstoque = Convert.ToDecimal(new TCD_LanEntregaRequisicao().BuscarEscalar(vBusca, "b.Id_LanctoEstoque").ToString());
                    //InsumoEstoque.Id_Entrega = Convert.ToDecimal(new TCD_LanEntregaRequisicao().BuscarEscalar(vBusca, "a.Id_Entrega").ToString());
                }

                if (InsumoEstoque.Id_LanctoEstoque > 0)
                {
                    //MANDA GRAVAR A INSUMO
                    val.ID_Lancto               = 0;
                    retorno                     = lanInsumo.GravaLanInsumos(val);
                    InsumoEstoque.Id_Lancto     = Convert.ToDecimal(CamadaDados.TDataQuery.getPubVariavel(retorno, "@P_ID_LANCTO"));
                    InsumoEstoque.ID_LanctoAtiv = Convert.ToDecimal(val.ID_LanctoAtiv);
                    //GRAVA O LANÇAMENTO INSUMO X ESTOQUE
                    InsumoEstoque.Cd_Produto = val.CD_Produto;
                    InsumoEstoque.Cd_Empresa = val.CD_Empresa;

                    TCD_LanInsumos_X_Estoque TCD_InsumoEstoque = new TCD_LanInsumos_X_Estoque();
                    TCD_InsumoEstoque.Banco_Dados = banco;
                    TCD_InsumoEstoque.GravaLanInsumos_X_Estoque(InsumoEstoque);
                }
                else
                {
                    throw new Exception("Não foi possível lançar o estoque, por favor tente novamente!");
                }

                if (pode_liberar)
                {
                    lanInsumo.Banco_Dados.Commit_Tran();
                }
                return(retorno);
            }
            catch (Exception erro)
            {
                if (pode_liberar)
                {
                    lanInsumo.Banco_Dados.RollBack_Tran();
                }

                throw new Exception(erro.Message);
            }
            finally
            {
                if (pode_liberar)
                {
                    lanInsumo.deletarBanco_Dados();
                }
            }
        }
Exemplo n.º 14
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();
 }
Exemplo n.º 15
0
        private void bb_incluir_Click(object sender, EventArgs e)
        {
            if (cd_empresa.Text.Trim().Equals(string.Empty))
            {
                MessageBox.Show("Obrigatorio informar empresa.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                cd_empresa.Focus();
                return;
            }
            if (dt_inicial.Text.Trim().Equals(string.Empty) ||
                dt_inicial.Text.Trim().Equals("/  /"))
            {
                MessageBox.Show("Obrigatorio informar data inicial.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                dt_inicial.Focus();
                return;
            }
            if (dt_final.Text.Trim().Equals(string.Empty) ||
                dt_final.Text.Trim().Equals("/  /"))
            {
                MessageBox.Show("Obrigatorio informar data final.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                dt_final.Focus();
                return;
            }
            //Buscar lista de itens movimentados dentro do periodo
            TList_RegLanEstoque lEstoque = TCN_LanEstoque.Busca(cd_empresa.Text,
                                                                string.Empty,
                                                                string.Empty,
                                                                string.Empty,
                                                                string.Empty,
                                                                string.Empty,
                                                                string.Empty,
                                                                string.Empty,
                                                                string.Empty,
                                                                string.Empty,
                                                                dt_inicial.Text,
                                                                dt_final.Text,
                                                                "A",
                                                                string.Empty,
                                                                string.Empty,
                                                                false,
                                                                false,
                                                                false,
                                                                false,
                                                                false,
                                                                false,
                                                                0,
                                                                string.Empty,
                                                                "c.cd_grupo, a.cd_produto");

            foreach (TRegistro_LanEstoque rEstoque in lEstoque)
            {
                TRegistro_Inventario_Item reg = new TRegistro_Inventario_Item()
                {
                    Id_inventario = (bsInventario.Current as Tregistro_Inventario).Id_inventario,
                    Cd_produto    = rEstoque.Cd_produto,
                    Ds_produto    = rEstoque.Ds_produto,
                    Cd_grupo      = rEstoque.Cd_grupo,
                    Ds_grupo      = rEstoque.Ds_grupo
                };
                if (!(bsInventario.Current as Tregistro_Inventario).lItensInventario.Exists(p => p.Id_inventario.Equals(reg.Id_inventario) &&
                                                                                            p.Cd_produto.Trim().Equals(reg.Cd_produto.Trim()) && p.Cd_grupo.Trim().Equals(reg.Cd_grupo.Trim())))
                {
                    //Incluir o produto
                    (bsInventario.Current as Tregistro_Inventario).lItensInventario.Add(reg);
                }
            }
            MontarArvoreItensInventario();
        }
Exemplo n.º 16
0
        public static string Gravar(TRegistro_Devolucao val,
                                    CamadaDados.Financeiro.Duplicata.TList_RegLanParcela lParc,
                                    BancoDados.TObjetoBanco banco)
        {
            bool          st_transacao = false;
            TCD_Devolucao qtb_dev      = new TCD_Devolucao();

            try
            {
                if (banco == null)
                {
                    st_transacao = qtb_dev.CriarBanco_Dados(true);
                }
                else
                {
                    qtb_dev.Banco_Dados = banco;
                }
                decimal            tot_devolver = Math.Round(val.lItens.Sum(p => p.Qtd_devolver * (p.Vl_subtotalliquido / p.Quantidade)), 2);
                TList_DevolucaoFIN lDevFin      = new TList_DevolucaoFIN();
                if (lParc?.Count > 0)
                {
                    foreach (CamadaDados.Financeiro.Duplicata.TRegistro_LanParcela p in lParc)
                    {
                        if (tot_devolver > decimal.Zero)
                        {
                            lDevFin.Add(new TRegistro_DevolucaoFIN()
                            {
                                Nr_lancto    = p.Nr_lancto,
                                Cd_parcela   = p.Cd_parcela,
                                Vl_devolvido = tot_devolver < p.cVl_atual ? tot_devolver : p.cVl_atual
                            });
                            tot_devolver -= tot_devolver < p.cVl_atual ? tot_devolver : p.cVl_atual;
                        }
                        else
                        {
                            break;
                        }
                    }
                }
                if (tot_devolver > decimal.Zero)
                {
                    //Buscar Config Adto
                    CamadaDados.Financeiro.Cadastros.TList_ConfigAdto lCfgAdto =
                        CamadaNegocio.Financeiro.Cadastros.TCN_CadConfigAdto.Buscar(val.Cd_empresa,
                                                                                    string.Empty,
                                                                                    string.Empty,
                                                                                    string.Empty,
                                                                                    string.Empty,
                                                                                    1,
                                                                                    string.Empty,
                                                                                    qtb_dev.Banco_Dados);
                    if (lCfgAdto.Count.Equals(0))
                    {
                        throw new Exception("Não existe configuração adiantamento para gerar credito.");
                    }
                    //Gerar Credito do valor devolvido
                    CamadaDados.Financeiro.Adiantamento.TRegistro_LanAdiantamento rAdto = new CamadaDados.Financeiro.Adiantamento.TRegistro_LanAdiantamento();
                    rAdto.Cd_clifor  = val.Cd_clifor;
                    rAdto.Cd_empresa = val.Cd_empresa;
                    //Buscar endereco
                    object obj = new CamadaDados.Financeiro.Cadastros.TCD_CadEndereco().BuscarEscalar(
                        new Utils.TpBusca[]
                    {
                        new Utils.TpBusca()
                        {
                            vNM_Campo = "a.cd_clifor",
                            vOperador = "=",
                            vVL_Busca = "'" + val.Cd_clifor.Trim() + "'"
                        }
                    }, "a.cd_endereco");
                    rAdto.CD_Endereco  = obj == null ? string.Empty : obj.ToString();
                    rAdto.Ds_adto      = "CREDITO RECEBIDO DEVOLUÇÃO VENDA";
                    rAdto.Tp_movimento = "R";
                    rAdto.Dt_lancto    = val.Dt_devolucao;
                    rAdto.Vl_adto      = tot_devolver;
                    rAdto.ST_ADTO      = "A";
                    rAdto.TP_Lancto    = "T";//Frente Caixa
                    CamadaNegocio.Financeiro.Adiantamento.TCN_LanAdiantamento.Gravar(rAdto, qtb_dev.Banco_Dados);
                    //Quitar adiantamento
                    rAdto.List_Caixa.Add(new CamadaDados.Financeiro.Caixa.TRegistro_LanCaixa()
                    {
                        Cd_ContaGer    = lCfgAdto[0].Cd_contagerDEV_CV,
                        Cd_Empresa     = val.Cd_empresa,
                        Cd_Historico   = lCfgAdto[0].Cd_historico_ADTO_R,
                        Cd_LanctoCaixa = decimal.Zero,
                        ComplHistorico = "CREDITO RECEBIDO DEVOLUÇÃO VENDA",
                        Dt_lancto      = val.Dt_devolucao,
                        Login          = Utils.Parametros.pubLogin,
                        Nr_Docto       = "DEVPDV",
                        St_Estorno     = "N",
                        St_Titulo      = "N",
                        Vl_PAGAR       = decimal.Zero,
                        Vl_RECEBER     = rAdto.Vl_adto,
                        NM_Clifor      = val.Nm_clifor
                    });
                    CamadaNegocio.Financeiro.Adiantamento.TCN_LanAdiantamentoXCaixa.Quitar_Adiantamento(rAdto, qtb_dev.Banco_Dados);
                    val.Id_adto = rAdto.Id_adto;
                    //Dar saida do valor do credito para não duplicar o valor
                    string ret =
                        CamadaNegocio.Financeiro.Caixa.TCN_LanCaixa.GravaLanCaixa(
                            new CamadaDados.Financeiro.Caixa.TRegistro_LanCaixa()
                    {
                        Cd_ContaGer    = lCfgAdto[0].Cd_contagerDEV_CV,
                        Cd_Empresa     = val.Cd_empresa,
                        Cd_Historico   = lCfgAdto[0].Cd_historicoDEV_Venda,
                        Cd_LanctoCaixa = decimal.Zero,
                        ComplHistorico = "DEVOLUÇÃO VENDA",
                        Dt_lancto      = val.Dt_devolucao,
                        Login          = Utils.Parametros.pubLogin,
                        Nr_Docto       = "DEVPDV",
                        St_Estorno     = "N",
                        St_Titulo      = "N",
                        Vl_PAGAR       = rAdto.Vl_adto,
                        Vl_RECEBER     = decimal.Zero,
                        NM_Clifor      = val.Nm_clifor
                    }, qtb_dev.Banco_Dados);
                    val.Cd_contager       = lCfgAdto[0].Cd_contagerDEV_CV;
                    val.Cd_lanctocaixastr = CamadaDados.TDataQuery.getPubVariavel(ret, "@P_CD_LANCTOCAIXA");
                }
                //Gravar devolucao
                val.Id_devolucaostr = CamadaDados.TDataQuery.getPubVariavel(qtb_dev.Gravar(val), "@P_ID_DEVOLUCAO");
                lDevFin.ForEach(p =>
                {
                    p.Cd_empresa   = val.Cd_empresa;
                    p.Id_devolucao = val.Id_devolucao;
                    TCN_DevolucaoFIN.Gravar(p, qtb_dev.Banco_Dados);
                });
                //Gravar Itens Devolvidos
                val.lItens.ForEach(p =>
                {
                    decimal vl_unit = decimal.Zero;
                    //Buscar Vl.Unitario
                    object objVl_unit = new TCD_LanEstoque(qtb_dev.Banco_Dados).BuscarEscalar(
                        new Utils.TpBusca[]
                    {
                        new Utils.TpBusca()
                        {
                            vNM_Campo = string.Empty,
                            vOperador = "exists",
                            vVL_Busca = "(select 1 from TB_PDV_CupomFiscal_Item_X_Estoque x " +
                                        "where a.Id_LanctoEstoque = x.Id_LanctoEstoque " +
                                        "and a.cd_empresa = x.cd_empresa " +
                                        "and a.cd_produto = x.cd_produto " +
                                        "and x.id_lancto = " + p.Id_lanctovenda.ToString() + " " +
                                        "and x.id_cupom = " + p.Id_vendarapida.ToString() + " " +
                                        "and x.cd_empresa = '" + p.Cd_empresa.Trim() + "' " +
                                        "and x.cd_produto = '" + p.Cd_produto.Trim() + "')"
                        }
                    }, "a.vl_unitario");
                    if (objVl_unit == null || string.IsNullOrEmpty(objVl_unit.ToString()))
                    {
                        vl_unit = TCN_LanEstoque.BuscarVlEstoqueUltimaCompra(val.Cd_empresa, p.Cd_produto, qtb_dev.Banco_Dados);
                    }
                    else
                    {
                        vl_unit = decimal.Parse(objVl_unit.ToString());
                    }
                    //dar entrada novamente no estoque
                    string id_lanctoestoque = CamadaDados.TDataQuery.getPubVariavel(
                        TCN_LanEstoque.GravarEstoque(
                            new TRegistro_LanEstoque()
                    {
                        Cd_empresa    = val.Cd_empresa,
                        Cd_produto    = p.Cd_produto,
                        Cd_local      = p.Cd_local,
                        Dt_lancto     = val.Dt_devolucao,
                        Tp_movimento  = "E",
                        Qtd_entrada   = p.Qtd_devolver,
                        Qtd_saida     = decimal.Zero,
                        Vl_unitario   = vl_unit,
                        Vl_subtotal   = vl_unit,
                        Tp_lancto     = "L",
                        St_registro   = "A",
                        Ds_observacao = "DEVOLUCAO VENDA FRENTE CAIXA Nº" + p.Id_vendarapida.Value.ToString()
                    }, qtb_dev.Banco_Dados), "@@P_ID_LANCTOESTOQUE");
                    //gravar itens devolvidos
                    TCN_ItensDevolvidos.Gravar(new TRegistro_ItensDevolvidos()
                    {
                        Cd_empresa          = val.Cd_empresa,
                        Id_devolucao        = val.Id_devolucao,
                        Id_lancto           = p.Id_lanctovenda,
                        Id_cupom            = p.Id_vendarapida,
                        Cd_produto          = p.Cd_produto,
                        Id_lanctoestoquestr = id_lanctoestoque
                    }, qtb_dev.Banco_Dados);
                    //Grade Produto
                    p.lGrade.ForEach(v =>
                    {
                        if (v.Vl_mov > decimal.Zero)
                        {
                            TCN_GradeEstoque.Gravar(
                                new TRegistro_GradeEstoque
                            {
                                Cd_empresa        = p.Cd_empresa,
                                Cd_produto        = p.Cd_produto,
                                Id_lanctoestoque  = decimal.Parse(id_lanctoestoque),
                                Id_caracteristica = v.Id_caracteristica,
                                Id_item           = v.Id_item,
                                quantidade        = v.Vl_mov
                            }, qtb_dev.Banco_Dados);
                        }
                    });
                });
                //Reprocessar Comissão
                new TCD_VendaRapida_Item(qtb_dev.Banco_Dados).Select(
                    new Utils.TpBusca[]
                {
                    new Utils.TpBusca()
                    {
                        vNM_Campo = "a.id_vendarapida",
                        vOperador = "=",
                        vVL_Busca = val.lItens[0].Id_vendarapida.ToString()
                    },
                    new Utils.TpBusca()
                    {
                        vNM_Campo = "a.cd_empresa",
                        vOperador = "=",
                        vVL_Busca = "'" + val.Cd_empresa.Trim() + "'"
                    }
                }, 0, string.Empty, string.Empty).ForEach(p => PDV.TCN_VendaRapida_Item.ProcessarComissao(p, qtb_dev.Banco_Dados));
                if (val.lItens.Count > 0)
                {
                    //Recalcular Pontos Fidelidade
                    new CamadaDados.Faturamento.Fidelizacao.TCD_PontosFidelidade(qtb_dev.Banco_Dados).Select(
                        new Utils.TpBusca[]
                    {
                        new Utils.TpBusca()
                        {
                            vNM_Campo = "a.cd_empresa",
                            vOperador = "=",
                            vVL_Busca = "'" + val.Cd_empresa.Trim() + "'"
                        },
                        new Utils.TpBusca()
                        {
                            vNM_Campo = "a.id_cupom",
                            vOperador = "=",
                            vVL_Busca = val.lItens[0].Id_vendarapida.ToString()
                        }
                    }, 0, string.Empty, string.Empty).ForEach(x =>
                    {
                        System.Collections.Hashtable hs = new System.Collections.Hashtable(3);
                        hs.Add("@P_CD_EMPRESA", x.Cd_empresa);
                        hs.Add("@P_ID_CUPOM", x.Id_cupomstr);
                        hs.Add("@P_QTD_DEVOLVER", val.lItens.Sum(p => p.Qtd_devolver * (x.Qt_pontos / p.Quantidade)));
                        qtb_dev.executarSql("update TB_FAT_PontosFidelidade set QT_Pontos = QT_Pontos - @P_QTD_DEVOLVER" +
                                            " where cd_empresa = @P_CD_EMPRESA" +
                                            " and id_cupom = @P_ID_CUPOM", hs);
                    });

                    //Recalcular Resgate
                    new CamadaDados.Faturamento.Fidelizacao.TCD_ResgatePontos(qtb_dev.Banco_Dados).Select(
                        new Utils.TpBusca[]
                    {
                        new Utils.TpBusca()
                        {
                            vNM_Campo = "a.cd_empresa",
                            vOperador = "=",
                            vVL_Busca = "'" + val.Cd_empresa.Trim() + "'"
                        },
                        new Utils.TpBusca()
                        {
                            vNM_Campo = "a.id_cupom",
                            vOperador = "=",
                            vVL_Busca = val.lItens[0].Id_vendarapida.ToString()
                        }
                    }, 0, string.Empty).ForEach(x =>
                    {
                        System.Collections.Hashtable hs = new System.Collections.Hashtable(4);
                        hs.Add("@P_CD_EMPRESA", x.Cd_empresa);
                        hs.Add("@P_ID_CUPOM", x.Id_cupomstr);
                        hs.Add("@P_ID_PONTO", x.Id_pontostr);
                        hs.Add("@P_QTD_DEVOLVER", val.lItens.Sum(p => p.Qtd_devolver * (x.Qt_pontos / p.Quantidade)));
                        qtb_dev.executarSql("update TB_FAT_ResgatePontos set QT_Pontos = QT_Pontos - @P_QTD_DEVOLVER" +
                                            " where cd_empresa = @P_CD_EMPRESA" +
                                            " and id_cupom = @P_ID_CUPOM" +
                                            " and id_ponto = @P_ID_PONTO", hs);
                    });
                }
                if (st_transacao)
                {
                    qtb_dev.Banco_Dados.Commit_Tran();
                }
                return(val.Id_devolucaostr);
            }
            catch (Exception ex)
            {
                if (st_transacao)
                {
                    qtb_dev.Banco_Dados.RollBack_Tran();
                }
                throw new Exception("Erro gravar devolução:" + ex.Message.Trim());
            }
            finally
            {
                if (st_transacao)
                {
                    qtb_dev.deletarBanco_Dados();
                }
            }
        }
Exemplo n.º 17
0
 private void BuscarProduto()
 {
     if (!string.IsNullOrEmpty(cd_empresa.Text))
     {
         //Prencher variavel codigo de barra
         codigoBarra = cd_produto.Text;
         TpBusca[] filtro = new TpBusca[0];
         if (string.IsNullOrEmpty(cd_produto.Text))
         {
             rProd = UtilPesquisa.BuscarProduto(string.Empty,
                                                cd_empresa.Text,
                                                nm_empresa.Text,
                                                cd_tabelapreco.Text,
                                                new Componentes.EditDefault[] { cd_produto, DS_Produto },
                                                null);
         }
         else if (cd_produto.Text.SoNumero().Trim().Length != cd_produto.Text.Trim().Length)
         {
             rProd = UtilPesquisa.BuscarProduto(cd_produto.Text,
                                                cd_empresa.Text,
                                                nm_empresa.Text,
                                                cd_tabelapreco.Text,
                                                new Componentes.EditDefault[] { cd_produto, DS_Produto },
                                                null);
         }
         else
         {
             Array.Resize(ref filtro, filtro.Length + 2);
             filtro[filtro.Length - 2].vNM_Campo = "isnull(a.st_registro, 'A')";
             filtro[filtro.Length - 2].vOperador = "<>";
             filtro[filtro.Length - 2].vVL_Busca = "'C'";
             filtro[filtro.Length - 1].vNM_Campo = string.Empty;
             filtro[filtro.Length - 1].vOperador = string.Empty;
             filtro[filtro.Length - 1].vVL_Busca = "(a.cd_produto like '%" + cd_produto.Text.Trim() + "') or " +
                                                   "(a.Codigo_Alternativo = '" + (!string.IsNullOrWhiteSpace(cd_produto.TextOld) ? cd_produto.TextOld : cd_produto.Text.Trim()) + "') or " +
                                                   "(exists(select 1 from tb_est_codbarra x " +
                                                   "           where x.cd_produto = a.cd_produto " +
                                                   "           and x.cd_codbarra = '" + cd_produto.Text.Trim() + "'))";
             TList_CadProduto lProd = new TCD_CadProduto().Select(filtro, 0, string.Empty, string.Empty, string.Empty);
             if (lProd.Count > 0)
             {
                 rProd = lProd[0];
             }
         }
         if (rProd != null)
         {
             cd_produto.Text     = rProd.CD_Produto;
             DS_Produto.Text     = rProd.DS_Produto;
             cd_local.Enabled    = !rProd.St_composto;
             bb_local.Enabled    = !rProd.St_composto;
             qtd_entrada.Enabled = !rProd.St_composto;
             vl_entrada.Enabled  = !rProd.St_composto;
             codBarra.Text       = BuscarCodBarra();
             //Buscar Preço Venda
             if (!string.IsNullOrEmpty(cd_produto.Text) && !string.IsNullOrEmpty(cd_tabelapreco.Text))
             {
                 vl_precovenda.Value = TCN_LanPrecoItem.Busca_ConsultaPreco(cd_empresa.Text, cd_produto.Text, cd_tabelapreco.Text, null);
             }
             if (!rProd.St_composto)
             {
                 //Buscar Preço Custo
                 if (!string.IsNullOrEmpty(cd_produto.Text) && !string.IsNullOrEmpty(cd_local.Text))
                 {
                     vl_custo.Value   = TCN_LanEstoque.Vl_MedioLocal(cd_empresa.Text, cd_produto.Text, cd_local.Text, null);
                     vl_entrada.Value = vl_custo.Value;
                 }
                 //Buscar Saldo
                 quantidade.Value = BuscarSaldoLocal();
                 //Total Custo Estoque
                 if (quantidade.Value > 0 && vl_custo.Value > 0)
                 {
                     vl_subtotal.Value = quantidade.Value * vl_custo.Value;
                 }
             }
         }
         else
         {
             cd_produto.Clear();
             cd_produto.Focus();
             //se o produto nao existir com o codigo add ao campo para cadastrar
             if (!string.IsNullOrEmpty(codigoBarra))
             {
                 codBarra.Text = codigoBarra;
                 if (InputBox("Pergunta", "Produto não encontrado com o código de barras!\r\n" +
                              "Deseja incluir código ao novo produto ou relacionar ao existente?") == DialogResult.Yes)
                 {
                     bb_novoProd_Click(this, new EventArgs());
                 }
                 else
                 {
                     BuscarProduto();
                 }
             }
         }
         if (!string.IsNullOrEmpty(cd_local.Text))
         {
             qtd_entrada.Focus();
         }
     }
     else
     {
         MessageBox.Show("Obrigatório selecionar empresa para Buscar o Produto!", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
         cd_empresa.Focus();
     }
 }
Exemplo n.º 18
0
        public static string Gravar2(TRegistro_ApontamentoProducao val,
                                     BancoDados.TObjetoBanco banco)
        {
            bool st_transacao = false;
            TCD_ApontamentoProducao qtb_ap = new TCD_ApontamentoProducao();

            try
            {
                if (banco == null)
                {
                    st_transacao = qtb_ap.CriarBanco_Dados(true);
                }
                else
                {
                    qtb_ap.Banco_Dados = banco;
                }
                //Gravar apontamento
                val.St_registro    = "1";
                val.Id_apontamento = Convert.ToDecimal(CamadaDados.TDataQuery.getPubVariavel(qtb_ap.Gravar(val), "@P_ID_APONTAMENTO"));
                decimal custo = decimal.Zero;
                //Baixar estoque ficha tecnica
                TCN_Ordem_MPrima.Buscar(val.Id_ordemstr, qtb_ap.Banco_Dados)
                .ForEach(v =>
                {
                    //Incluir apontamento
                    TCN_Apontamento_MPrima.Gravar(
                        new TRegistro_Apontamento_MPrima
                    {
                        Id_apontamento = val.Id_apontamento.Value,
                        Cd_produto     = v.Cd_produto,
                        Cd_unidade     = v.Cd_unidade,
                        Cd_local       = v.Cd_local,
                        Qtd_produto    = v.Qtd_produto,
                        Pc_quebratec   = v.Pc_quebratec
                    }, qtb_ap.Banco_Dados);
                    //Gravar estoque
                    TRegistro_LanEstoque rEstoque = new TRegistro_LanEstoque();
                    rEstoque.Cd_empresa           = v.CD_Empresa;
                    rEstoque.Cd_local             = v.Cd_local;
                    rEstoque.Cd_produto           = v.Cd_produto;
                    rEstoque.Ds_observacao        = "ESTOQUE GRAVADO AUTOMATICAMENTE PELO APONTAMENTO DE PRODUCAO";
                    rEstoque.Dt_lancto            = val.Dt_apontamento;
                    rEstoque.Tp_movimento         = "S";
                    rEstoque.Qtd_entrada          = decimal.Zero;
                    rEstoque.Qtd_saida            = v.Qtd_produto;
                    rEstoque.Vl_unitario          = TCN_LanEstoque.BuscarVlEstoqueUltimaCompra(v.CD_Empresa, v.Cd_produto, qtb_ap.Banco_Dados);
                    rEstoque.Vl_subtotal          = v.Qtd_produto * rEstoque.Vl_unitario;
                    rEstoque.Tp_lancto            = "N";
                    custo += rEstoque.Vl_subtotal;
                    TCN_LanEstoque.GravarEstoque(rEstoque, qtb_ap.Banco_Dados);
                    //Apontamento x estoque
                    TCN_Apontamento_Estoque.GravarApontamentoEstoque(
                        new TRegistro_Apontamento_Estoque
                    {
                        Id_apontamento   = val.Id_apontamento,
                        Cd_empresa       = rEstoque.Cd_empresa,
                        Cd_produto       = rEstoque.Cd_produto,
                        Id_lanctoestoque = rEstoque.Id_lanctoestoque,
                        Vl_custocontabil = rEstoque.Vl_subtotal
                    }, qtb_ap.Banco_Dados);
                });
                //Dar entrada estoque produto acabado
                TRegistro_OrdemProducao rOrdem =
                    TCN_OrdemProducao.Buscar(val.Id_ordemstr,
                                             val.Cd_empresa,
                                             string.Empty,
                                             string.Empty,
                                             string.Empty,
                                             string.Empty,
                                             string.Empty,
                                             string.Empty,
                                             string.Empty,
                                             false,
                                             false,
                                             false,
                                             false,
                                             qtb_ap.Banco_Dados)[0];
                TRegistro_LanEstoque rEstAcab = new TRegistro_LanEstoque();
                rEstAcab.Cd_empresa    = rOrdem.Cd_empresa;
                rEstAcab.Cd_local      = rOrdem.Cd_local;
                rEstAcab.Cd_produto    = rOrdem.Cd_produto;
                rEstAcab.Ds_observacao = "ESTOQUE GRAVADO AUTOMATICAMENTE PELO APONTAMENTO DE PRODUCAO";
                rEstAcab.Dt_lancto     = val.Dt_apontamento;
                rEstAcab.Tp_movimento  = "E";
                rEstAcab.Qtd_entrada   = rOrdem.Qtd_saldoproduzir;
                rEstAcab.Qtd_saida     = decimal.Zero;
                rEstAcab.Vl_unitario   = Math.Round(decimal.Divide(custo, rOrdem.Qtd_saldoproduzir), 7, MidpointRounding.AwayFromZero);
                rEstAcab.Vl_subtotal   = custo;
                rEstAcab.Tp_lancto     = "N";
                TCN_LanEstoque.GravarEstoque(rEstAcab, qtb_ap.Banco_Dados);
                //Apontamento x estoque
                TCN_Apontamento_Estoque.GravarApontamentoEstoque(
                    new TRegistro_Apontamento_Estoque
                {
                    Id_apontamento   = val.Id_apontamento,
                    Cd_empresa       = rEstAcab.Cd_empresa,
                    Cd_produto       = rEstAcab.Cd_produto,
                    Id_lanctoestoque = rEstAcab.Id_lanctoestoque,
                    Vl_custocontabil = custo
                }, qtb_ap.Banco_Dados);
                //Gravar Ordem x Apontamento
                TCN_OrdemProducao_X_Apontamento.Gravar(
                    new TRegistro_OrdemProducao_X_Apontamento
                {
                    Id_apontamento = val.Id_apontamento,
                    Id_ordem       = val.Id_ordem
                }, qtb_ap.Banco_Dados);
                //Alterar status serie para P-Processada
                TCN_SerieProduto.Buscar(string.Empty,
                                        string.Empty,
                                        string.Empty,
                                        val.Id_ordemstr,
                                        qtb_ap.Banco_Dados)
                .ForEach(p => { p.St_registro = "P"; TCN_SerieProduto.Gravar(p, qtb_ap.Banco_Dados); });
                //Gravar custo total materia prima
                val.Vl_custo_mpd = custo;
                qtb_ap.Gravar(val);
                if (st_transacao)
                {
                    qtb_ap.Banco_Dados.Commit_Tran();
                }
                return(val.Id_apontamentostr);
            }
            catch (Exception ex)
            {
                if (st_transacao)
                {
                    qtb_ap.Banco_Dados.RollBack_Tran();
                }
                throw new Exception("Erro gravar apontamento: " + ex.Message.Trim());
            }
            finally
            {
                if (st_transacao)
                {
                    qtb_ap.deletarBanco_Dados();
                }
            }
        }
Exemplo n.º 19
0
        private void afterGrava()
        {
            if (rProd != null)
            {
                if (!string.IsNullOrEmpty(cd_tabelapreco.Text))
                {
                    if (vl_precovenda.Value > 0)
                    {
                        TRegistro_LanPrecoItem rPreco = new TRegistro_LanPrecoItem();
                        rPreco.CD_Empresa     = cd_empresa.Text;
                        rPreco.CD_TabelaPreco = cd_tabelapreco.Text;
                        rPreco.Dt_preco       = CamadaDados.UtilData.Data_Servidor();
                        rPreco.VL_PrecoVenda  = vl_precovenda.Value;
                        rProd.lPrecoItem.Add(rPreco);
                        TCN_CadProduto.Gravar(rProd, null);
                        MessageBox.Show("Produto Atualizado com sucesso!", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                }
                else
                {
                    MessageBox.Show("É necessário informar tabela preço!", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return;
                }


                //Adicionar Código de Barras
                if (!string.IsNullOrEmpty(codBarra.Text))
                {
                    rProd.lCodBarra.Add(
                        new TRegistro_CodBarra()
                    {
                        Cd_codbarra = codBarra.Text
                    });
                }
                try
                {
                    if (string.IsNullOrEmpty(cd_local.Text))
                    {
                        MessageBox.Show("Informe o Local de Armazenagem para ajustar estoque!", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        cd_local.Focus();
                        return;
                    }
                    if (qtd_entrada.Value.Equals(decimal.Zero))
                    {
                        MessageBox.Show("Informe a QTD de ajuste de estoque do produto!", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        qtd_entrada.Focus();
                        return;
                    }
                    if (vl_entrada.Value.Equals(decimal.Zero))
                    {
                        MessageBox.Show("Informe o Valor Médio do produto!", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        vl_entrada.Focus();
                        return;
                    }
                    if (quantidade.Value != qtd_entrada.Value)
                    {
                        //Gravar no estoque
                        TRegistro_LanEstoque regEstoque = new TRegistro_LanEstoque();
                        regEstoque.Cd_empresa      = cd_empresa.Text;
                        regEstoque.Cd_produto      = cd_produto.Text;
                        regEstoque.Cd_local        = cd_local.Text;
                        regEstoque.Dt_lancto       = CamadaDados.UtilData.Data_Servidor();
                        regEstoque.Vl_medioestoque = vl_entrada.Value;
                        regEstoque.St_registro     = "A";
                        regEstoque.Tp_lancto       = "M";
                        if (quantidade.Value < qtd_entrada.Value)
                        {
                            regEstoque.Tp_movimento = "E";
                            regEstoque.Qtd_entrada  = qtd_entrada.Value - quantidade.Value;
                            regEstoque.Vl_subtotal  = vl_entrada.Value * (qtd_entrada.Value - quantidade.Value);
                        }
                        else
                        {
                            regEstoque.Tp_movimento = "S";
                            regEstoque.Qtd_saida    = quantidade.Value - qtd_entrada.Value;
                            regEstoque.Vl_subtotal  = vl_entrada.Value * (quantidade.Value - qtd_entrada.Value);
                        }
                        regEstoque.Vl_unitario = vl_entrada.Value;
                        //Gravar Estoque
                        TCN_LanEstoque.GravarEstoque(regEstoque, null);
                        //Atualizar Vl.Médio
                        TCN_LanEstoque.AcertarVlMedio(regEstoque, null);
                    }
                    else
                    {
                        MessageBox.Show("Não é possivel alterar estoque de produto mantendo a mesma quantidade!", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        return;
                    }
                    //Gravar Produto
                    CamadaNegocio.Estoque.Cadastros.TCN_CadProduto.Gravar(rProd, null);
                    MessageBox.Show("Produto Atualizado com sucesso!", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    LimparCampos();
                    BB_Gravar.Visible   = false;
                    BB_Cancelar.Visible = false;
                    BB_Novo.Visible     = true;
                    pDados.Enabled      = false;
                }
                catch (Exception ex)
                { MessageBox.Show(ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Information); }
            }
        }
Exemplo n.º 20
0
        public static TList_Apontamento_Estoque ProcessarEstoqueFichaTec_MPrima(TList_FichaTec_MPrima val,
                                                                                decimal Qtd_batch,
                                                                                DateTime?Dt_estoque,
                                                                                bool St_decomposicao,
                                                                                BancoDados.TObjetoBanco banco)
        {
            bool st_transacao             = false;
            TCD_FichaTec_MPrima qtb_ficha = new TCD_FichaTec_MPrima();

            try
            {
                if (banco == null)
                {
                    st_transacao = qtb_ficha.CriarBanco_Dados(true);
                }
                else
                {
                    qtb_ficha.Banco_Dados = banco;
                }
                TList_Apontamento_Estoque lEstoque = new TList_Apontamento_Estoque();
                val.ForEach(p =>
                {
                    #region if produto composto e formula for nula
                    if ((new CamadaDados.Estoque.Cadastros.TCD_CadProduto(qtb_ficha.Banco_Dados).ProdutoComposto(p.Cd_produto)) && (p.Id_formulacao_mprima == null))
                    {
                        TRegistro_ApontamentoProducao rApontamento = new TRegistro_ApontamentoProducao();
                        rApontamento.Cd_empresa          = p.Cd_empresa;
                        rApontamento.Dt_apontamento      = Dt_estoque;
                        rApontamento.Dt_validade         = Dt_estoque;
                        rApontamento.Qtd_batch           = p.Qtd_produto * Qtd_batch;
                        rApontamento.LFormulaApontamento = new TList_FormulaApontamento()
                        {
                            TCN_FormulaApontamento.CriarFormulaApontamentoProd(p.Cd_empresa,
                                                                               p.Cd_produto,
                                                                               p.Cd_unidade,
                                                                               p.Cd_local,
                                                                               //St_decomposicao,
                                                                               qtb_ficha.Banco_Dados)
                        };
                        //Gravar Formula Apontamento
                        rApontamento.LFormulaApontamento.ForEach(x =>
                        {
                            x.St_decomposicao = St_decomposicao;
                            TCN_FormulaApontamento.Gravar(x, qtb_ficha.Banco_Dados);
                        });
                        //Calcular custo MPD
                        TCN_ApontamentoProducao.CalcularCustoMPD(rApontamento, qtb_ficha.Banco_Dados);
                        //Calcular custo fixo
                        TCN_ApontamentoProducao.CalcularCustoFixo(rApontamento, qtb_ficha.Banco_Dados);
                        //Chamar metodo Gravar Apontamento recursivamente
                        p.Id_apontamentomprima = Convert.ToDecimal(TCN_ApontamentoProducao.Gravar(rApontamento,
                                                                                                  qtb_ficha.Banco_Dados));
                    }
                    #endregion
                    #region else if formula diferente de nulll
                    else if (p.Id_formulacao_mprima != null)
                    {
                        //Buscar formula apontamento
                        TRegistro_ApontamentoProducao rApontamento = new TRegistro_ApontamentoProducao();
                        rApontamento.Cd_empresa          = p.Cd_empresa;
                        rApontamento.Dt_apontamento      = Dt_estoque;
                        rApontamento.Dt_validade         = Dt_estoque;
                        rApontamento.Qtd_batch           = p.Qtd_produto * Qtd_batch;
                        rApontamento.LFormulaApontamento = TCN_FormulaApontamento.Buscar(p.Cd_empresa,
                                                                                         p.Id_formulacao_mprimastr,
                                                                                         string.Empty,
                                                                                         string.Empty,
                                                                                         string.Empty,
                                                                                         string.Empty,
                                                                                         string.Empty,
                                                                                         0,
                                                                                         string.Empty,
                                                                                         qtb_ficha.Banco_Dados);
                        //Buscar ficha tecnica da formula
                        rApontamento.LFormulaApontamento[0].LFichaTec_MPrima =
                            TCN_FichaTec_MPrima.Buscar(p.Cd_empresa,
                                                       p.Id_formulacao_mprimastr,
                                                       string.Empty,
                                                       string.Empty,
                                                       string.Empty,
                                                       0,
                                                       string.Empty,
                                                       qtb_ficha.Banco_Dados);
                        //Buscar Custo
                        rApontamento.LFormulaApontamento[0].LCustoFixo =
                            TCN_CustoFixo_Direto.Buscar(p.Cd_empresa,
                                                        p.Id_formulacao_mprimastr,
                                                        string.Empty,
                                                        string.Empty,
                                                        string.Empty,
                                                        0,
                                                        string.Empty,
                                                        qtb_ficha.Banco_Dados);

                        rApontamento.Qtd_batch = Math.Round(p.Qtd_produto / TCN_CadConvUnidade.ConvertUnid(rApontamento.LFormulaApontamento[0].Cd_unidade,
                                                                                                           rApontamento.LFormulaApontamento[0].Cd_unidProduto,
                                                                                                           rApontamento.LFormulaApontamento[0].Qt_produto,
                                                                                                           3, qtb_ficha.Banco_Dados), 0);
                        //Calcular custo MPD
                        TCN_ApontamentoProducao.CalcularCustoMPD(rApontamento, qtb_ficha.Banco_Dados);
                        //Calcular custo fixo
                        TCN_ApontamentoProducao.CalcularCustoFixo(rApontamento, qtb_ficha.Banco_Dados);
                        //Chamar metodo Gravar Apontamento recursivamente
                        p.Id_apontamentomprima = Convert.ToDecimal(TCN_ApontamentoProducao.Gravar(rApontamento,
                                                                                                  qtb_ficha.Banco_Dados));
                    }
                    #endregion

                    //Gravar estoque
                    TRegistro_LanEstoque rEstoque = new TRegistro_LanEstoque();
                    rEstoque.Cd_empresa           = p.Cd_empresa;
                    rEstoque.Cd_local             = p.Cd_local;
                    rEstoque.Cd_produto           = p.Cd_produto;
                    rEstoque.Ds_observacao        = "ESTOQUE GRAVADO AUTOMATICAMENTE PELO APONTAMENTO DE PRODUCAO";
                    rEstoque.Dt_lancto            = Dt_estoque;
                    rEstoque.Tp_movimento         = !St_decomposicao ? "S" : "E";
                    rEstoque.Qtd_entrada          = St_decomposicao ? TCN_CadConvUnidade.ConvertUnid(p.Cd_unidade,
                                                                                                     p.Cd_unid_produto,
                                                                                                     p.Qtd_produto * Qtd_batch,
                                                                                                     3,
                                                                                                     qtb_ficha.Banco_Dados) : decimal.Zero;
                    rEstoque.Qtd_saida = !St_decomposicao ? TCN_CadConvUnidade.ConvertUnid(p.Cd_unidade,
                                                                                           p.Cd_unid_produto,
                                                                                           p.Qtd_produto * Qtd_batch,
                                                                                           3,
                                                                                           qtb_ficha.Banco_Dados) : decimal.Zero;
                    rEstoque.Vl_unitario = p.Vl_unitario;
                    rEstoque.Vl_subtotal = rEstoque.Vl_unitario * (St_decomposicao ? rEstoque.Qtd_entrada : rEstoque.Qtd_saida);
                    rEstoque.Tp_lancto   = "N";
                    TCN_LanEstoque.GravarEstoque(rEstoque, qtb_ficha.Banco_Dados);
                    lEstoque.Add(new TRegistro_Apontamento_Estoque()
                    {
                        Cd_empresa       = p.Cd_empresa,
                        Cd_produto       = p.Cd_produto,
                        Id_lanctoestoque = rEstoque.Id_lanctoestoque,
                        Vl_custocontabil = p.Vl_custo
                    });
                });
                if (st_transacao)
                {
                    qtb_ficha.Banco_Dados.Commit_Tran();
                }
                return(lEstoque);
            }
            catch (Exception ex)
            {
                if (st_transacao)
                {
                    qtb_ficha.Banco_Dados.RollBack_Tran();
                }
                throw new Exception("Erro: " + ex.Message.Trim());
            }
            finally
            {
                if (st_transacao)
                {
                    qtb_ficha.deletarBanco_Dados();
                }
            }
        }
Exemplo n.º 21
0
 private void bb_serie_Click(object sender, EventArgs e)
 {
     if (bsSintetico.Current != null)
     {
         using (Producao.TFSerieProduto fSerie = new Producao.TFSerieProduto())
         {
             fSerie.st_cadastroavulso = true;
             fSerie.pCd_empresa       = (bsSintetico.Current as DataRowView)["cd_empresa"].ToString();
             fSerie.pCd_produto       = (bsSintetico.Current as DataRowView)["cd_produto"].ToString();
             fSerie.pDs_produto       = (bsSintetico.Current as DataRowView)["ds_produto"].ToString();
             if (fSerie.ShowDialog() == DialogResult.OK)
             {
                 if (fSerie.lSerie != null)
                 {
                     if (fSerie.lSerie.Count > 0)
                     {
                         try
                         {
                             fSerie.lSerie.FindAll(p => !string.IsNullOrEmpty(p.Nr_serie.Trim())).ForEach(p =>
                             {
                                 p.St_registro = "P";
                                 CamadaNegocio.Producao.Producao.TCN_SerieProduto.Gravar(p, null);
                             });
                             MessageBox.Show("Nº Série gravados com sucesso!", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                             using (TFLanEstoque Lan_Estoque = new TFLanEstoque())
                             {
                                 Lan_Estoque.BS_Lan_Estoque.AddNew();
                                 (Lan_Estoque.BS_Lan_Estoque.Current as TRegistro_LanEstoque).Tp_lancto    = "M";
                                 (Lan_Estoque.BS_Lan_Estoque.Current as TRegistro_LanEstoque).Cd_empresa   = (bsSintetico.Current as DataRowView)["cd_empresa"].ToString();
                                 (Lan_Estoque.BS_Lan_Estoque.Current as TRegistro_LanEstoque).Nm_empresa   = (bsSintetico.Current as DataRowView)["nm_empresa"].ToString();
                                 (Lan_Estoque.BS_Lan_Estoque.Current as TRegistro_LanEstoque).Cd_produto   = (bsSintetico.Current as DataRowView)["cd_produto"].ToString();
                                 (Lan_Estoque.BS_Lan_Estoque.Current as TRegistro_LanEstoque).Ds_produto   = (bsSintetico.Current as DataRowView)["ds_produto"].ToString();
                                 (Lan_Estoque.BS_Lan_Estoque.Current as TRegistro_LanEstoque).Tp_movimento = "E";
                                 (Lan_Estoque.BS_Lan_Estoque.Current as TRegistro_LanEstoque).Qtd_entrada  = fSerie.lSerie.Count;
                                 if (Lan_Estoque.ShowDialog() == DialogResult.OK)
                                 {
                                     try
                                     {
                                         TCN_LanEstoque.GravarEstoque((Lan_Estoque.BS_Lan_Estoque.Current as TRegistro_LanEstoque), null);
                                         MessageBox.Show("Lançamento estoque gravado com sucesso.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                         Busca();
                                     }
                                     catch (Exception ex)
                                     { MessageBox.Show(ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); }
                                 }
                             }
                         }
                         catch (Exception ex)
                         { MessageBox.Show(ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); }
                     }
                 }
             }
             else
             {
                 MessageBox.Show("Obrigatório informar Nº Série!", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                 return;
             }
         }
     }
     else
     {
         MessageBox.Show("Obrigatório selecionar produto para cadastrar numero série.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
     }
 }
Exemplo n.º 22
0
 private decimal BuscarSaldoLocal(string Cd_empresa, string Cd_produto, string Cd_local)
 {
     return(TCN_LanEstoque.Busca_Saldo_Local(Cd_empresa, Cd_produto, Cd_local));
 }
Exemplo n.º 23
0
        public static void ProcessarEstoqueProdutoAcabado(TRegistro_ApontamentoProducao val,
                                                          decimal Qtd_batch,
                                                          decimal TotalCusto,
                                                          BancoDados.TObjetoBanco banco)
        {
            bool st_transacao = false;
            TCD_ApontamentoProducao qtb_ficha = new TCD_ApontamentoProducao();

            try
            {
                if (banco == null)
                {
                    st_transacao = qtb_ficha.CriarBanco_Dados(true);
                }
                else
                {
                    qtb_ficha.Banco_Dados = banco;
                }
                if ((!new CamadaDados.Estoque.Cadastros.TCD_CadProduto(qtb_ficha.Banco_Dados).ItemServico(val.LFormulaApontamento[0].Cd_produto)) &&
                    (!new CamadaDados.Estoque.Cadastros.TCD_CadProduto(qtb_ficha.Banco_Dados).ProdutoConsumoInterno(val.LFormulaApontamento[0].Cd_produto)))
                {
                    //Entrada produto acabado no estoque
                    CamadaDados.Estoque.TRegistro_LanEstoque rEstoque = new CamadaDados.Estoque.TRegistro_LanEstoque();
                    rEstoque.Cd_empresa    = val.Cd_empresa;
                    rEstoque.Cd_local      = val.LFormulaApontamento[0].Cd_local;
                    rEstoque.Cd_produto    = val.LFormulaApontamento[0].Cd_produto;
                    rEstoque.Ds_observacao = "ESTOQUE GRAVADO AUTOMATICAMENTE PELA PRODUCAO DO ITEM: " + val.LFormulaApontamento[0].Cd_produto.Trim();
                    rEstoque.Dt_lancto     = val.Dt_apontamento;
                    rEstoque.Qtd_entrada   = !val.LFormulaApontamento[0].St_decomposicao ? TCN_CadConvUnidade.ConvertUnid(val.LFormulaApontamento[0].Cd_unidade,
                                                                                                                          val.LFormulaApontamento[0].Cd_unidProduto,
                                                                                                                          val.Qtd_batch * val.LFormulaApontamento[0].Qt_produto,
                                                                                                                          3,
                                                                                                                          qtb_ficha.Banco_Dados) : decimal.Zero;
                    rEstoque.Qtd_saida = val.LFormulaApontamento[0].St_decomposicao ? TCN_CadConvUnidade.ConvertUnid(val.LFormulaApontamento[0].Cd_unidade,
                                                                                                                     val.LFormulaApontamento[0].Cd_unidProduto,
                                                                                                                     val.Qtd_batch * val.LFormulaApontamento[0].Qt_produto,
                                                                                                                     3,
                                                                                                                     qtb_ficha.Banco_Dados) : decimal.Zero;
                    rEstoque.Tp_lancto    = "N";
                    rEstoque.Tp_movimento = !val.LFormulaApontamento[0].St_decomposicao ? "E" : "S";
                    rEstoque.Vl_subtotal  = TotalCusto;
                    rEstoque.Vl_unitario  = rEstoque.Vl_subtotal > 0?(rEstoque.Vl_subtotal / (val.LFormulaApontamento[0].St_decomposicao ? rEstoque.Qtd_saida : rEstoque.Qtd_entrada)):0;
                    string ret_estoque = TCN_LanEstoque.GravarEstoque(rEstoque, qtb_ficha.Banco_Dados);
                    val.LApontamentoEstoque.Add(new TRegistro_Apontamento_Estoque()
                    {
                        Cd_empresa       = val.Cd_empresa,
                        Cd_produto       = val.LFormulaApontamento[0].Cd_produto,
                        Id_lanctoestoque = rEstoque.Id_lanctoestoque,
                        Vl_custocontabil = rEstoque.Vl_subtotal
                    });
                }
                if (st_transacao)
                {
                    qtb_ficha.Banco_Dados.Commit_Tran();
                }
            }
            catch (Exception ex)
            {
                if (st_transacao)
                {
                    qtb_ficha.Banco_Dados.RollBack_Tran();
                }
                throw new Exception("Erro: " + ex.Message.Trim());
            }
            finally
            {
                if (st_transacao)
                {
                    qtb_ficha.deletarBanco_Dados();
                }
            }
        }
Exemplo n.º 24
0
 private void Busca()
 {
     if (tcConsulta.SelectedTab.Equals(tpAnalitico))
     {
         string auxtpmov = string.Empty;
         string virg     = string.Empty;
         if (st_entrada.Checked)
         {
             auxtpmov = "'E'";
             virg     = ",";
         }
         if (st_saida.Checked)
         {
             auxtpmov += virg = "'S'";
             virg      = ",";
         }
         string auxtplancto = string.Empty;
         virg = string.Empty;
         if (cck_Normal.Checked)
         {
             auxtplancto = "'N'";
             virg        = ",";
         }
         if (cck_Provisao.Checked)
         {
             auxtplancto += virg + "'P'";
             virg         = ",";
         }
         if (cck_Manual.Checked)
         {
             auxtplancto += virg + "'M'";
             virg         = ",";
         }
         if (cck_Inventario.Checked)
         {
             auxtplancto += virg + "'I'";
             virg         = ",";
         }
         if (cck_Transferencia.Checked)
         {
             auxtplancto += virg + "'T'";
             virg         = ",";
         }
         if (cbCompDev.Checked)
         {
             auxtplancto += virg + "'L'";
             virg         = ",";
         }
         string auxstatus = string.Empty;
         if (st_ativo.Checked)
         {
             auxstatus = "'A'";
             virg      = ",";
         }
         if (st_cancelado.Checked)
         {
             auxstatus += virg + "'C'";
         }
         TList_RegLanEstoque lista = TCN_LanEstoque.Busca(cd_empresa.Text,
                                                          CD_Produto.Text,
                                                          cd_grupo.Text,
                                                          tp_produto.Text,
                                                          cd_marca.Text,
                                                          id_lanctoestoque.Text,
                                                          CD_Local.Text,
                                                          string.Empty,
                                                          auxtpmov,
                                                          auxtplancto,
                                                          DT_Inicial.Text,
                                                          DT_Final.Text,
                                                          auxstatus,
                                                          string.Empty,
                                                          string.Empty,
                                                          id_variedade.Text,
                                                          0,
                                                          string.Empty,
                                                          null);
         if ((lista != null) && (lista.Count > 0))
         {
             BS_Estoque.DataSource = lista;
         }
         else
         {
             BS_Estoque.Clear();
         }
     }
     else if (tcConsulta.SelectedTab.Equals(tpSintetico))
     {
         TpBusca[] filtro = new TpBusca[0];
         if (cd_empresa.Text.Trim() != string.Empty)
         {
             Array.Resize(ref filtro, filtro.Length + 1);
             filtro[filtro.Length - 1].vNM_Campo = "a.cd_empresa";
             filtro[filtro.Length - 1].vOperador = "=";
             filtro[filtro.Length - 1].vVL_Busca = "'" + cd_empresa.Text.Trim() + "'";
         }
         if (CD_Produto.Text.Trim() != string.Empty)
         {
             Array.Resize(ref filtro, filtro.Length + 1);
             filtro[filtro.Length - 1].vNM_Campo = "a.cd_produto";
             filtro[filtro.Length - 1].vOperador = "=";
             filtro[filtro.Length - 1].vVL_Busca = "'" + CD_Produto.Text.Trim() + "'";
         }
         if (cd_grupo.Text.Trim() != string.Empty)
         {
             Array.Resize(ref filtro, filtro.Length + 1);
             filtro[filtro.Length - 1].vNM_Campo = "b.cd_grupo";
             filtro[filtro.Length - 1].vOperador = "like";
             filtro[filtro.Length - 1].vVL_Busca = "'" + cd_grupo.Text.Trim() + "%'";
         }
         if (tp_produto.Text.Trim() != string.Empty)
         {
             Array.Resize(ref filtro, filtro.Length + 1);
             filtro[filtro.Length - 1].vNM_Campo = "b.tp_produto";
             filtro[filtro.Length - 1].vOperador = "=";
             filtro[filtro.Length - 1].vVL_Busca = "'" + tp_produto.Text.Trim() + "'";
         }
         if (cd_marca.Text.Trim() != string.Empty)
         {
             Array.Resize(ref filtro, filtro.Length + 1);
             filtro[filtro.Length - 1].vNM_Campo = "b.cd_marca";
             filtro[filtro.Length - 1].vOperador = "=";
             filtro[filtro.Length - 1].vVL_Busca = cd_marca.Text;
         }
         if (cbProdSaldoMinimo.Checked)
         {
             Array.Resize(ref filtro, filtro.Length + 1);
             filtro[filtro.Length - 1].vNM_Campo = string.Empty;
             filtro[filtro.Length - 1].vOperador = "exists";
             filtro[filtro.Length - 1].vVL_Busca = "(select 1 from TB_EST_Produto_QTDEstoque x " +
                                                   "where x.cd_produto = a.cd_produto " +
                                                   "and x.cd_empresa = a.cd_empresa " +
                                                   "and x.qt_min_estoque > a.tot_saldo) ";
         }
         if (cbItensSaldo.Checked)
         {
             Array.Resize(ref filtro, filtro.Length + 1);
             filtro[filtro.Length - 1].vNM_Campo = "a.Tot_Saldo";
             filtro[filtro.Length - 1].vOperador = ">";
             filtro[filtro.Length - 1].vVL_Busca = "0";
         }
         DataTable tb = new TCD_LanEstoque().BuscarEstoqueSintetico(filtro, string.Empty, "b.ds_produto");
         tb.Columns.Add(new DataColumn("saldo_futuro", typeof(decimal), "Tot_Saldo - Qtd_reservada"));
         bsSintetico.DataSource = tb;
         bsSintetico_PositionChanged(this, new EventArgs());
         //Buscar custo total do estoque
         tot_estoque.Text = TCN_LanEstoque.CustoTotalEstoque(string.IsNullOrEmpty(cd_empresa.Text) ? string.Empty : "'" + cd_empresa.Text.Trim() + "'", null).ToString("N2", new System.Globalization.CultureInfo("pt-BR", true));
     }
 }