Example #1
0
        public static string Gravar(TRegistro_CargaAvulsa val, BancoDados.TObjetoBanco banco)
        {
            bool            st_transacao = false;
            TCD_CargaAvulsa qtb_carga    = new TCD_CargaAvulsa();

            try
            {
                if (banco == null)
                {
                    st_transacao = qtb_carga.CriarBanco_Dados(true);
                }
                else
                {
                    qtb_carga.Banco_Dados = banco;
                }
                val.Id_cargastr = CamadaDados.TDataQuery.getPubVariavel(qtb_carga.Gravar(val), "@P_ID_CARGA");
                //Buscar Local Arm
                object obj = new CamadaDados.Estoque.Cadastros.TCD_CadLocalArm_X_Empresa(qtb_carga.Banco_Dados).BuscarEscalar(
                    new TpBusca[]
                {
                    new TpBusca()
                    {
                        vNM_Campo = "a.cd_empresa",
                        vOperador = "=",
                        vVL_Busca = "'" + val.Cd_empresa.Trim() + "'"
                    }
                }, "a.CD_Local");
                if (obj == null)
                {
                    throw new Exception("Não existe Local de armazenagem configurado para Empresa" + val.Cd_empresa.Trim() + "!");
                }
                //Item Carga
                val.lItensDel.ForEach(p =>
                {
                    //Cancelar Estoque
                    new CamadaDados.Estoque.TCD_LanEstoque(qtb_carga.Banco_Dados).Select(
                        new TpBusca[]
                    {
                        new TpBusca()
                        {
                            vNM_Campo = "a.cd_empresa",
                            vOperador = "=",
                            vVL_Busca = "'" + p.Cd_empresa.Trim() + "'"
                        },
                        new TpBusca()
                        {
                            vNM_Campo = "a.cd_produto",
                            vOperador = "=",
                            vVL_Busca = "'" + p.Cd_produto.Trim() + "'"
                        },
                        new TpBusca()
                        {
                            vNM_Campo = "a.id_lanctoestoque",
                            vOperador = "=",
                            vVL_Busca = p.Id_lanctoEstoqueS.ToString()
                        }
                    }, 0, string.Empty, string.Empty, string.Empty).ForEach(x => Estoque.TCN_LanEstoque.CancelarEstoque(x, qtb_carga.Banco_Dados));
                    TCN_ItensCargaAvulsa.Excluir(p, qtb_carga.Banco_Dados);
                });
                val.lItens.FindAll(p => p.Id_lanctoEstoqueS == null).ForEach(p =>
                {
                    //Buscar Vl.Médio
                    decimal vl_unit = Estoque.TCN_LanEstoque.Valor_Medio_Est_Produto(val.Cd_empresa,
                                                                                     p.Cd_produto,
                                                                                     qtb_carga.Banco_Dados);
                    //Gravar Estoque
                    string ret_est =
                        Estoque.TCN_LanEstoque.GravarEstoque(
                            new CamadaDados.Estoque.TRegistro_LanEstoque()
                    {
                        Cd_empresa    = val.Cd_empresa,
                        Cd_produto    = p.Cd_produto,
                        Cd_local      = obj.ToString(),
                        Dt_lancto     = CamadaDados.UtilData.Data_Servidor(),
                        Tp_movimento  = "S",
                        Qtd_entrada   = decimal.Zero,
                        Qtd_saida     = p.Quantidade,
                        Vl_unitario   = vl_unit,
                        Vl_subtotal   = vl_unit * p.Quantidade,
                        Tp_lancto     = "N",
                        St_registro   = "A",
                        Ds_observacao = "SAÍDA DE PRODUTOS CARGA Nº " + val.Id_cargastr,
                    }, qtb_carga.Banco_Dados);
                    p.Id_lanctoEstoqueS = Convert.ToDecimal(CamadaDados.TDataQuery.getPubVariavel(ret_est, "@@P_ID_LANCTOESTOQUE"));
                    p.Cd_empresa        = val.Cd_empresa;
                    p.Id_carga          = val.Id_carga;
                    TCN_ItensCargaAvulsa.Gravar(p, qtb_carga.Banco_Dados);
                });
                if (st_transacao)
                {
                    qtb_carga.Banco_Dados.Commit_Tran();
                }
                return(val.Id_cargastr);
            }
            catch (Exception ex)
            {
                if (st_transacao)
                {
                    qtb_carga.Banco_Dados.RollBack_Tran();
                }
                throw new Exception("Erro gravar Carga: " + ex.Message.Trim());
            }
            finally
            {
                if (st_transacao)
                {
                    qtb_carga.deletarBanco_Dados();
                }
            }
        }
Example #2
0
        public static string Excluir(TRegistro_CargaAvulsa val, BancoDados.TObjetoBanco banco)
        {
            bool            st_transacao = false;
            TCD_CargaAvulsa qtb_carga    = new TCD_CargaAvulsa();

            try
            {
                if (banco == null)
                {
                    st_transacao = qtb_carga.CriarBanco_Dados(true);
                }
                else
                {
                    qtb_carga.Banco_Dados = banco;
                }
                val.lItensDel.ForEach(p => TCN_ItensCargaAvulsa.Excluir(p, qtb_carga.Banco_Dados));
                val.lItens.ForEach(p =>
                {
                    //Cancelar Estoque - Saída
                    if (p.Id_lanctoEstoqueS.HasValue)
                    {
                        new CamadaDados.Estoque.TCD_LanEstoque(qtb_carga.Banco_Dados).Select(
                            new TpBusca[]
                        {
                            new TpBusca()
                            {
                                vNM_Campo = "a.cd_empresa",
                                vOperador = "=",
                                vVL_Busca = "'" + p.Cd_empresa.Trim() + "'"
                            },
                            new TpBusca()
                            {
                                vNM_Campo = "a.cd_produto",
                                vOperador = "=",
                                vVL_Busca = "'" + p.Cd_produto.Trim() + "'"
                            },
                            new TpBusca()
                            {
                                vNM_Campo = "a.id_lanctoestoque",
                                vOperador = "=",
                                vVL_Busca = p.Id_lanctoEstoqueS.ToString()
                            }
                        }, 0, string.Empty, string.Empty, string.Empty).ForEach(x => Estoque.TCN_LanEstoque.CancelarEstoque(x, qtb_carga.Banco_Dados));
                    }

                    //Cancelar Estoque - Devolução
                    if (p.Id_lanctoEstoqueD.HasValue)
                    {
                        new CamadaDados.Estoque.TCD_LanEstoque(qtb_carga.Banco_Dados).Select(
                            new TpBusca[]
                        {
                            new TpBusca()
                            {
                                vNM_Campo = "a.cd_empresa",
                                vOperador = "=",
                                vVL_Busca = "'" + p.Cd_empresa.Trim() + "'"
                            },
                            new TpBusca()
                            {
                                vNM_Campo = "a.cd_produto",
                                vOperador = "=",
                                vVL_Busca = "'" + p.Cd_produto.Trim() + "'"
                            },
                            new TpBusca()
                            {
                                vNM_Campo = "a.id_lanctoestoque",
                                vOperador = "=",
                                vVL_Busca = p.Id_lanctoEstoqueD.ToString()
                            }
                        }, 0, string.Empty, string.Empty, string.Empty).ForEach(x => Estoque.TCN_LanEstoque.CancelarEstoque(x, qtb_carga.Banco_Dados));
                    }
                    //Excluir Item
                    TCN_ItensCargaAvulsa.Excluir(p, qtb_carga.Banco_Dados);
                });
                qtb_carga.Excluir(val);
                if (st_transacao)
                {
                    qtb_carga.Banco_Dados.Commit_Tran();
                }
                return(val.Id_cargastr);
            }
            catch (Exception ex)
            {
                if (st_transacao)
                {
                    qtb_carga.Banco_Dados.RollBack_Tran();
                }
                throw new Exception("Erro excluir Carga: " + ex.Message.Trim());
            }
            finally
            {
                if (st_transacao)
                {
                    qtb_carga.deletarBanco_Dados();
                }
            }
        }