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); } } } }
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); } } } } } }
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); }
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); }
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); } }