コード例 #1
0
        public static void GerarPedidoPecas(ref CamadaDados.Faturamento.Pedido.TRegistro_Pedido rPed,
                                            CamadaDados.Servicos.TRegistro_LanServico rOs,
                                            List <CamadaDados.Servicos.TRegistro_LanServicosPecas> lPecas,
                                            CamadaDados.Servicos.Cadastros.TRegistro_OSE_ParamOS rParam)
        {
            if (!string.IsNullOrEmpty(rParam.Cfg_pedido_item))
            {
                if (rPed == null)
                {
                    rPed             = new CamadaDados.Faturamento.Pedido.TRegistro_Pedido();
                    rPed.CD_Empresa  = rOs != null ? rOs.Cd_empresa : string.Empty;
                    rPed.DT_Pedido   = DateTime.Now;
                    rPed.CFG_Pedido  = rParam.Cfg_pedido_item;
                    rPed.Cd_vendedor = rOs != null?rOs.lEvolucao.Exists(p => !string.IsNullOrEmpty(p.Cd_tecnico)) ? rOs.lEvolucao.FindLast(p => !string.IsNullOrEmpty(p.Cd_tecnico)).Cd_tecnico : string.Empty : string.Empty;

                    rPed.TP_Movimento      = "S"; //Pedido de saida
                    rPed.ST_Pedido         = "F"; //Pedido fechado
                    rPed.ST_Registro       = "F"; //Pedido fechado
                    rPed.CD_Clifor         = rOs != null ? rOs.Cd_clifor : string.Empty;
                    rPed.CD_Endereco       = rOs != null ? rOs.Cd_endereco : string.Empty;
                    rPed.Cd_moeda          = rParam.Cd_moeda;
                    rPed.CD_TRANSPORTADORA = rParam.Cd_transportadora;
                    rPed.CD_ENDERECOTRANSP = rParam.Cd_enderecoTransp;
                }
                foreach (CamadaDados.Servicos.TRegistro_LanServicosPecas p in lPecas)
                {
                    CamadaDados.Faturamento.Pedido.TRegistro_LanPedido_Item reg = new CamadaDados.Faturamento.Pedido.TRegistro_LanPedido_Item();
                    reg.Cd_Empresa       = p.Cd_empresa;
                    reg.Cd_local         = p.Cd_local;
                    reg.Cd_vendedor      = p.Cd_tecnico;
                    reg.Cd_produto       = p.Cd_produto;
                    reg.Ds_produto       = p.Ds_produto;
                    reg.Cd_unidade_est   = p.Cd_unidproduto;
                    reg.Cd_unidade_valor = p.Cd_unidproduto;
                    reg.Quantidade       = p.Qtd_faturar > decimal.Zero ? p.Qtd_faturar : p.Quantidade;
                    if (rParam.St_sum_d_a_unitbool)
                    {
                        reg.Vl_unitario = p.Vl_unitario - decimal.Round(decimal.Divide(p.Vl_desconto, p.Quantidade), 5, MidpointRounding.AwayFromZero) +
                                          decimal.Round(decimal.Divide(p.Vl_acrescimo, p.Quantidade), 5, MidpointRounding.AwayFromZero);
                        reg.Vl_subtotal  = reg.Vl_unitario * p.Qtd_faturar > decimal.Zero ? p.Qtd_faturar : p.Quantidade;
                        reg.Vl_desc      = decimal.Zero;
                        reg.Vl_acrescimo = decimal.Zero;
                    }
                    else
                    {
                        reg.Vl_unitario  = p.Vl_unitario;
                        reg.Vl_subtotal  = p.Vl_unitario * (p.Qtd_faturar > decimal.Zero ? p.Qtd_faturar : p.Quantidade);
                        reg.Vl_desc      = p.Vl_desconto;
                        reg.Vl_acrescimo = p.Vl_acrescimo;
                    }
                    reg.Tp_pedOS = "IT";
                    reg.lPecaOS.Add(p);
                    rPed.Pedido_Itens.Add(reg);
                }
            }
            else
            {
                throw new Exception("Não existe configuracao para emitir pedido de peças para o tipo de ordem " + rOs.Tp_ordemstr);
            }
        }
コード例 #2
0
 public static void GerarPedidoGarantia(ref CamadaDados.Faturamento.Pedido.TRegistro_Pedido rPed,
                                        CamadaDados.Servicos.TRegistro_LanServico rOs,
                                        List <CamadaDados.Servicos.TRegistro_LanServicosPecas> lPecas,
                                        CamadaDados.Servicos.Cadastros.TRegistro_OSE_ParamOS rParam)
 {
     if (!string.IsNullOrEmpty(rParam.Cfg_pedido_garantia))
     {
         if (rPed == null)
         {
             rPed                   = new CamadaDados.Faturamento.Pedido.TRegistro_Pedido();
             rPed.CD_Empresa        = rOs.Cd_empresa;
             rPed.DT_Pedido         = DateTime.Now;
             rPed.CFG_Pedido        = rParam.Cfg_pedido_garantia;
             rPed.TP_Movimento      = "S"; //Pedido de saida
             rPed.ST_Pedido         = "F"; //Pedido fechado
             rPed.ST_Registro       = "F"; //Pedido fechado
             rPed.CD_Clifor         = rOs.Cd_clifor;
             rPed.CD_Endereco       = rOs.Cd_endereco;
             rPed.Cd_moeda          = rParam.Cd_moeda;
             rPed.CD_TRANSPORTADORA = rParam.Cd_transportadora;
             rPed.CD_ENDERECOTRANSP = rParam.Cd_enderecoTransp;
         }
         foreach (CamadaDados.Servicos.TRegistro_LanServicosPecas p in lPecas)
         {
             CamadaDados.Faturamento.Pedido.TRegistro_LanPedido_Item reg = new CamadaDados.Faturamento.Pedido.TRegistro_LanPedido_Item();
             reg.Cd_Empresa       = rOs.Cd_empresa;
             reg.Cd_local         = p.Cd_local;
             reg.Cd_vendedor      = p.Cd_tecnico;
             reg.Cd_produto       = p.Cd_produto;
             reg.Ds_produto       = p.Ds_produto;
             reg.Cd_unidade_est   = p.Cd_unidproduto;
             reg.Cd_unidade_valor = p.Cd_unidproduto;
             reg.Quantidade       = p.Quantidade;
             reg.Vl_unitario      = p.Vl_unitario;
             reg.Vl_subtotal      = p.Vl_subtotal;
             reg.Vl_desc          = p.Vl_desconto;
             reg.Vl_acrescimo     = p.Vl_acrescimo;
             reg.Tp_pedOS         = "GR";
             reg.lPecaOS.Add(p);
             rPed.Pedido_Itens.Add(reg);
         }
     }
     else
     {
         throw new Exception("Não existe configuracao para emitir pedido de garantia para o tipo de ordem " + rOs.Tp_ordemstr);
     }
 }
コード例 #3
0
        public static void GerarPedidoMudanca(ref CamadaDados.Faturamento.Pedido.TRegistro_Pedido rPed,
                                              CamadaDados.Mudanca.TRegistro_LanMudanca rMudanca,
                                              decimal valor,
                                              CamadaDados.Mudanca.Cadastros.TList_CFGMudanca lCfg)
        {
            if (!string.IsNullOrEmpty(lCfg[0].CFG_PedServico))
            {
                if (rPed == null)
                {
                    rPed              = new CamadaDados.Faturamento.Pedido.TRegistro_Pedido();
                    rPed.CD_Empresa   = rMudanca != null ? rMudanca.Cd_empresa : string.Empty;
                    rPed.DT_Pedido    = DateTime.Now;
                    rPed.CFG_Pedido   = lCfg[0].CFG_PedServico;
                    rPed.TP_Movimento = "S"; //Pedido de saida
                    rPed.ST_Pedido    = "F"; //Pedido fechado
                    rPed.ST_Registro  = "F"; //Pedido fechado
                    rPed.CD_Clifor    = rMudanca != null ? rMudanca.Cd_clifor : string.Empty;
                    rPed.CD_Endereco  = rMudanca != null ? rMudanca.Cd_endereco : string.Empty;

                    CamadaDados.Faturamento.Pedido.TRegistro_LanPedido_Item reg = new CamadaDados.Faturamento.Pedido.TRegistro_LanPedido_Item();
                    reg.Cd_Empresa  = rMudanca.Cd_empresa;
                    reg.Cd_local    = "000001";
                    reg.Cd_produto  = lCfg[0].CD_ServPadrao;
                    reg.Ds_produto  = lCfg[0].DS_ServPadrao;
                    reg.Quantidade  = 1;
                    reg.Vl_unitario = valor;
                    reg.Vl_subtotal = valor;
                    reg.Tp_pedOS    = "SV";
                    rPed.Pedido_Itens.Add(reg);
                }
            }
            else
            {
                throw new Exception("Não existe configuracao para emitir pedido de serviço para mudança!");
            }
        }
コード例 #4
0
 public static CamadaDados.Faturamento.PDV.TRegistro_PreVenda ProcessarOSPeca(CamadaDados.Servicos.TRegistro_LanServico val,
                                                                              ref CamadaDados.Faturamento.Pedido.TRegistro_Pedido rPedGarantia)
 {
     CamadaDados.Faturamento.PDV.TRegistro_PreVenda rPreVenda = null;
     if (val.lPecas.Exists(p => !p.St_atendimentogarantiabool))
     {
         //Buscar config OS
         CamadaDados.Servicos.Cadastros.TList_OSE_ParamOS lParam =
             CamadaNegocio.Servicos.Cadastros.TCN_OSE_ParamOS.Buscar(val.Tp_ordemstr,
                                                                     string.Empty,
                                                                     string.Empty,
                                                                     string.Empty,
                                                                     string.Empty,
                                                                     string.Empty,
                                                                     string.Empty,
                                                                     string.Empty,
                                                                     string.Empty,
                                                                     1,
                                                                     string.Empty,
                                                                     null);
         if (lParam.Count > 0)
         {
             rPreVenda               = new CamadaDados.Faturamento.PDV.TRegistro_PreVenda();
             rPreVenda.Cd_empresa    = val.Cd_empresa;
             rPreVenda.Cd_clifor     = val.Cd_clifor;
             rPreVenda.Nm_clifor     = val.Nm_clifor;
             rPreVenda.Cd_endereco   = val.Cd_endereco;
             rPreVenda.Cd_vendedor   = val.lEvolucao.Exists(p => !string.IsNullOrEmpty(p.Cd_tecnico)) ? val.lEvolucao.FindLast(p => !string.IsNullOrEmpty(p.Cd_tecnico)).Cd_tecnico : string.Empty;
             rPreVenda.Dt_emissao    = CamadaDados.UtilData.Data_Servidor();
             rPreVenda.St_registro   = "A";
             rPreVenda.Ds_observacao = val.Ds_observacoesgerais;
             val.lPecas.Where(p => !p.St_atendimentogarantiabool).ToList().ForEach(p =>
             {
                 if (string.IsNullOrEmpty(p.Cd_produto))
                 {
                     object obj = new CamadaDados.Faturamento.CompraAvulsa.TCD_Compra_Itens().BuscarEscalar(
                         new Utils.TpBusca[]
                     {
                         new Utils.TpBusca()
                         {
                             vNM_Campo = string.Empty,
                             vOperador = "exists",
                             vVL_Busca = "(select 1 from tb_fat_compraitens_x_pecaOS x " +
                                         "where x.cd_empresa = a.cd_empresa " +
                                         "and x.id_compra = a.id_compra " +
                                         "and x.id_itemcompra = a.id_itemcompra " +
                                         "and x.id_os = " + p.Id_osstr + " " +
                                         "and x.id_peca = " + p.Id_pecastr + ")"
                         }
                     }, "a.cd_produto");
                     if (obj != null)
                     {
                         p.Cd_produto = obj.ToString();
                     }
                     else if (!string.IsNullOrEmpty(lParam[0].Cd_servicopadrao))
                     {
                         p.Cd_produto = lParam[0].Cd_servicopadrao;
                     }
                     else
                     {
                         throw new Exception("Não existe serviço padrão configurado para faturar peça avulsa.");
                     }
                 }
                 rPreVenda.lItens.Add(new CamadaDados.Faturamento.PDV.TRegistro_ItensPreVenda()
                 {
                     Cd_produto   = p.Cd_produto,
                     Quantidade   = p.Quantidade,
                     Vl_unitario  = p.Vl_unitario,
                     Vl_desconto  = p.Vl_desconto,
                     Vl_acrescimo = p.Vl_acrescimo,
                     lPecasOS     = new CamadaDados.Servicos.TList_LanServicosPecas()
                     {
                         p
                     }
                 });
             });
         }
         else
         {
             throw new Exception("Não existe configuração OS para a empresa " + val.Cd_empresa.Trim());
         }
     }
     if (val.lPecas.Exists(p => p.St_atendimentogarantiabool))
     {
         CamadaDados.Servicos.Cadastros.TList_OSE_ParamOS lParam =
             CamadaNegocio.Servicos.Cadastros.TCN_OSE_ParamOS.Buscar(val.Tp_ordemstr,
                                                                     string.Empty,
                                                                     string.Empty,
                                                                     string.Empty,
                                                                     string.Empty,
                                                                     string.Empty,
                                                                     string.Empty,
                                                                     string.Empty,
                                                                     string.Empty,
                                                                     0,
                                                                     string.Empty,
                                                                     null);
         if (lParam.Count.Equals(0))
         {
             throw new Exception("Não existe configuração para o tipo de OS.");
         }
         rPedGarantia                   = new CamadaDados.Faturamento.Pedido.TRegistro_Pedido();
         rPedGarantia.CD_Empresa        = val.Cd_empresa;
         rPedGarantia.DT_Pedido         = DateTime.Now;
         rPedGarantia.CFG_Pedido        = lParam[0].Cfg_pedido_garantia;
         rPedGarantia.TP_Movimento      = "S"; //Pedido de saida
         rPedGarantia.ST_Pedido         = "F"; //Pedido fechado
         rPedGarantia.ST_Registro       = "F"; //Pedido fechado
         rPedGarantia.CD_Clifor         = val.Cd_clifor;
         rPedGarantia.CD_Endereco       = val.Cd_endereco;
         rPedGarantia.Cd_moeda          = lParam[0].Cd_moeda;
         rPedGarantia.CD_TRANSPORTADORA = lParam[0].Cd_transportadora;
         rPedGarantia.CD_ENDERECOTRANSP = lParam[0].Cd_enderecoTransp;
         foreach (CamadaDados.Servicos.TRegistro_LanServicosPecas p in val.lPecas.FindAll(v => v.St_atendimentogarantiabool))
         {
             CamadaDados.Faturamento.Pedido.TRegistro_LanPedido_Item reg = new CamadaDados.Faturamento.Pedido.TRegistro_LanPedido_Item();
             reg.Cd_Empresa       = val.Cd_empresa;
             reg.Cd_local         = p.Cd_local;
             reg.Cd_vendedor      = p.Cd_tecnico;
             reg.Cd_produto       = p.Cd_produto;
             reg.Ds_produto       = p.Ds_produto;
             reg.Cd_unidade_est   = p.Cd_unidproduto;
             reg.Cd_unidade_valor = p.Cd_unidproduto;
             reg.Quantidade       = p.Quantidade;
             reg.Vl_unitario      = p.Vl_unitario;
             reg.Vl_subtotal      = p.Vl_subtotal;
             reg.Vl_desc          = p.Vl_desconto;
             reg.Vl_acrescimo     = p.Vl_acrescimo;
             reg.Tp_pedOS         = "GR";
             reg.lPecaOS.Add(p);
             rPedGarantia.Pedido_Itens.Add(reg);
         }
     }
     return(rPreVenda);
 }
コード例 #5
0
        public static void ReprocessarTaxasContrato(CamadaDados.Faturamento.Pedido.TRegistro_LanPedido_Item rPedItem,
                                                    Utils.ThreadEspera tEspera,
                                                    TObjetoBanco banco)
        {
            bool            st_transacao = false;
            TCD_MovDeposito qtb_mov      = new TCD_MovDeposito();

            try
            {
                if (banco == null)
                {
                    st_transacao = qtb_mov.CriarBanco_Dados(true);
                }
                else
                {
                    qtb_mov.Banco_Dados = banco;
                }
                if (tEspera != null)
                {
                    tEspera.Msg("Buscar estoques amarrados ao contrato...");
                }
                //Buscar todos os estoques amarrados a este item do pedido
                CamadaDados.Faturamento.Pedido.TList_RegLanPedido_Item_X_Estoque lItemEstoque =
                    CamadaNegocio.Faturamento.Pedido.TCN_LanPedidoItem_X_Estoque.Buscar(rPedItem.Nr_PedidoString,
                                                                                        rPedItem.Cd_produto,
                                                                                        rPedItem.Id_pedidoitem.ToString(),
                                                                                        qtb_mov.Banco_Dados);
                if (lItemEstoque.Count > 0)
                {
                    if (tEspera != null)
                    {
                        tEspera.Msg("Excluindo movimentaçao de deposito...");
                        tEspera.Msg("Excluindo taxas de deposito...\r\n" +
                                    "(Serão excluidas somente as taxas que não foram processadas e que não seja lançado manual.)");
                    }
                    lItemEstoque.ForEach(p =>
                    {
                        //Buscar lancto taxa deposito
                        TList_TaxaDeposito lTaxas = new TCD_LanTaxaDeposito(qtb_mov.Banco_Dados).Select(
                            new TpBusca[]
                        {
                            new TpBusca()
                            {
                                vNM_Campo = string.Empty,
                                vOperador = "exists",
                                vVL_Busca = "(select 1 from tb_gro_saldocarenciataxa x " +
                                            "inner join tb_gro_movdeposito y " +
                                            "on x.id_movto = y.id_movto " +
                                            "where x.id_lantaxa = a.id_lantaxa " +
                                            "and y.nr_pedido = " + p.Nr_Pedido.ToString() + " " +
                                            "and y.cd_produto = '" + p.CD_Produto.Trim() + "' " +
                                            "and y.id_pedidoitem = " + p.Id_pedidoitem.ToString() + " " +
                                            "and y.cd_empresa = '" + p.CD_Empresa.Trim() + "' " +
                                            "and y.id_lanctoestoque = " + p.ID_LanctoEstoque.ToString() + ")"
                            }
                        }, 0, string.Empty);
                        if (lTaxas.Count > 0)
                        {
                            if (!lTaxas.Exists(v => v.St_registro.Trim().ToUpper().Equals("P")))
                            {
                                //Excluir saldo carencia
                                new TCD_SaldoCarenciaTaxa(qtb_mov.Banco_Dados).Select(
                                    new TpBusca[]
                                {
                                    new TpBusca()
                                    {
                                        vNM_Campo = string.Empty,
                                        vOperador = "exists",
                                        vVL_Busca = "(select 1 from tb_gro_movdeposito x " +
                                                    "where x.id_movto = a.id_movto " +
                                                    "and x.nr_pedido = " + p.Nr_Pedido.ToString() + " " +
                                                    "and x.cd_produto = '" + p.CD_Produto.Trim() + "' " +
                                                    "and x.id_pedidoitem = " + p.Id_pedidoitem.ToString() + " " +
                                                    "and x.cd_empresa = '" + p.CD_Empresa.Trim() + "' " +
                                                    "and x.id_lanctoestoque = " + p.ID_LanctoEstoque.ToString() + ")"
                                    }
                                }, 0, string.Empty).ForEach(v => new TCD_SaldoCarenciaTaxa(qtb_mov.Banco_Dados).Deleta(v));
                                //Excluir Movto Deposito
                                new TCD_MovDeposito(qtb_mov.Banco_Dados).Select(
                                    new TpBusca[]
                                {
                                    new TpBusca()
                                    {
                                        vNM_Campo = "a.nr_pedido",
                                        vOperador = "=",
                                        vVL_Busca = p.Nr_Pedido.ToString()
                                    },
                                    new TpBusca()
                                    {
                                        vNM_Campo = "a.cd_produto",
                                        vOperador = "=",
                                        vVL_Busca = "'" + p.CD_Produto.Trim() + "'"
                                    },
                                    new TpBusca()
                                    {
                                        vNM_Campo = "a.id_pedidoitem",
                                        vOperador = "=",
                                        vVL_Busca = p.Id_pedidoitem.ToString()
                                    },
                                    new TpBusca()
                                    {
                                        vNM_Campo = "a.cd_empresa",
                                        vOperador = "=",
                                        vVL_Busca = "'" + p.CD_Empresa.Trim() + "'"
                                    },
                                    new TpBusca()
                                    {
                                        vNM_Campo = "a.id_lanctoestoque",
                                        vOperador = "=",
                                        vVL_Busca = p.ID_LanctoEstoque.ToString()
                                    }
                                }, 0, string.Empty).ForEach(v => TCN_MovDeposito.DeletarMovDeposito(v, qtb_mov.Banco_Dados));
                                //Excluir lancto taxa deposito
                                lTaxas.ForEach(v =>
                                {
                                    //Somente se a taxa for automatica
                                    if (v.Tp_Lancto.Trim().ToUpper().Equals("A"))
                                    {
                                        new TCD_LanTaxaDeposito(qtb_mov.Banco_Dados).Excluir(v);
                                    }
                                });
                                //Chamar metodo GravarMovDeposito
                                GravarMovDeposito(new TRegistro_MovDeposito()
                                {
                                    Id_Movto         = 0,
                                    Nr_Pedido        = p.Nr_Pedido,
                                    CD_Produto       = p.CD_Produto,
                                    CD_Empresa       = p.CD_Empresa,
                                    Id_LanctoEstoque = p.ID_LanctoEstoque,
                                    Id_pedidoitem    = p.Id_pedidoitem
                                }, qtb_mov.Banco_Dados);
                            }
                        }
                        else
                        {
                            //Excluir saldo carencia
                            new TCD_SaldoCarenciaTaxa(qtb_mov.Banco_Dados).Select(
                                new TpBusca[]
                            {
                                new TpBusca()
                                {
                                    vNM_Campo = string.Empty,
                                    vOperador = "exists",
                                    vVL_Busca = "(select 1 from tb_gro_movdeposito x " +
                                                "where x.id_movto = a.id_movto " +
                                                "and x.nr_pedido = " + p.Nr_Pedido.ToString() + " " +
                                                "and x.cd_produto = '" + p.CD_Produto.Trim() + "' " +
                                                "and x.id_pedidoitem = " + p.Id_pedidoitem.ToString() + " " +
                                                "and x.cd_empresa = '" + p.CD_Empresa.Trim() + "' " +
                                                "and x.id_lanctoestoque = " + p.ID_LanctoEstoque.ToString() + ")"
                                }
                            }, 0, string.Empty).ForEach(v => new TCD_SaldoCarenciaTaxa(qtb_mov.Banco_Dados).Deleta(v));
                            //Excluir Movto Deposito
                            new TCD_MovDeposito(qtb_mov.Banco_Dados).Select(
                                new TpBusca[]
                            {
                                new TpBusca()
                                {
                                    vNM_Campo = "a.nr_pedido",
                                    vOperador = "=",
                                    vVL_Busca = p.Nr_Pedido.ToString()
                                },
                                new TpBusca()
                                {
                                    vNM_Campo = "a.cd_produto",
                                    vOperador = "=",
                                    vVL_Busca = "'" + p.CD_Produto.Trim() + "'"
                                },
                                new TpBusca()
                                {
                                    vNM_Campo = "a.id_pedidoitem",
                                    vOperador = "=",
                                    vVL_Busca = p.Id_pedidoitem.ToString()
                                },
                                new TpBusca()
                                {
                                    vNM_Campo = "a.cd_empresa",
                                    vOperador = "=",
                                    vVL_Busca = "'" + p.CD_Empresa.Trim() + "'"
                                },
                                new TpBusca()
                                {
                                    vNM_Campo = "a.id_lanctoestoque",
                                    vOperador = "=",
                                    vVL_Busca = p.ID_LanctoEstoque.ToString()
                                }
                            }, 0, string.Empty).ForEach(v => TCN_MovDeposito.DeletarMovDeposito(v, qtb_mov.Banco_Dados));
                            //Chamar metodo GravarMovDeposito
                            GravarMovDeposito(new TRegistro_MovDeposito()
                            {
                                Id_Movto         = 0,
                                Nr_Pedido        = p.Nr_Pedido,
                                CD_Produto       = p.CD_Produto,
                                CD_Empresa       = p.CD_Empresa,
                                Id_LanctoEstoque = p.ID_LanctoEstoque,
                                Id_pedidoitem    = p.Id_pedidoitem
                            }, qtb_mov.Banco_Dados);
                        }
                    });
                    if (st_transacao)
                    {
                        qtb_mov.Banco_Dados.Commit_Tran();
                    }
                }
                else
                {
                    throw new Exception("Não existe estoque amarrado ao item do pedido para reprocessar taxas.");
                }
            }
            catch (Exception ex)
            {
                if (st_transacao)
                {
                    qtb_mov.Banco_Dados.RollBack_Tran();
                }
                throw new Exception("Erro reprocessar taxas: " + ex.Message.Trim());
            }
            finally
            {
                if (st_transacao)
                {
                    qtb_mov.deletarBanco_Dados();
                }
            }
        }
コード例 #6
0
 public static void GerarPedidoCarga(ref CamadaDados.Faturamento.Pedido.TRegistro_Pedido rPed,
                                     CamadaDados.Faturamento.Entrega.TRegistro_CargaAvulsa rCarga,
                                     CamadaDados.Diversos.TRegistro_CfgEmpresa rParam)
 {
     if (!string.IsNullOrEmpty(rParam.CFG_PedRemCargaAvulsa))
     {
         if (rPed == null)
         {
             rPed              = new CamadaDados.Faturamento.Pedido.TRegistro_Pedido();
             rPed.CD_Empresa   = rCarga.Cd_empresa;
             rPed.DT_Pedido    = DateTime.Now;
             rPed.CFG_Pedido   = rParam.CFG_PedRemCargaAvulsa;
             rPed.TP_Movimento = "S"; //Pedido de saida
             rPed.ST_Pedido    = "F"; //Pedido fechado
             rPed.ST_Registro  = "F"; //Pedido fechado
             rPed.CD_Clifor    = rParam.Cd_clifor;
             rPed.CD_Endereco  = rParam.Cd_endereco;
             //Buscar Moeda Padrao
             TList_Moeda tabela =
                 CamadaNegocio.ConfigGer.TCN_CadParamGer_X_Empresa.BuscarMoedaPadrao(rCarga.Cd_empresa, null);
             if (tabela != null)
             {
                 if (tabela.Count > 0)
                 {
                     rPed.Cd_moeda = tabela[0].Cd_moeda;
                 }
             }
         }
         //Buscar Local Arm
         object LocalArm = new CamadaDados.Estoque.Cadastros.TCD_CadLocalArm_X_Empresa().BuscarEscalar(
             new TpBusca[]
         {
             new TpBusca()
             {
                 vNM_Campo = "a.cd_empresa",
                 vOperador = "=",
                 vVL_Busca = "'" + rCarga.Cd_empresa.Trim() + "'"
             }
         }, "a.CD_Local");
         if (LocalArm == null)
         {
             throw new Exception("Não existe Local de armazenagem configurado para Empresa" + rCarga.Cd_empresa.Trim() + "!");
         }
         for (int i = 0; i < rCarga.lItens.Count; i++)
         {
             //Buscar Preço
             decimal vl_preco = CamadaNegocio.Estoque.Cadastros.TCN_LanPrecoItem.Busca_ConsultaPreco(rCarga.Cd_empresa,
                                                                                                     rCarga.lItens[i].Cd_produto,
                                                                                                     rParam.Cd_tabelapreco,
                                                                                                     null);
             CamadaDados.Faturamento.Pedido.TRegistro_LanPedido_Item reg = new CamadaDados.Faturamento.Pedido.TRegistro_LanPedido_Item();
             reg.Cd_Empresa     = rCarga.lItens[i].Cd_empresa;
             reg.Cd_local       = LocalArm.ToString();
             reg.Cd_produto     = rCarga.lItens[i].Cd_produto;
             reg.Ds_produto     = rCarga.lItens[i].Ds_produto;
             reg.Cd_unidade_est = rCarga.lItens[i].Cd_unidade;
             reg.Quantidade     = rCarga.lItens[i].Quantidade;
             reg.Vl_unitario    = vl_preco;
             reg.Vl_subtotal    = vl_preco * rCarga.lItens[i].Quantidade;
             rPed.Pedido_Itens.Add(reg);
         }
     }
     else
     {
         throw new Exception("Não existe configuracao para emitir pedido de remessa para a Empresa " + rCarga.Cd_empresa);
     }
 }
コード例 #7
0
        private void ProcessarLote()
        {
            if (vModo.Equals(Utils.TTpModo.tm_Standby))
            {
                if (bsLote.Current != null)
                {
                    if ((bsLote.Current as CamadaDados.Servicos.TRegistro_LoteOS).St_registro.Trim().ToUpper().Equals("A"))
                    {
                        if ((bsLote.Current as CamadaDados.Servicos.TRegistro_LoteOS).lOs.Count.Equals(0))
                        {
                            MessageBox.Show("Não é permitido processar lote sem ordem de serviço.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            return;
                        }
                        using (TFLanProcessarLote fProcessar = new TFLanProcessarLote())
                        {
                            fProcessar.Id_lote = (bsLote.Current as CamadaDados.Servicos.TRegistro_LoteOS).Id_lotestr;
                            fProcessar.Ds_lote = (bsLote.Current as CamadaDados.Servicos.TRegistro_LoteOS).Ds_lote;
                            if (fProcessar.ShowDialog() == DialogResult.OK)
                            {
                                (bsLote.Current as CamadaDados.Servicos.TRegistro_LoteOS).Dt_enviolote          = fProcessar.Dt_enviolote;
                                (bsLote.Current as CamadaDados.Servicos.TRegistro_LoteOS).St_gerarpedidoremessa = fProcessar.St_gerarpedido;
                                if (fProcessar.St_gerarpedido)
                                {
                                    //Montar itens do pedido remessa
                                    (bsLote.Current as CamadaDados.Servicos.TRegistro_LoteOS).lOs.ForEach(p =>
                                    {
                                        if ((bsLote.Current as CamadaDados.Servicos.TRegistro_LoteOS).lItensPedido.Exists(v => v.Cd_produto.Trim().Equals(p.CD_ProdutoOS.Trim())))
                                        {
                                            CamadaDados.Faturamento.Pedido.TRegistro_LanPedido_Item rPed = (bsLote.Current as CamadaDados.Servicos.TRegistro_LoteOS).lItensPedido.Find(v => v.Cd_produto.Trim().Equals(p.CD_ProdutoOS.Trim()));
                                            rPed.Quantidade++;
                                            rPed.Vl_subtotal = rPed.Quantidade * rPed.Vl_unitario;
                                        }
                                        else
                                        {
                                            decimal vl_unitario = decimal.Zero;
                                            //Buscar valor medio do estoque
                                            CamadaNegocio.Estoque.TCN_LanEstoque.VlMedioEstoque(p.Cd_empresa, p.CD_ProdutoOS, ref vl_unitario, null);
                                            //Buscar valor da ultima compra
                                            if (vl_unitario.Equals(decimal.Zero))
                                            {
                                                CamadaDados.Faturamento.NotaFiscal.TListUltimasCompras lUltimaCompra =
                                                    new CamadaDados.Faturamento.NotaFiscal.TCD_LanFaturamento_Item().Select(
                                                        new TpBusca[]
                                                {
                                                    new TpBusca()
                                                    {
                                                        vNM_Campo = "a.tp_movimento",
                                                        vOperador = "=",
                                                        vVL_Busca = "'E'"
                                                    },
                                                    new TpBusca()
                                                    {
                                                        vNM_Campo = "b.cd_produto",
                                                        vOperador = "=",
                                                        vVL_Busca = "'" + p.CD_ProdutoOS.Trim() + "'"
                                                    },
                                                    new TpBusca()
                                                    {
                                                        vNM_Campo = "ISNULL(e.ST_Complementar, 'N')",
                                                        vOperador = "=",
                                                        vVL_Busca = "'N'"
                                                    },
                                                    new TpBusca()
                                                    {
                                                        vNM_Campo = "ISNULL(e.ST_Devolucao, 'N')",
                                                        vOperador = "=",
                                                        vVL_Busca = "'N'"
                                                    },
                                                    new TpBusca()
                                                    {
                                                        vNM_Campo = "ISNULL(e.ST_GeraEstoque, 'N')",
                                                        vOperador = "=",
                                                        vVL_Busca = "'S'"
                                                    },
                                                    new TpBusca()
                                                    {
                                                        vNM_Campo = "ISNULL(a.ST_Registro, 'A')",
                                                        vOperador = "<>",
                                                        vVL_Busca = "'C'"
                                                    },
                                                }, 1);
                                                if (lUltimaCompra.Count > 0)
                                                {
                                                    vl_unitario = lUltimaCompra[0].Vl_unitario;
                                                }
                                            }

                                            (bsLote.Current as CamadaDados.Servicos.TRegistro_LoteOS).lItensPedido.Add(new CamadaDados.Faturamento.Pedido.TRegistro_LanPedido_Item()
                                            {
                                                Cd_Empresa       = p.Cd_empresa,
                                                Cd_local         = string.Empty,
                                                Cd_produto       = p.CD_ProdutoOS,
                                                Ds_produto       = p.DS_ProdutoOS,
                                                Cd_unidade_est   = p.Cd_unidOS,
                                                Cd_unidade_valor = p.Cd_unidOS,
                                                Quantidade       = 1,
                                                Vl_unitario      = vl_unitario,
                                                Vl_subtotal      = vl_unitario
                                            });
                                        }
                                    });
                                    if ((bsLote.Current as CamadaDados.Servicos.TRegistro_LoteOS).lItensPedido.Exists(p => p.Vl_unitario.Equals(decimal.Zero)))
                                    {
                                        using (TFLanItensNota fItens = new TFLanItensNota())
                                        {
                                            fItens.lItens = (bsLote.Current as CamadaDados.Servicos.TRegistro_LoteOS).lItensPedido;
                                            if (fItens.ShowDialog() != DialogResult.OK)
                                            {
                                                MessageBox.Show("Não é permitido processar lote com item do pedido com valor zero.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                                return;
                                            }
                                        }
                                    }
                                }
                                try
                                {
                                    CamadaNegocio.Servicos.TCN_LoteOS.ProcessarLoteOS(bsLote.Current as CamadaDados.Servicos.TRegistro_LoteOS, null);
                                    MessageBox.Show("Lote processado com sucesso.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                    this.afterBusca();
                                }
                                catch (Exception ex)
                                {
                                    MessageBox.Show(ex.Message.Trim());
                                }
                            }
                        }
                    }
                    else
                    {
                        MessageBox.Show("Lote ja se encontra processado.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                }
            }
        }