Exemplo n.º 1
0
        public static bool VlMedioEstoque(string vCd_empresa, string vCd_Produto, ref decimal vVl_medio, TObjetoBanco banco)
        {
            if (string.IsNullOrEmpty(vCd_empresa) ||
                string.IsNullOrEmpty(vCd_Produto))
            {
                return(false);
            }

            object obj = new TCD_LanEstoque(banco).BuscarSaldo_EstoqueEscalar(
                new TpBusca[]
            {
                new TpBusca()
                {
                    vNM_Campo = "a.cd_empresa",
                    vOperador = "=",
                    vVL_Busca = "'" + vCd_empresa.Trim() + "'"
                },
                new TpBusca()
                {
                    vNM_Campo = "a.cd_produto",
                    vOperador = "=",
                    vVL_Busca = "'" + vCd_Produto.Trim() + "'"
                }
            }, "a.vl_medio");

            if (obj != null)
            {
                vVl_medio = decimal.Parse(obj.ToString());
                return(true);
            }
            else
            {
                return(false);
            }
        }
Exemplo n.º 2
0
        public static decimal Valor_Medio_Est_Produto(string vCd_empresa,
                                                      string vCd_Produto,
                                                      TObjetoBanco banco)
        {
            if ((string.IsNullOrEmpty(vCd_empresa)) || (string.IsNullOrEmpty(vCd_Produto)))
            {
                return(0);
            }
            object obj = new TCD_LanEstoque(banco).BuscarSaldo_EstoqueEscalar(
                new TpBusca[]
            {
                new TpBusca()
                {
                    vNM_Campo = "a.cd_empresa",
                    vOperador = "=",
                    vVL_Busca = "'" + vCd_empresa.Trim() + "'"
                },
                new TpBusca()
                {
                    vNM_Campo = "a.cd_produto",
                    vOperador = "=",
                    vVL_Busca = "'" + vCd_Produto.Trim() + "'"
                }
            }, "a.vl_medio");

            return(obj == null ? decimal.Zero : Convert.ToDecimal(obj.ToString()));
        }
Exemplo n.º 3
0
 public static void Valores_EstoqueLocal(string vCd_empresa,
                                         string vCd_Produto,
                                         string vCd_local,
                                         ref decimal vTot_Entrada,
                                         ref decimal vTot_Saida,
                                         ref decimal vTot_Saldo,
                                         ref decimal vVL_Estoque_ent,
                                         ref decimal vVL_Estoque_sai,
                                         ref decimal vVL_SaldoEstoque,
                                         ref decimal vVL_Medio,
                                         TObjetoBanco banco)
 {
     if ((!string.IsNullOrEmpty(vCd_empresa)) &&
         (!string.IsNullOrEmpty(vCd_Produto)) &&
         (!string.IsNullOrEmpty(vCd_local)))
     {
         System.Data.DataTable tb_estoque = new TCD_LanEstoque(banco).BuscarSaldo_EstoqueLocal(
             new TpBusca[]
         {
             new TpBusca()
             {
                 vNM_Campo = "a.cd_empresa",
                 vOperador = "=",
                 vVL_Busca = "'" + vCd_empresa.Trim() + "'"
             },
             new TpBusca()
             {
                 vNM_Campo = "a.cd_produto",
                 vOperador = "=",
                 vVL_Busca = "'" + vCd_Produto.Trim() + "'"
             },
             new TpBusca()
             {
                 vNM_Campo = "a.cd_local",
                 vOperador = "=",
                 vVL_Busca = "'" + vCd_local.Trim() + "'"
             }
         }, 0, string.Empty, string.Empty);
         if (tb_estoque != null)
         {
             if (tb_estoque.Rows.Count > 0)
             {
                 try
                 {
                     vTot_Entrada     = Convert.ToDecimal(tb_estoque.Rows[0]["tot_entrada"].ToString());
                     vTot_Saida       = Convert.ToDecimal(tb_estoque.Rows[0]["tot_saida"].ToString());
                     vTot_Saldo       = Convert.ToDecimal(tb_estoque.Rows[0]["tot_saldo"].ToString());
                     vVL_Estoque_ent  = Convert.ToDecimal(tb_estoque.Rows[0]["vl_estoque_ent"].ToString());
                     vVL_Estoque_sai  = Convert.ToDecimal(tb_estoque.Rows[0]["vl_estoque_sai"].ToString());
                     vVL_SaldoEstoque = Convert.ToDecimal(tb_estoque.Rows[0]["vl_saldoEstoque"].ToString());
                     vVL_Medio        = Convert.ToDecimal(tb_estoque.Rows[0]["vl_medio"].ToString());
                 }
                 catch
                 {}
             }
         }
     }
 }
Exemplo n.º 4
0
        public static bool SaldoEstoqueLocal(string vCD_Empresa, string vCD_Produto, string vCd_local, ref decimal vSaldo, TObjetoBanco banco)
        {
            if (string.IsNullOrEmpty(vCD_Empresa) || string.IsNullOrEmpty(vCD_Produto))
            {
                return(false);
            }

            if ((!new TCD_CadProduto(banco).ItemServico(vCD_Produto)) &&
                (!new TCD_CadProduto(banco).ProdutoConsumoInterno(vCD_Produto)))
            {
                TpBusca[] vBusca = new TpBusca[2];
                vBusca[0].vNM_Campo = "a.CD_Empresa";
                vBusca[0].vVL_Busca = "'" + vCD_Empresa + "'";
                vBusca[0].vOperador = "=";

                vBusca[1].vNM_Campo = "a.CD_Produto";
                vBusca[1].vVL_Busca = "'" + vCD_Produto + "'";
                vBusca[1].vOperador = "=";
                if (!string.IsNullOrEmpty(vCd_local))
                {
                    Array.Resize(ref vBusca, vBusca.Length + 1);
                    vBusca[vBusca.Length - 1].vNM_Campo = "a.CD_Local";
                    vBusca[vBusca.Length - 1].vVL_Busca = "'" + vCd_local + "'";
                    vBusca[vBusca.Length - 1].vOperador = "=";

                    object obj = new TCD_LanEstoque("SqlCodeBuscaSaldo_EstoqueLocal", banco).BuscarEscalar(vBusca, "isnull(a.tot_saldo, 0)");
                    if (obj == null)
                    {
                        return(false);
                    }
                    else
                    {
                        vSaldo = Math.Round(Convert.ToDecimal(obj.ToString()), 3, MidpointRounding.AwayFromZero);
                        return(true);
                    }
                }
                else
                {
                    object obj = new TCD_LanEstoque("SqlCodeBuscaSaldo_Estoque", banco).BuscarEscalar(vBusca, "isnull(a.tot_saldo, 0)");
                    if (obj == null)
                    {
                        return(false);
                    }
                    else
                    {
                        vSaldo = Math.Round(Convert.ToDecimal(obj.ToString()), 3, MidpointRounding.AwayFromZero);
                        return(true);
                    }
                }
            }
            else
            {
                return(false);
            }
        }
Exemplo n.º 5
0
        public static decimal Busca_Saldo_Local(string vCD_Empresa, string vCD_Produto, string vCD_Local, TObjetoBanco banco)
        {
            try
            {
                TpBusca[] vBusca = new TpBusca[0];
                if (vCD_Empresa.Trim() != "")
                {
                    Array.Resize(ref vBusca, vBusca.Length + 1);
                    vBusca[vBusca.Length - 1].vNM_Campo = "a.CD_Empresa";
                    vBusca[vBusca.Length - 1].vOperador = "=";
                    vBusca[vBusca.Length - 1].vVL_Busca = "'" + vCD_Empresa + "'";
                }

                if (vCD_Produto.Trim() != "")
                {
                    Array.Resize(ref vBusca, vBusca.Length + 1);
                    vBusca[vBusca.Length - 1].vNM_Campo = "a.CD_Produto";
                    vBusca[vBusca.Length - 1].vOperador = "=";
                    vBusca[vBusca.Length - 1].vVL_Busca = "'" + vCD_Produto + "'";
                }

                if (vCD_Local.Trim() != "")
                {
                    Array.Resize(ref vBusca, vBusca.Length + 1);
                    vBusca[vBusca.Length - 1].vNM_Campo = "a.CD_Local";
                    vBusca[vBusca.Length - 1].vOperador = "=";
                    vBusca[vBusca.Length - 1].vVL_Busca = "'" + vCD_Local + "'";
                }


                System.Data.DataTable qtb_Saldo_Local = new TCD_LanEstoque(banco).BuscarSaldo_EstoqueLocal(vBusca, 0, "a.tot_saldo", string.Empty);
                string saldo = qtb_Saldo_Local.Rows[0][0].ToString();
                if (string.IsNullOrEmpty(saldo))
                {
                    saldo = "0";
                }

                return(Convert.ToDecimal(saldo));
            }
            catch
            {
                return(0);
            }
            finally
            {
            }
        }
Exemplo n.º 6
0
        public static bool Vl_Saldo_Estoque(string vCd_empresa, string vCd_Produto, ref decimal vVl_Saldo_Estoque, TObjetoBanco banco)
        {
            if (string.IsNullOrEmpty(vCd_empresa) || string.IsNullOrEmpty(vCd_Produto))
            {
                return(false);
            }
            TpBusca[] filtro = new TpBusca[2];
            filtro[0].vNM_Campo = "a.CD_Empresa";
            filtro[0].vVL_Busca = "'" + vCd_empresa + "'";
            filtro[0].vOperador = "=";
            filtro[1].vNM_Campo = "a.CD_Produto";
            filtro[1].vVL_Busca = "'" + vCd_Produto + "'";
            filtro[1].vOperador = "=";

            System.Data.DataTable tb_estoque = new TCD_LanEstoque(banco).BuscarSaldo_Estoque(filtro, 0, "vl_saldoestoque", string.Empty);
            if (tb_estoque != null)
            {
                if (tb_estoque.Rows.Count > 0)
                {
                    try
                    {
                        vVl_Saldo_Estoque = Convert.ToDecimal(tb_estoque.Rows[0]["vl_saldoestoque"].ToString());
                        return(true);
                    }
                    catch
                    {
                        return(false);
                    }
                }
                else
                {
                    return(false);
                }
            }
            else
            {
                return(false);
            }
        }
Exemplo n.º 7
0
        public static string AcertarVlMedio(TRegistro_LanEstoque val, TObjetoBanco banco)
        {
            bool           st_transacao = false;
            TCD_LanEstoque qtb_estoque  = new TCD_LanEstoque();

            try
            {
                if (banco == null)
                {
                    st_transacao = qtb_estoque.CriarBanco_Dados(true);
                }
                else
                {
                    qtb_estoque.Banco_Dados = banco;
                }
                string retorno = qtb_estoque.AcertarVlMedio(val);
                if (st_transacao)
                {
                    qtb_estoque.Banco_Dados.Commit_Tran();
                }
                return(retorno);
            }
            catch (Exception ex)
            {
                if (st_transacao)
                {
                    qtb_estoque.Banco_Dados.RollBack_Tran();
                }
                throw new Exception("Erro acertar valor medio: " + ex.Message.Trim());
            }
            finally
            {
                if (st_transacao)
                {
                    qtb_estoque.deletarBanco_Dados();
                }
            }
        }
Exemplo n.º 8
0
        public static void CancelarEstoque(TRegistro_LanEstoque val, TObjetoBanco banco)
        {
            bool           st_transacao = false;
            TCD_LanEstoque qtb_est      = new TCD_LanEstoque();

            try
            {
                if (banco == null)
                {
                    st_transacao = qtb_est.CriarBanco_Dados(true);
                }
                else
                {
                    qtb_est.Banco_Dados = banco;
                }
                qtb_est.CancelarEstoque(val);
                if (st_transacao)
                {
                    qtb_est.Banco_Dados.Commit_Tran();
                }
            }
            catch (Exception ex)
            {
                if (st_transacao)
                {
                    qtb_est.Banco_Dados.RollBack_Tran();
                }
                throw new Exception("Erro cancelar estoque: " + ex.Message.Trim());
            }
            finally
            {
                if (st_transacao)
                {
                    qtb_est.deletarBanco_Dados();
                }
            }
        }
Exemplo n.º 9
0
        public static decimal CustoTotalEstoque(string vCd_empresa, TObjetoBanco banco)
        {
            TpBusca[] filtro = new TpBusca[0];
            if (vCd_empresa.Trim() != string.Empty)
            {
                Array.Resize(ref filtro, filtro.Length + 1);
                filtro[filtro.Length - 1].vNM_Campo = "a.cd_empresa";
                filtro[filtro.Length - 1].vOperador = "in";
                filtro[filtro.Length - 1].vVL_Busca = "(" + vCd_empresa.Trim() + ")";
            }
            else
            {
                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_div_usuario_x_empresa x " +
                                                      "where x.cd_empresa = a.cd_empresa " +
                                                      "and ((x.login = '******') or " +
                                                      "(exists(select 1 from tb_div_usuario_x_grupos y " +
                                                      "         where y.logingrp = x.login and y.loginusr = '******'))))";
            }
            object obj = new TCD_LanEstoque(banco).BuscarEstoqueSintenticoEscalar(filtro, "ISNULL(SUM(isnull(a.tot_saldo,0) * isnull(a.vl_medio,0)), 0)");

            if (obj != null)
            {
                try
                {
                    return(Convert.ToDecimal(obj.ToString()));
                }
                catch
                { return(decimal.Zero); }
            }
            else
            {
                return(decimal.Zero);
            }
        }
Exemplo n.º 10
0
        public static decimal Vl_MedioLocal(string vCd_empresa,
                                            string vCd_produto,
                                            string vCd_local,
                                            TObjetoBanco banco)
        {
            if (string.IsNullOrEmpty(vCd_empresa) ||
                string.IsNullOrEmpty(vCd_produto) ||
                string.IsNullOrEmpty(vCd_local))
            {
                return(decimal.Zero);
            }
            object obj = new TCD_LanEstoque("SqlCodeBuscaSaldo_EstoqueLocal", banco).BuscarEscalar(
                new TpBusca[]
            {
                new TpBusca()
                {
                    vNM_Campo = "a.cd_empresa",
                    vOperador = "=",
                    vVL_Busca = "'" + vCd_empresa.Trim() + "'"
                },
                new TpBusca()
                {
                    vNM_Campo = "a.cd_produto",
                    vOperador = "=",
                    vVL_Busca = "'" + vCd_produto.Trim() + "'"
                },
                new TpBusca()
                {
                    vNM_Campo = "a.cd_local",
                    vOperador = "=",
                    vVL_Busca = "'" + vCd_local.Trim() + "'"
                }
            }, "a.vl_medio");

            return(obj == null ? decimal.Zero : decimal.Parse(obj.ToString()));
        }
Exemplo n.º 11
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.º 12
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));
     }
 }
Exemplo n.º 13
0
        private void bbAjustarGrade_Click(object sender, EventArgs e)
        {
            if (bsSintetico.Current != null)
            {
                if (new CamadaDados.Estoque.Cadastros.TCD_CadProduto().BuscarEscalar(
                        new TpBusca[]
                {
                    new TpBusca()
                    {
                        vNM_Campo = "a.cd_produto",
                        vOperador = "=",
                        vVL_Busca = "'" + (bsSintetico.Current as DataRowView)["cd_produto"].ToString().Trim() + "'"
                    },
                    new TpBusca()
                    {
                        vNM_Campo = "a.id_caracteristicaH",
                        vOperador = "is not",
                        vVL_Busca = "null"
                    }
                }, "1") != null)
                {
                    //Buscar lançamentos de estoque que não estejam amarrados a grade
                    TList_RegLanEstoque lEst = new TCD_LanEstoque().Select(
                        new TpBusca[]
                    {
                        new TpBusca()
                        {
                            vNM_Campo = "isnull(a.st_registro, 'A')",
                            vOperador = "<>",
                            vVL_Busca = "'C'"
                        },
                        new TpBusca()
                        {
                            vNM_Campo = "a.cd_produto",
                            vOperador = "=",
                            vVL_Busca = "'" + (bsSintetico.Current as DataRowView)["cd_produto"].ToString().Trim() + "'"
                        }, new TpBusca()
                        {
                            vOperador = " not Exists",
                            vVL_Busca = "( select 1 from TB_EST_GradeEstoque x where x.Id_LanctoEstoque = a.Id_LanctoEstoque   )"
                        }
                    }, 0, string.Empty, string.Empty, string.Empty);
                    if (lEst.Count > 0)
                    {
                        lEst.ForEach(x =>
                        {
                            using (Proc_Commoditties.TFGradeProduto fGrade = new Proc_Commoditties.TFGradeProduto())
                            {
                                CamadaDados.Estoque.Cadastros.TRegistro_CadProduto prod = new CamadaDados.Estoque.Cadastros.TRegistro_CadProduto();
                                prod = CamadaNegocio.Estoque.Cadastros.TCN_CadProduto.Busca_Produto_Codigo((bsSintetico.Current as DataRowView)["cd_produto"].ToString(), null);

                                fGrade.pId_caracteristica = prod.Id_caracteristicaH.ToString();
                                fGrade.pCd_empresa        = (bsSintetico.Current as DataRowView)["cd_empresa"].ToString();
                                fGrade.pCd_produto        = (bsSintetico.Current as DataRowView)["cd_produto"].ToString();
                                fGrade.pDs_produto        = (bsSintetico.Current as DataRowView)["ds_produto"].ToString();
                                fGrade.pTp_movimento      = x.Tp_movimento;
                                fGrade.pQuantidade        = x.Tp_movimento.ToString().Trim().ToUpper().Equals("E") ? x.Qtd_entrada : x.Qtd_saida;
                                if (fGrade.ShowDialog() == DialogResult.OK)
                                {
                                    fGrade.lGrade.ForEach(p =>
                                    {
                                        TCN_GradeEstoque.Gravar(new TRegistro_GradeEstoque()
                                        {
                                            Cd_empresa        = (bsSintetico.Current as DataRowView)["cd_empresa"].ToString(),
                                            Cd_produto        = (bsSintetico.Current as DataRowView)["cd_produto"].ToString(),
                                            Id_lanctoestoque  = x.Id_lanctoestoque,
                                            Id_item           = p.Id_item,
                                            Id_caracteristica = p.Id_caracteristica,
                                            quantidade        = p.Vl_mov
                                        }, null);
                                    });
                                    bsSintetico_PositionChanged(this, new EventArgs());
                                }
                                else
                                {
                                    MessageBox.Show("Obrigatório informar grade.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                    return;
                                }
                            }
                        });
                    }
                }
            }
        }
Exemplo n.º 14
0
        public static string Baixar(TRegistro_Lan_Provisao_Estoque val, TObjetoBanco banco)
        {
            TCD_Lan_Provisao_Estoque QTB_Provisao_Estoque = new TCD_Lan_Provisao_Estoque();
            bool pode_liberar = false;

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

                //Gravar Lancamento Estoque da Baixa
                //Buscar lancamento estoque origem
                TList_RegLanEstoque lEstoque =
                    new TCD_LanEstoque(QTB_Provisao_Estoque.Banco_Dados).Select(
                        new TpBusca[]
                {
                    new TpBusca()
                    {
                        vNM_Campo = "a.tp_movimento",
                        vOperador = "=",
                        vVL_Busca = "'E'",
                    },
                    new TpBusca()
                    {
                        vNM_Campo = "isnull(a.st_registro, 'A')",
                        vOperador = "<>",
                        vVL_Busca = "'C'",
                    },
                    new TpBusca()
                    {
                        vNM_Campo = string.Empty,
                        vOperador = "exists",
                        vVL_Busca = "(select 1 from tb_est_prov_x_estoque x " +
                                    "where x.cd_empresa = a.cd_empresa " +
                                    "and x.cd_produto = a.cd_produto " +
                                    "and x.id_lanctoestoque = a.id_lanctoestoque " +
                                    "and x.id_provisao = " + val.Id_provisao.Value.ToString() + ")"
                    }
                }, 1, string.Empty, string.Empty, string.Empty);
                if (lEstoque.Count > 0)
                {
                    string retorno = TCN_LanEstoque.GravarEstoque(
                        new TRegistro_LanEstoque()
                    {
                        Cd_empresa   = lEstoque[0].Cd_empresa,
                        Cd_local     = lEstoque[0].Cd_local,
                        Cd_produto   = lEstoque[0].Cd_produto,
                        Dt_lancto    = CamadaDados.UtilData.Data_Servidor(),
                        Qtd_entrada  = decimal.Zero,
                        Qtd_saida    = val.Saldo_Provisao,
                        Tp_lancto    = "P",
                        Tp_movimento = "S",
                        Vl_unitario  = Math.Round(lEstoque.Average(x => decimal.Divide(x.Vl_subtotal, x.Qtd_entrada)), 7, MidpointRounding.AwayFromZero),
                        Vl_subtotal  = val.Saldo_Provisao * Math.Round(lEstoque.Average(x => decimal.Divide(x.Vl_subtotal, x.Qtd_entrada)), 7, MidpointRounding.AwayFromZero)
                    }, QTB_Provisao_Estoque.Banco_Dados);
                    //Gravar Provisao X Estoque
                    TCN_Prov_X_Estoque.Gravar(new TRegistro_Lan_Provisao_X_Estoque()
                    {
                        Cd_empresa       = CamadaDados.TDataQuery.getPubVariavel(retorno, "@P_CD_EMPRESA"),
                        Cd_produto       = CamadaDados.TDataQuery.getPubVariavel(retorno, "@P_CD_PRODUTO"),
                        Id_lanctoestoque = Convert.ToDecimal(CamadaDados.TDataQuery.getPubVariavel(retorno, "@@P_ID_LANCTOESTOQUE")),
                        Id_provisao      = val.Id_provisao
                    }, QTB_Provisao_Estoque.Banco_Dados);

                    if (pode_liberar)
                    {
                        QTB_Provisao_Estoque.Banco_Dados.Commit_Tran();
                    }
                    return(retorno);
                }
                else
                {
                    throw new Exception("Estoque de origem da provisão não foi encontrado.");
                }
            }
            catch (Exception ex)
            {
                if (pode_liberar)
                {
                    QTB_Provisao_Estoque.Banco_Dados.RollBack_Tran();
                }
                throw new Exception("Erro baixa provisao: " + ex.Message.Trim());
            }
            finally
            {
                if (pode_liberar)
                {
                    QTB_Provisao_Estoque.deletarBanco_Dados();
                }
            }
        }
Exemplo n.º 15
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.º 16
0
        public static string DeletaLanInsumos(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 = "";

                TlistLanInsumos_X_Estoque listaEstoque = TCN_LanInsumos_X_Estoque.Busca(val.CD_Empresa, val.CD_Produto, 0, Convert.ToDecimal(val.ID_Lancto), 0, Convert.ToDecimal(val.ID_LanctoAtiv));

                if (listaEstoque != null && listaEstoque.Count > 0)
                {
                    if (val.ID_Requisicao <= 0 || val.ID_Requisicao == null)
                    {
                        //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.Id_lanctoestoque = listaEstoque[0].Id_LanctoEstoque;
                        reg_estoque.Qtd_saida        = val.Quantidade;
                        reg_estoque.Cd_empresa       = val.CD_Empresa;
                        reg_estoque.St_registro      = "C";
                        reg_estoque.Tp_movimento     = "S";

                        TCD_LanEstoque TCD_Estoque = new TCD_LanEstoque();
                        TCD_Estoque.Banco_Dados = banco;
                        string ret_estoque = TCD_Estoque.DeletaEstoque(reg_estoque);
                    }


                    //MANDA GRAVAR A INSUMO
                    TRegistro_LanInsumos_X_Estoque InsumoEstoque = new TRegistro_LanInsumos_X_Estoque();
                    InsumoEstoque.Id_Lancto     = Convert.ToDecimal(val.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;
                    InsumoEstoque.Id_LanctoEstoque = listaEstoque[0].Id_LanctoEstoque;

                    TCD_LanInsumos_X_Estoque TCD_InsumoEstoque = new TCD_LanInsumos_X_Estoque();
                    TCD_InsumoEstoque.Banco_Dados = banco;
                    TCD_InsumoEstoque.DeletaLanInsumos_X_Estoque(InsumoEstoque);

                    retorno = lanInsumo.DeletaLanInsumos(val);
                }
                else
                {
                    throw new Exception("Não foi possível remover o insumo, 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.º 17
0
        public static string GravarEstoque(TRegistro_LanEstoque val, TObjetoBanco banco)
        {
            //Validar Campos obrigatorios para gravar estoque
            if (string.IsNullOrEmpty(val.Cd_empresa))
            {
                throw new Exception("Campo Obrigatorio !\r\n" +
                                    "Campo: CD_Empresa\r\n" +
                                    "Método: GravarEstoque\r\n" +
                                    "Classe: TCN_LanEstoque");
            }
            if (string.IsNullOrEmpty(val.Cd_produto))
            {
                throw new Exception("Campo Obrigatorio !\r\n" +
                                    "Campo: CD_Produto\r\n" +
                                    "Método: GravarEstoque\r\n" +
                                    "Classe: TCN_LanEstoque");
            }
            if (val.Dt_lancto.Equals(new DateTime()))
            {
                throw new Exception("Campo Obrigatorio !\r\n" +
                                    "Campo: DT_Lancto\r\n" +
                                    "Método: GravarEstoque\r\n" +
                                    "Classe: TCN_LanEstoque");
            }
            if (string.IsNullOrEmpty(val.Tp_movimento))
            {
                throw new Exception("Campo Obrigatorio !\r\n" +
                                    "Campo: TP_Movimento\r\n" +
                                    "Método: GravarEstoque\r\n" +
                                    "Classe: TCN_LanEstoque");
            }
            if (string.IsNullOrEmpty(val.Tp_lancto))
            {
                throw new Exception("Campo Obrigatorio !\r\n" +
                                    "Campo: TP_Lancto\r\n" +
                                    "Método: GravarEstoque\r\n" +
                                    "Classe: TCN_LanEstoque");
            }
            bool           pode_liberar = false;
            TCD_LanEstoque qtb_estoque  = new TCD_LanEstoque();

            try
            {
                if (banco == null)
                {
                    pode_liberar = qtb_estoque.CriarBanco_Dados(true);
                }
                else
                {
                    qtb_estoque.Banco_Dados = banco;
                }
                //Gravar Estoque
                string retorno = string.Empty;
                if ((!new TCD_CadProduto(qtb_estoque.Banco_Dados).ItemServico(val.Cd_produto)) &&
                    (!new TCD_CadProduto(qtb_estoque.Banco_Dados).ProdutoConsumoInterno(val.Cd_produto)))
                {
                    if (val.Tp_movimento.Trim().Equals("S"))
                    {
                        decimal saldo = 0;
                        if (BloquearEstoqueNegativo(val.Cd_empresa, val.Cd_produto, val.Cd_local, val.Qtd_saida, ref saldo, qtb_estoque.Banco_Dados))
                        {
                            throw new Exception("Saldo insuficiente para baixar estoque do produto:\r\n" +
                                                val.Cd_produto + " - " + val.Ds_produto + "\r\n" +
                                                "No local de armazenagem: " + val.Cd_local.Trim() + "-" + val.Ds_local.Trim() + "\r\n" +
                                                "Saldo Disponivel: " + saldo.ToString("### ### ##0.000") + "\r\n" +
                                                "Saldo Requerido: " + val.Qtd_saida.ToString("### ### ##0.000") + "\r\n" +
                                                "Informe o Depto Contabil para lançamento  da provisão de estoque !");
                        }
                    }
                    retorno = qtb_estoque.GravaEstoque(val);
                    val.Id_lanctoestoque = decimal.Parse(CamadaDados.TDataQuery.getPubVariavel(retorno, "@@P_ID_LANCTOESTOQUE"));
                    //Gravar Lote Anvisa
                    val.lMovLoteAnvisa.ForEach(p =>
                    {
                        p.Id_lanctoestoque = val.Id_lanctoestoque;
                        Faturamento.LoteAnvisa.TCN_MovLoteAnvisa.Gravar(p, qtb_estoque.Banco_Dados);
                    });
                    //Gravar Grade
                    val.lGrade.ForEach(p => TCN_GradeEstoque.Gravar(new TRegistro_GradeEstoque()
                    {
                        Cd_empresa        = val.Cd_empresa,
                        Cd_produto        = val.Cd_produto,
                        Id_lanctoestoque  = val.Id_lanctoestoque,
                        Id_caracteristica = p.Id_caracteristica,
                        Id_item           = p.Id_item,
                        quantidade        = p.Vl_mov
                    }, qtb_estoque.Banco_Dados));
                    if (pode_liberar)
                    {
                        qtb_estoque.Banco_Dados.Commit_Tran();
                    }
                    return(retorno);
                }
                return(string.Empty);
            }
            catch (Exception ex)
            {
                if (pode_liberar)
                {
                    qtb_estoque.Banco_Dados.RollBack_Tran();
                }
                throw new Exception("Erro gravar estoque: " + ex.Message.Trim());
            }
            finally
            {
                if (pode_liberar)
                {
                    qtb_estoque.deletarBanco_Dados();
                }
            }
        }
Exemplo n.º 18
0
        public static string DeletarEstoque(TRegistro_LanEstoque val, TObjetoBanco banco)
        {
            if (val.Cd_empresa.Trim().Equals(""))
            {
                throw new Exception("Campo Obrigatorio !\r\n" +
                                    "Campo: CD_Empresa\r\n" +
                                    "Método: DeletarEstoque\r\n" +
                                    "Classe: TCN_LanEstoque");
            }
            if (val.Cd_produto.Trim().Equals(""))
            {
                throw new Exception("Campo Obrigatorio !\r\n" +
                                    "Campo: CD_Produto\r\n" +
                                    "Método: DeletarEstoque\r\n" +
                                    "Classe: TCN_LanEstoque");
            }
            if (val.Id_lanctoestoque < 1)
            {
                throw new Exception("Campo Obrigatorio !\r\n" +
                                    "Campo: ID_LanctoEstoque\r\n" +
                                    "Método: DeletarEstoque\r\n" +
                                    "Classe: TCN_LanEstoque");
            }
            string         retorno      = string.Empty;
            bool           pode_liberar = false;
            TCD_LanEstoque qtb_estoque  = new TCD_LanEstoque();

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

                retorno = qtb_estoque.DeletaEstoque(val);
                if (pode_liberar)
                {
                    qtb_estoque.Banco_Dados.Commit_Tran();
                }
                return(retorno);
            }
            catch
            {
                if (pode_liberar)
                {
                    qtb_estoque.Banco_Dados.RollBack_Tran();
                }
                return(string.Empty);
            }
            finally
            {
                if (pode_liberar)
                {
                    qtb_estoque.deletarBanco_Dados();
                }
            }
        }