Exemple #1
0
 private void afterEntrega()
 {
     //Verificar se existe Itens Entrega na Pre-Venda
     CamadaDados.Faturamento.Entrega.TList_ItensRomaneio rItensRomaneio = null;
     if (rPrevenda != null)
     {
         rItensRomaneio = new CamadaDados.Faturamento.Entrega.TCD_ItensRomaneio().Select(
             new TpBusca[]
         {
             new TpBusca()
             {
                 vNM_Campo = string.Empty,
                 vOperador = "exists",
                 vVL_Busca = "(select 1 from tb_pdv_itensprevenda x " +
                             "where x.cd_empresa = a.cd_empresa " +
                             "and x.id_prevenda = a.id_prevenda " +
                             "and x.id_itemprevenda = a.id_itemprevenda " +
                             "and a.cd_empresa = '" + rPrevenda.Cd_empresa.Trim() + "' " +
                             "and a.id_prevenda = " + rPrevenda.Id_prevendastr.Trim() + ")"
             }
         }, 0, string.Empty);
     }
     else if (rPedido != null)
     {
         rItensRomaneio = new CamadaDados.Faturamento.Entrega.TCD_ItensRomaneio().Select(
             new TpBusca[]
         {
             new TpBusca()
             {
                 vNM_Campo = string.Empty,
                 vOperador = "exists",
                 vVL_Busca = "(select 1 from tb_fat_pedido_itens x " +
                             "where x.nr_pedido = a.nr_pedido " +
                             "and x.cd_produto = a.cd_produto " +
                             "and x.id_pedidoitem = a.id_pedidoitem " +
                             "and a.nr_pedido = " + rPedido.Nr_pedido.ToString() + ")"
             }
         }, 0, string.Empty);
     }
     if (rItensRomaneio.Count.Equals(0))
     {
         bsEntrega.AddNew();
         (bsEntrega.Current as CamadaDados.Faturamento.Entrega.TRegistro_RomaneioEntrega).Cd_empresa = rPrevenda != null ? rPrevenda.Cd_empresa : rPedido.CD_Empresa;
         (bsEntrega.Current as CamadaDados.Faturamento.Entrega.TRegistro_RomaneioEntrega).Nm_cliente = rPrevenda != null ? rPrevenda.Nm_clifor : rPedido.NM_Clifor;
         //Buscar Endereço Entrega
         this.BuscarEndEntrega();
         if (rPrevenda != null)
         {
             //Buscar Itens PreVenda
             rPrevenda.lItens.ForEach(p =>
                                      (bsEntrega.Current as TRegistro_RomaneioEntrega).lItens.Add(
                                          new TRegistro_ItensRomaneio()
             {
                 Cd_empresa      = p.Cd_empresa,
                 Cd_produto      = p.Cd_produto,
                 Ds_produto      = p.Ds_produto,
                 Sigla_unidade   = p.Sigla_unidade,
                 Id_prevenda     = p.Id_prevenda,
                 Id_itemprevenda = p.Id_itemprevenda,
                 Cd_local        = lCfg[0].Cd_local,
                 Qtd_venda       = p.Quantidade
             }));
         }
         else if (rPedido != null)
         {
             rPedido.Pedido_Itens.ForEach(p =>
                                          (bsEntrega.Current as TRegistro_RomaneioEntrega).lItens.Add(
                                              new TRegistro_ItensRomaneio()
             {
                 Cd_empresa    = p.Cd_Empresa,
                 Cd_produto    = p.Cd_produto,
                 Ds_produto    = p.Ds_produto,
                 Sigla_unidade = p.Sg_unidade_est,
                 Nr_pedido     = p.Nr_pedido,
                 Id_pedidoitem = p.Id_pedidoitem,
                 Cd_local      = p.Cd_local,
                 Qtd_venda     = p.Quantidade
             }));
         }
     }
     else
     {
         //Buscar Entrega
         bsEntrega.DataSource = CamadaNegocio.Faturamento.Entrega.TCN_RomaneioEntrega.Buscar(rItensRomaneio[0].Cd_empresa,
                                                                                             rItensRomaneio[0].Id_romaneiostr,
                                                                                             string.Empty,
                                                                                             string.Empty,
                                                                                             string.Empty,
                                                                                             string.Empty,
                                                                                             string.Empty,
                                                                                             string.Empty,
                                                                                             null);
         //Adicionar itens entregues
         rItensRomaneio.ForEach(p =>
         {
             p.St_processar = true;
             (bsEntrega.Current as TRegistro_RomaneioEntrega).lItens.Add(p);
         });
         //Adicionar itens nao entregues
         if (rPrevenda != null)
         {
             new CamadaDados.Faturamento.PDV.TCD_ItensPreVenda().Select(
                 new TpBusca[]
             {
                 new TpBusca()
                 {
                     vNM_Campo = string.Empty,
                     vOperador = "not exists",
                     vVL_Busca = "(select 1 from tb_fat_itensromaneio x " +
                                 "where x.id_itemprevenda = a.id_itemprevenda " +
                                 "and x.cd_empresa = a.cd_empresa " +
                                 "and x.id_prevenda = a.id_prevenda)"
                 },
                 new TpBusca()
                 {
                     vNM_Campo = "a.cd_empresa",
                     vOperador = "=",
                     vVL_Busca = "'" + rItensRomaneio[0].Cd_empresa.Trim() + "'"
                 },
                 new TpBusca()
                 {
                     vNM_Campo = "a.id_prevenda",
                     vOperador = "=",
                     vVL_Busca = "'" + rItensRomaneio[0].Id_prevenda.ToString() + "'"
                 }
             }, 0, string.Empty).ForEach(p => (bsEntrega.Current as TRegistro_RomaneioEntrega).lItens.Add(
                                             new TRegistro_ItensRomaneio()
             {
                 Cd_empresa      = p.Cd_empresa,
                 Cd_produto      = p.Cd_produto,
                 Ds_produto      = p.Ds_produto,
                 Id_prevenda     = p.Id_prevenda,
                 Id_itemprevenda = p.Id_itemprevenda,
                 Cd_local        = lCfg[0].Cd_local,
                 Qtd_venda       = p.Quantidade
             }));
         }
         else if (rPedido != null)
         {
             new CamadaDados.Faturamento.Pedido.TCD_LanPedido_Item().Select(
                 new TpBusca[]
             {
                 new TpBusca()
                 {
                     vNM_Campo = "a.nr_pedido",
                     vOperador = "=",
                     vVL_Busca = rPedido.Nr_pedido.ToString()
                 },
                 new TpBusca()
                 {
                     vNM_Campo = string.Empty,
                     vOperador = "not exists",
                     vVL_Busca = "(select 1 from tb_fat_itensromaneio x " +
                                 "where x.nr_pedido = a.nr_pedido " +
                                 "and x.cd_produto = a.cd_produto " +
                                 "and x.id_pedidoitem = a.id_pedidoitem)"
                 }
             }, 0, string.Empty, string.Empty, string.Empty).ForEach(p =>
                                                                     (bsEntrega.Current as TRegistro_RomaneioEntrega).lItens.Add(
                                                                         new TRegistro_ItensRomaneio()
             {
                 Cd_empresa    = p.Cd_Empresa,
                 Cd_produto    = p.Cd_produto,
                 Ds_produto    = p.Ds_produto,
                 Sigla_unidade = p.Sg_unidade_est,
                 Nr_pedido     = p.Nr_pedido,
                 Id_pedidoitem = p.Id_pedidoitem,
                 Cd_local      = p.Cd_local,
                 Qtd_venda     = p.Quantidade
             }));
         }
         bsEntrega.ResetCurrentItem();
     }
 }
Exemple #2
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();
                }
            }
        }