Пример #1
0
 private void RetirarLocacao()
 {
     if (bsLocacao.Current != null)
     {
         if ((bsLocacao.Current as TRegistro_Locacao).St_registro.Trim().Equals("R"))
         {
             MessageBox.Show("Locação ja se encontra RETIRADA.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
             return;
         }
         if ((bsLocacao.Current as TRegistro_Locacao).St_registro.Trim().Equals("D"))
         {
             MessageBox.Show("Locação ja se encontra DEVOLVIDA.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
             return;
         }
         if (MessageBox.Show("Confirma RETIDADA  da locação corrente?", "Pergunta", MessageBoxButtons.YesNo,
                             MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == DialogResult.Yes)
         {
             try
             {
                 CamadaDados.Faturamento.PDV.TRegistro_PreVenda rPreVenda = null;
                 CamadaNegocio.Faturamento.Locacao.TCN_Locacao.RetirarLocacao(bsLocacao.Current as TRegistro_Locacao, ref rPreVenda, null);
                 MessageBox.Show("Locação retirada com sucesso.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                 this.LimpaFiltros();
                 Id_locacao.Text = (bsLocacao.Current as TRegistro_Locacao).Id_locacaostr;
                 Cd_empresa.Text = (bsLocacao.Current as TRegistro_Locacao).Cd_empresa;
                 this.afterBusca();
             }
             catch (Exception ex)
             { MessageBox.Show(ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); }
         }
     }
 }
Пример #2
0
 private void DevolverLocacao()
 {
     if (bsLocacao.Current != null)
     {
         if ((bsLocacao.Current as TRegistro_Locacao).St_registro.Trim().Equals("A"))
         {
             MessageBox.Show("Não é permitido DEVOLVER locação ABERTA.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
             return;
         }
         if ((bsLocacao.Current as TRegistro_Locacao).St_registro.Trim().ToUpper().Equals("D"))
         {
             MessageBox.Show("Locação ja se encontra DEVOLVIDA.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
             return;
         }
         using (TFDevolverLocacao fDevolver = new TFDevolverLocacao())
         {
             fDevolver.rLocacao = bsLocacao.Current as TRegistro_Locacao;
             if (fDevolver.ShowDialog() == DialogResult.OK)
             {
                 if (fDevolver.rLocacao != null)
                 {
                     try
                     {
                         CamadaDados.Faturamento.PDV.TRegistro_PreVenda rPreVenda = null;
                         TCN_Locacao.DevolverLocacao(fDevolver.rLocacao, ref rPreVenda, null);
                         MessageBox.Show("Locação devolvida com sucesso.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                         this.LimpaFiltros();
                         Id_locacao.Text = fDevolver.rLocacao.Id_locacaostr;
                         Cd_empresa.Text = fDevolver.rLocacao.Cd_empresa;
                         this.afterBusca();
                     }
                     catch (Exception ex)
                     { MessageBox.Show(ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); }
                 }
             }
         }
     }
 }
Пример #3
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);
 }
Пример #4
0
 public static CamadaDados.Faturamento.PDV.TRegistro_PreVenda ProcessarOSServico(CamadaDados.Servicos.TRegistro_LanServico val)
 {
     CamadaDados.Faturamento.PDV.TRegistro_PreVenda rPreVenda = null;
     //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.Dt_emissao    = CamadaDados.UtilData.Data_Servidor();
         rPreVenda.St_registro   = "A";
         rPreVenda.Ds_observacao = val.Ds_observacoesgerais;
         val.lServico.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
                 }
             });
         });
         val.lPecas.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());
     }
     return(rPreVenda);
 }
Пример #5
0
        private void afterGrava()
        {
            if (bsOS.Count > 0)
            {
                if (vl_minimopedido.Value > 0)
                {
                    if (st_gerarpedidoservicoseparado.Checked)
                    {
                        if (vl_totalpecas.Value < vl_minimopedido.Value)
                        {
                            MessageBox.Show("Valor total das peças a ser faturado é menor que o valor minimo configurado para gerar pedido.",
                                            "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            return;
                        }
                        if (vl_totalservicos.Value < vl_minimopedido.Value)
                        {
                            MessageBox.Show("Valor total dos serviços a ser faturado é menor que o valor minimo configurado para gerar pedido.",
                                            "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            return;
                        }
                    }
                    else if ((vl_totalservicos.Value + vl_totalpecas.Value) < vl_minimopedido.Value)
                    {
                        MessageBox.Show("Valor total das peças e/ou serviços é menor que o valor minimo configurado para gerar pedido.",
                                        "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        return;
                    }
                }
                if (BS_Pecas.Count < 1)
                {
                    if (!(MessageBox.Show("Não existe peças/serviços para processar Ordem(s) de Serviço(s).\r\n" +
                                          "Confirma processamento mesmo assim?", "Pergunta", MessageBoxButtons.YesNo, MessageBoxIcon.Question,
                                          MessageBoxDefaultButton.Button1) == DialogResult.Yes))
                    {
                        return;
                    }
                }
                try
                {
                    //Buscar evoluções
                    (bsOS.Current as TRegistro_LanServico).lEvolucao =
                        new CamadaDados.Servicos.TCD_LanServicoEvolucao().Select(
                            new Utils.TpBusca[]
                    {
                        new Utils.TpBusca()
                        {
                            vNM_Campo = "a.id_os",
                            vOperador = "=",
                            vVL_Busca = (bsOS.Current as CamadaDados.Servicos.TRegistro_LanServico).Id_osstr
                        },
                        new Utils.TpBusca()
                        {
                            vNM_Campo = "a.cd_empresa",
                            vOperador = "=",
                            vVL_Busca = "'" + (bsOS.Current as CamadaDados.Servicos.TRegistro_LanServico).Cd_empresa.Trim() + "'"
                        }
                    }, 0, string.Empty, "a.dt_inicio");
                    object obj = new CamadaDados.Servicos.Cadastros.TCD_TpOrdem().BuscarEscalar(
                        new Utils.TpBusca[]
                    {
                        new Utils.TpBusca()
                        {
                            vNM_Campo = "a.tp_ordem",
                            vOperador = "=",
                            vVL_Busca = (bsOS.Current as TRegistro_LanServico).Tp_ordemstr
                        }
                    }, "a.tp_faturamento");
                    if (obj == null ? false : obj.ToString().ToString().Equals("V"))
                    {
                        if (BS_Pecas.Current != null)
                        {
                            (bsOS.Current as TRegistro_LanServico).lPecas = (BS_Pecas.List as CamadaDados.Servicos.TList_LanServicosPecas);
                        }

                        CamadaDados.Faturamento.Pedido.TRegistro_Pedido rPedGarantia = null;
                        CamadaDados.Faturamento.PDV.TRegistro_PreVenda  rPreVenda    =
                            Proc_Commoditties.TProcessarOS.ProcessarOSPeca(bsOS.Current as TRegistro_LanServico, ref rPedGarantia);
                        CamadaNegocio.Servicos.TCN_LanServico.ProcessarOSPreVenda(bsOS.Current as TRegistro_LanServico, rPreVenda, rPedGarantia, null);
                        MessageBox.Show("Ordem serviço processada com sucesso.", "Pergunta", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        if (rPedGarantia != null)
                        {
                            //Buscar pedido
                            rPedGarantia = CamadaNegocio.Faturamento.Pedido.TCN_Pedido.Busca_Registro_Pedido(rPedGarantia.Nr_pedido.ToString(), null);
                            //Buscar itens pedido
                            CamadaNegocio.Faturamento.Pedido.TCN_Pedido.Busca_Pedido_Itens(rPedGarantia, false, null);
                            //Gerar Nota Fiscal
                            CamadaDados.Faturamento.NotaFiscal.TRegistro_LanFaturamento rFat =
                                Proc_Commoditties.TProcessaPedFaturar.ProcessaPedFaturar(rPedGarantia, false, decimal.Zero);
                            //Gravar Nota Fiscal
                            CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento.GravarFaturamento(rFat, null, null);
                            if (rFat.Cd_modelo.Trim().Equals("55"))
                            {
                                if (MessageBox.Show("Deseja enviar NF-e para a receita agora?", "Pergunta", MessageBoxButtons.YesNo,
                                                    MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == DialogResult.Yes)
                                {
                                    try
                                    {
                                        using (srvNFE.TFGerenciarNFe fGerNfe = new srvNFE.TFGerenciarNFe())
                                        {
                                            fGerNfe.rNfe = CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento.BuscarNF(rFat.Cd_empresa,
                                                                                                                            rFat.Nr_lanctofiscalstr,
                                                                                                                            null);
                                            fGerNfe.ShowDialog();
                                        }
                                    }
                                    catch (Exception ex)
                                    { MessageBox.Show("Erro enviar NF-e: " + ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); }
                                }
                            }
                        }
                    }
                    else
                    {
                        CamadaNegocio.Servicos.TCN_LanServico.ProcessarServico((bsOS.List as CamadaDados.Servicos.TList_LanServico).FindAll(p => p.St_processarOS),
                                                                               St_osinterna ? null : Proc_Commoditties.TProcessaPedidoOS.ProcessarOS((bsOS.List as CamadaDados.Servicos.TList_LanServico).FindAll(p => p.St_processarOS)),
                                                                               null);
                        MessageBox.Show("Ordem(s) de Serviço(s) processada(s) com sucesso.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }


                    this.Close();
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message.Trim());
                }
            }
            else
            {
                MessageBox.Show("Não existe ordem de serviço marcada para processar.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }