예제 #1
0
        public static string Gravar(TRegistro_CargaEntrega val, BancoDados.TObjetoBanco banco)
        {
            bool             st_transacao = false;
            TCD_CargaEntrega qtb_carga    = new TCD_CargaEntrega();

            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");
                //Item Carga
                val.lItensDel.ForEach(p => TCN_ItensCarga.Excluir(p, qtb_carga.Banco_Dados));
                val.lItens.ForEach(p =>
                {
                    if (p.St_processar)
                    {
                        p.Id_carga = val.Id_carga;
                        TCN_ItensCarga.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();
                }
            }
        }
예제 #2
0
        public static string Excluir(TRegistro_CargaEntrega val, BancoDados.TObjetoBanco banco)
        {
            bool             st_transacao = false;
            TCD_CargaEntrega qtb_carga    = new TCD_CargaEntrega();

            try
            {
                if (banco == null)
                {
                    st_transacao = qtb_carga.CriarBanco_Dados(true);
                }
                else
                {
                    qtb_carga.Banco_Dados = banco;
                }

                val.lItens.ForEach(p =>
                {
                    p.St_registro = "C";
                    p.Quantidade  = decimal.Zero;
                    TCN_ItensCarga.Gravar(p, qtb_carga.Banco_Dados);
                });
                val.St_registro = "C";
                qtb_carga.Gravar(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();
                }
            }
        }
예제 #3
0
        public static string ProcessarEntrega(TRegistro_CargaEntrega val, BancoDados.TObjetoBanco banco)
        {
            bool             st_transacao = false;
            TCD_CargaEntrega qtb_carga    = new TCD_CargaEntrega();

            try
            {
                if (banco == null)
                {
                    st_transacao = qtb_carga.CriarBanco_Dados(true);
                }
                else
                {
                    qtb_carga.Banco_Dados = banco;
                }


                //Processar estoque dos itens Entrega
                val.lItens.ForEach(p =>
                {
                    if (p.St_processar)
                    {
                        //Buscar Local de Armazenagem
                        object cd_local = new CamadaDados.Faturamento.Entrega.TCD_ItensRomaneio(qtb_carga.Banco_Dados).BuscarEscalar(
                            new Utils.TpBusca[]
                        {
                            new Utils.TpBusca()
                            {
                                vNM_Campo = "a.CD_empresa",
                                vOperador = "=",
                                vVL_Busca = "'" + p.Cd_empresa + "'"
                            },
                            new Utils.TpBusca()
                            {
                                vNM_Campo = "a.ID_Romaneio",
                                vOperador = "=",
                                vVL_Busca = "'" + p.Id_romaneiostr + "'"
                            },
                            new Utils.TpBusca()
                            {
                                vNM_Campo = "a.ID_ItemRomaneio",
                                vOperador = "=",
                                vVL_Busca = "'" + p.Id_itemromaneiostr + "'"
                            }
                        }, "a.cd_local");

                        //Buscar VL.Médio
                        decimal vl_medio = CamadaNegocio.Estoque.TCN_LanEstoque.Valor_Medio_Est_Produto(p.Cd_empresa, p.Cd_produto, qtb_carga.Banco_Dados);
                        //Criar objeto estoque
                        CamadaDados.Estoque.TRegistro_LanEstoque rEstoque = new CamadaDados.Estoque.TRegistro_LanEstoque();
                        rEstoque.Cd_empresa   = p.Cd_empresa;
                        rEstoque.Cd_produto   = p.Cd_produto;
                        rEstoque.Cd_local     = cd_local.ToString();
                        rEstoque.Dt_lancto    = CamadaDados.UtilData.Data_Servidor();
                        rEstoque.Tp_movimento = "S";
                        rEstoque.Qtd_entrada  = decimal.Zero;
                        rEstoque.Qtd_saida    = p.QTD_Saida;
                        rEstoque.Vl_unitario  = vl_medio;
                        rEstoque.Vl_subtotal  = p.QTD_Saida * vl_medio;
                        rEstoque.Tp_lancto    = "N";
                        rEstoque.St_registro  = "A";

                        //Gravar Estoque
                        CamadaNegocio.Estoque.TCN_LanEstoque.GravarEstoque(rEstoque, qtb_carga.Banco_Dados);
                        p.Id_lanctoEstoque = rEstoque.Id_lanctoestoque;
                        TCN_ItensCarga.Gravar(p, qtb_carga.Banco_Dados);
                    }
                });
                val.St_registro = "E";
                qtb_carga.Gravar(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 Entregar Carga: " + ex.Message.Trim());
            }
            finally
            {
                if (st_transacao)
                {
                    qtb_carga.deletarBanco_Dados();
                }
            }
        }
예제 #4
0
        public static void EstornarProcEntrega(TRegistro_CargaEntrega val, BancoDados.TObjetoBanco banco)
        {
            bool             st_transacao = false;
            TCD_CargaEntrega qtb_carga    = new TCD_CargaEntrega();

            try
            {
                if (banco == null)
                {
                    st_transacao = qtb_carga.CriarBanco_Dados(true);
                }
                else
                {
                    qtb_carga.Banco_Dados = banco;
                }
                val.lItens.ForEach(p =>
                {
                    if (p.Id_lanctoEstoque.HasValue)
                    {
                        CamadaNegocio.Estoque.TCN_LanEstoque.CancelarEstoque(CamadaNegocio.Estoque.TCN_LanEstoque.Busca(p.Cd_empresa,
                                                                                                                        p.Cd_produto,
                                                                                                                        string.Empty,
                                                                                                                        string.Empty,
                                                                                                                        string.Empty,
                                                                                                                        p.Id_lanctoEstoque.Value.ToString(),
                                                                                                                        string.Empty,
                                                                                                                        string.Empty,
                                                                                                                        string.Empty,
                                                                                                                        string.Empty,
                                                                                                                        string.Empty,
                                                                                                                        string.Empty,
                                                                                                                        string.Empty,
                                                                                                                        string.Empty,
                                                                                                                        string.Empty,
                                                                                                                        string.Empty,
                                                                                                                        1,
                                                                                                                        string.Empty,
                                                                                                                        qtb_carga.Banco_Dados)[0], qtb_carga.Banco_Dados);
                    }
                    p.Qtd_entregue  = decimal.Zero;
                    p.Ds_observacao = string.Empty;
                    TCN_ItensCarga.Gravar(p, qtb_carga.Banco_Dados);
                });
                val.St_registro = "A";
                qtb_carga.Gravar(val);
                if (st_transacao)
                {
                    qtb_carga.Banco_Dados.Commit_Tran();
                }
            }
            catch (Exception ex)
            {
                if (st_transacao)
                {
                    qtb_carga.Banco_Dados.RollBack_Tran();
                }
                throw new Exception("Erro estornar processamento: " + ex.Message.Trim());
            }
            finally
            {
                if (st_transacao)
                {
                    qtb_carga.deletarBanco_Dados();
                }
            }
        }
예제 #5
0
        public static string ProcessarEntrega(TRegistro_CargaEntrega val, BancoDados.TObjetoBanco banco)
        {
            bool             st_transacao = false;
            TCD_CargaEntrega qtb_carga    = new TCD_CargaEntrega();

            try
            {
                if (banco == null)
                {
                    st_transacao = qtb_carga.CriarBanco_Dados(true);
                }
                else
                {
                    qtb_carga.Banco_Dados = banco;
                }


                //Processar estoque dos itens Entrega
                val.lItens.ForEach(p =>
                {
                    //Verificar se empresa movimenta estoque e qtd entregar maior zero
                    if (p.Qtd_entregue > decimal.Zero)
                    {
                        bool st_movestoque = true;
                        //Buscar item romaneio
                        TRegistro_ItensRomaneio rRomaneio =
                            TCN_ItensRomaneio.Buscar(p.Cd_empresa,
                                                     p.Id_romaneiostr,
                                                     p.Id_itemromaneiostr,
                                                     string.Empty,
                                                     string.Empty,
                                                     string.Empty,
                                                     string.Empty,
                                                     string.Empty,
                                                     qtb_carga.Banco_Dados)[0];

                        if (rRomaneio.Id_prevenda.HasValue)
                        {
                            st_movestoque = new CamadaDados.Faturamento.Cadastros.TCD_CFGCupomFiscal(qtb_carga.Banco_Dados).BuscarEscalar(
                                new Utils.TpBusca[]
                            {
                                new Utils.TpBusca()
                                {
                                    vNM_Campo = "a.cd_empresa",
                                    vOperador = "=",
                                    vVL_Busca = "'" + rRomaneio.Cd_empresa.Trim() + "'"
                                },
                                new Utils.TpBusca()
                                {
                                    vNM_Campo = "isnull(a.st_movestoque, 'N')",
                                    vOperador = "=",
                                    vVL_Busca = "'S'"
                                }
                            }, "1") != null;
                        }
                        else if (rRomaneio.Nr_pedido.HasValue)
                        {
                            st_movestoque = new CamadaDados.Faturamento.Cadastros.TCD_CadCFGPedidoFiscal(qtb_carga.Banco_Dados).BuscarEscalar(
                                new Utils.TpBusca[]
                            {
                                new Utils.TpBusca()
                                {
                                    vNM_Campo = "isnull(d.st_geraEstoque, 'N')",
                                    vOperador = "=",
                                    vVL_Busca = "'S'"
                                },
                                new Utils.TpBusca()
                                {
                                    vNM_Campo = "a.tp_fiscal",
                                    vOperador = "=",
                                    vVL_Busca = "'NO'"
                                },
                                new Utils.TpBusca()
                                {
                                    vNM_Campo = string.Empty,
                                    vOperador = "exists",
                                    vVL_Busca = "(select 1 from tb_fat_pedido x " +
                                                "where x.cfg_pedido = a.cfg_pedido " +
                                                "and x.nr_pedido = " + rRomaneio.Nr_pedido.Value.ToString() + ")"
                                }
                            }, "1") != null;
                        }
                        if (st_movestoque)
                        {
                            //Buscar VL.Médio
                            decimal vl_medio = CamadaNegocio.Estoque.TCN_LanEstoque.Valor_Medio_Est_Produto(p.Cd_empresa, p.Cd_produto, qtb_carga.Banco_Dados);
                            //Criar objeto estoque
                            CamadaDados.Estoque.TRegistro_LanEstoque rEstoque = new CamadaDados.Estoque.TRegistro_LanEstoque();
                            rEstoque.Cd_empresa   = p.Cd_empresa;
                            rEstoque.Cd_produto   = p.Cd_produto;
                            rEstoque.Cd_local     = rRomaneio.Cd_local;
                            rEstoque.Dt_lancto    = CamadaDados.UtilData.Data_Servidor();
                            rEstoque.Tp_movimento = "S";
                            rEstoque.Qtd_entrada  = decimal.Zero;
                            rEstoque.Qtd_saida    = p.Qtd_entregue;
                            rEstoque.Vl_unitario  = vl_medio;
                            rEstoque.Vl_subtotal  = p.Qtd_entregue * vl_medio;
                            rEstoque.Tp_lancto    = "N";
                            rEstoque.St_registro  = "A";
                            //Gravar Estoque
                            CamadaNegocio.Estoque.TCN_LanEstoque.GravarEstoque(rEstoque, qtb_carga.Banco_Dados);
                            p.Id_lanctoEstoque = rEstoque.Id_lanctoestoque;
                        }
                    }
                    TCN_ItensCarga.Gravar(p, qtb_carga.Banco_Dados);
                });
                val.St_registro = "E";
                qtb_carga.Gravar(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 Entregar Carga: " + ex.Message.Trim());
            }
            finally
            {
                if (st_transacao)
                {
                    qtb_carga.deletarBanco_Dados();
                }
            }
        }