コード例 #1
0
        public static string Gravar(TRegistro_RomaneioEntrega val, BancoDados.TObjetoBanco banco)
        {
            bool st_transacao = false;
            TCD_RomaneioEntrega qtb_entrega = new TCD_RomaneioEntrega();

            try
            {
                if (banco == null)
                {
                    st_transacao = qtb_entrega.CriarBanco_Dados(true);
                }
                else
                {
                    qtb_entrega.Banco_Dados = banco;
                }
                val.Id_romaneiostr = CamadaDados.TDataQuery.getPubVariavel(qtb_entrega.Gravar(val), "@P_ID_ROMANEIO");
                //Item Entrega
                val.lItensDel.ForEach(p => TCN_ItensRomaneio.Excluir(p, qtb_entrega.Banco_Dados));
                val.lItens.ForEach(p =>
                {
                    if (p.St_processar)
                    {
                        p.Cd_empresa  = val.Cd_empresa;
                        p.Id_romaneio = val.Id_romaneio;
                        TCN_ItensRomaneio.Gravar(p, qtb_entrega.Banco_Dados);
                    }
                });
                if (st_transacao)
                {
                    qtb_entrega.Banco_Dados.Commit_Tran();
                }
                return(val.Id_romaneiostr);
            }
            catch (Exception ex)
            {
                if (st_transacao)
                {
                    qtb_entrega.Banco_Dados.RollBack_Tran();
                }
                throw new Exception("Erro gravar Entrega: " + ex.Message.Trim());
            }
            finally
            {
                if (st_transacao)
                {
                    qtb_entrega.deletarBanco_Dados();
                }
            }
        }
コード例 #2
0
        public static string Excluir(TRegistro_RomaneioEntrega val, BancoDados.TObjetoBanco banco)
        {
            bool st_transacao = false;
            TCD_RomaneioEntrega qtb_entrega = new TCD_RomaneioEntrega();

            try
            {
                if (banco == null)
                {
                    st_transacao = qtb_entrega.CriarBanco_Dados(true);
                }
                else
                {
                    qtb_entrega.Banco_Dados = banco;
                }
                //Buscar Itens Romaneio
                TCN_ItensRomaneio.Buscar(val.Cd_empresa,
                                         val.Id_romaneiostr,
                                         string.Empty,
                                         string.Empty,
                                         string.Empty,
                                         string.Empty,
                                         string.Empty,
                                         string.Empty,
                                         qtb_entrega.Banco_Dados).ForEach(p => TCN_ItensRomaneio.Excluir(p, qtb_entrega.Banco_Dados));
                qtb_entrega.Excluir(val);
                if (st_transacao)
                {
                    qtb_entrega.Banco_Dados.Commit_Tran();
                }
                return(val.Id_romaneiostr);
            }
            catch (Exception ex)
            {
                if (st_transacao)
                {
                    qtb_entrega.Banco_Dados.RollBack_Tran();
                }
                throw new Exception("Erro excluir Entrega: " + ex.Message.Trim());
            }
            finally
            {
                if (st_transacao)
                {
                    qtb_entrega.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 =>
                {
                    //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();
                }
            }
        }