예제 #1
0
 private void GerarRemessa(TRegistro_CargaAvulsa rCarga)
 {
     CamadaDados.Diversos.TList_CfgEmpresa lCfgEmpresa =
         CamadaNegocio.Diversos.TCN_CfgEmpresa.Buscar(rCarga.Cd_empresa, null);
     if (lCfgEmpresa.Count.Equals(0))
     {
         MessageBox.Show("Não existe configuração parâmetro Empresa: " + rCarga.Cd_empresa, "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
         return;
     }
     CamadaDados.Faturamento.Pedido.TRegistro_Pedido rPed = null;
     try
     {
         Proc_Commoditties.TProcessaPedidoCargaAvulsa.GerarPedidoCarga(ref rPed,
                                                                       rCarga,
                                                                       lCfgEmpresa[0]);
         CamadaNegocio.Faturamento.Pedido.TCN_Pedido.Grava_Pedido(rPed, null);
         //Buscar pedido
         rPed = CamadaNegocio.Faturamento.Pedido.TCN_Pedido.Busca_Registro_Pedido(rPed.Nr_pedido.ToString(), null);
         //Buscar itens pedido
         CamadaNegocio.Faturamento.Pedido.TCN_Pedido.Busca_Pedido_Itens(rPed, false, null);
         for (int i = 0; i < rCarga.lItens.Count; i++)
         {
             rPed.Pedido_Itens[i].lItensCargaAvulsa.Add(rCarga.lItens[i]);
         }
         //Gerar Nota Fiscal
         TRegistro_LanFaturamento rFat =
             Proc_Commoditties.TProcessaPedFaturar.ProcessaPedFaturar(rPed, false, decimal.Zero);
         //Gravar Nota Fiscal
         TCN_LanFaturamento.GravarFaturamento(rFat, null, null);
         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)
     {
         if (rPed != null)
         {
             CamadaNegocio.Faturamento.Pedido.TCN_Pedido.Deleta_Pedido(rPed, null);
         }
         MessageBox.Show(ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
 }
예제 #2
0
 public static void DevolverNF(TRegistro_LanFaturamento val)
 {
     if (val != null)
     {
         //Verificar se Nf é de devolução
         if (new TCD_LanFat_ComplementoDevolucao().BuscarEscalar(
                 new TpBusca[]
         {
             new TpBusca()
             {
                 vNM_Campo = "a.cd_empresa",
                 vOperador = "=",
                 vVL_Busca = "'" + val.Cd_empresa.Trim() + "'"
             },
             new TpBusca()
             {
                 vNM_Campo = "a.NR_LanctoFiscal_Destino",
                 vOperador = "=",
                 vVL_Busca = val.Nr_lanctofiscalstr
             }
         }, "1") != null)
         {
             MessageBox.Show("Não é possivel devolver NF Devolução!", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
             return;
         }
         using (TFDevolverNF fDev = new TFDevolverNF())
         {
             fDev.rNf = val;
             if (fDev.ShowDialog() == DialogResult.OK)
             {
                 if (fDev.rNf != null)
                 {
                     try
                     {
                         TRegistro_LanFaturamento rFat = GerarDevolucao(fDev.rNf);
                         TCN_LanFaturamento.GravarFaturamento(rFat, null, null);
                         //Enviar NFe Destino
                         if (rFat != null)
                         {
                             //Buscar nota fiscal de destino
                             TRegistro_LanFaturamento rNf =
                                 TCN_LanFaturamento.BuscarNF(rFat.Cd_empresa,
                                                             rFat.Nr_lanctofiscalstr,
                                                             null);
                             //Se for nota propria e NF-e
                             if (rNf.Tp_nota.Trim().ToUpper().Equals("P") && rNf.Cd_modelo.Trim().Equals("55"))
                             {
                                 if (MessageBox.Show("Deseja enviar NF-e Devolução para a receita agora?", "Pergunta", MessageBoxButtons.YesNo,
                                                     MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == DialogResult.Yes)
                                 {
                                     try
                                     {
                                         using (srvNFE.TFGerenciarNFe fGerNfe = new srvNFE.TFGerenciarNFe())
                                         {
                                             fGerNfe.rNfe = rNf;
                                             fGerNfe.ShowDialog();
                                         }
                                     }
                                     catch (Exception ex)
                                     { MessageBox.Show("Erro enviar NF-e: " + ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); }
                                 }
                             }
                         }
                     }
                     catch (Exception ex)
                     { MessageBox.Show(ex.Message.Trim(), "erro", MessageBoxButtons.OK, MessageBoxIcon.Error); }
                 }
             }
         }
     }
 }
예제 #3
0
 private void VincularCfNFe()
 {
     using (Proc_Commoditties.TFVincularECFNF fVincular = new Proc_Commoditties.TFVincularECFNF())
     {
         if (fVincular.ShowDialog() == DialogResult.OK)
         {
             if (fVincular.lCupom != null)
             {
                 if (fVincular.lCupom.Count > 0)
                 {
                     CamadaDados.Faturamento.Pedido.TRegistro_Pedido rPed = null;
                     try
                     {
                         rPed = Proc_Commoditties.TProcessaCFVinculadoNF.ProcessarPedido(fVincular.lCupom,
                                                                                         fVincular.pCd_empresa,
                                                                                         fVincular.pCd_cliente);
                         //Gravar Pedido
                         CamadaNegocio.Faturamento.Pedido.TCN_Pedido.Grava_Pedido(rPed, null);
                         //Buscar pedido
                         rPed = CamadaNegocio.Faturamento.Pedido.TCN_Pedido.Busca_Registro_Pedido(rPed.Nr_pedido.ToString(), null);
                         //Buscar itens pedido
                         CamadaNegocio.Faturamento.Pedido.TCN_Pedido.Busca_Pedido_Itens(rPed, false, null);
                         //Se o CMI do pedido gerar financeiro
                         CamadaDados.Financeiro.Duplicata.TList_RegLanParcela lParcVinculado = new CamadaDados.Financeiro.Duplicata.TList_RegLanParcela();
                         //Buscar parcelas em aberto dos cupons que estao sendo vinculados
                         fVincular.lCupom.ForEach(p =>
                         {
                             new CamadaDados.Financeiro.Duplicata.TCD_LanParcela().Select(
                                 new TpBusca[]
                             {
                                 new TpBusca()
                                 {
                                     vNM_Campo = "isnull(dup.st_registro, 'A')",
                                     vOperador = "<>",
                                     vVL_Busca = "'C'"
                                 },
                                 new TpBusca()
                                 {
                                     vNM_Campo = "isnull(a.st_registro, 'A')",
                                     vOperador = "in",
                                     vVL_Busca = "('A', 'P')"
                                 },
                                 new TpBusca()
                                 {
                                     vNM_Campo = string.Empty,
                                     vOperador = "exists",
                                     vVL_Busca = "(select 1 from tb_pdv_cupom_x_vendarapida x " +
                                                 "inner join tb_pdv_cupomfiscal_x_duplicata y " +
                                                 "on x.cd_empresa = y.cd_empresa " +
                                                 "and x.id_vendarapida = y.id_cupom " +
                                                 "where y.cd_empresa = a.cd_empresa " +
                                                 "and y.nr_lancto = a.nr_lancto " +
                                                 "and x.cd_empresa = '" + p.Cd_empresa.Trim() + "' " +
                                                 "and x.id_cupom = " + p.Id_nfcestr + ")"
                                 }
                             }, 0, string.Empty, "a.dt_vencto, c.nm_clifor", string.Empty).ForEach(v => lParcVinculado.Add(v));
                         });
                         //Gerar Nota Fiscal
                         CamadaDados.Faturamento.NotaFiscal.TRegistro_LanFaturamento rFat =
                             Proc_Commoditties.TProcessaPedFaturar.ProcessaPedFaturar(rPed,
                                                                                      true,
                                                                                      lParcVinculado.Sum(p => p.Vl_atual));
                         //Vincular Cupom a Nota Fiscal
                         string Obs  = string.Empty;
                         string virg = string.Empty;
                         fVincular.lCupom.ForEach(p =>
                         {
                             rFat.lCupom.Add(p);
                             string Placa_km = TCN_NFCe.BuscarPlacaKM(p.Cd_empresa, p.Id_nfcestr, null);
                             Obs            += virg + p.NR_NFCestr.Trim() + "-" + (string.IsNullOrEmpty(Placa_km) ? p.Placa : Placa_km.Trim()) + (!string.IsNullOrEmpty(p.Nr_requisicao) ? "/" + p.Nr_requisicao.Trim() : string.Empty);
                             virg            = ",";
                         });
                         //Vincular financeiro a Nota Fiscal
                         rFat.lParcAgrupar = lParcVinculado;
                         if (!string.IsNullOrEmpty(Obs))
                         {
                             rFat.Dadosadicionais = (!string.IsNullOrEmpty(rFat.Dadosadicionais) ? "\r\n" : string.Empty) + "Ref. CF-Placa/KM/Frota/Requisicao " + Obs.Trim();
                         }
                         //Gravar Nota Fiscal
                         CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento.GravarFaturamento(rFat, null, null);
                         if (rFat.Cd_modelo.Trim().Equals("55"))
                         {
                             if (MessageBox.Show("NFe gerada com sucesso.\r\n" +
                                                 "Deseja enviar para receita?", "Pergunta", MessageBoxButtons.YesNo, MessageBoxIcon.Question,
                                                 MessageBoxDefaultButton.Button1) == DialogResult.Yes)
                             {
                                 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(ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
                         CamadaNegocio.Faturamento.Pedido.TCN_Pedido.Deleta_Pedido(rPed, null);
                     }
                 }
                 else
                 {
                     MessageBox.Show("Não existe cupom fiscal selecionado para vincular a Nota Fiscal.", "Mensagem",
                                     MessageBoxButtons.OK, MessageBoxIcon.Information);
                 }
             }
         }
     }
 }
예제 #4
0
        private void bb_inutilizar_Click(object sender, EventArgs e)
        {
            bool flag = false, semvalor = false;

            try
            {
                if (bsOrcamento.Current == null)
                {
                    MessageBox.Show("Selecione um projeto!", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return;
                }
                else if ((bsFicha.List as List <TRegistro_FichaTec>).Where(p => p.st_agregar).ToList().FindAll(c => string.IsNullOrEmpty(c.Cd_produto)).Count > 0)
                {
                    MessageBox.Show("Obrigatório informar código de produto para gerar a remessa", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }

                (bsFicha.List as List <TRegistro_FichaTec>).Where(p => p.st_agregar && p.quantidade_agregar > decimal.Zero).ToList().ForEach(p =>
                {
                    flag = true;
                    if (vTp_Fat.Equals("Normal"))
                    {
                        decimal saldo = BuscarSaldoLocal(vCD_Empresa, p.Cd_produto);
                        if (saldo.Equals(decimal.Zero))
                        {
                            MessageBox.Show("Não existe saldo disponivel no estoque.\r\n" +
                                            "Produto.........: " + p.Cd_produto.Trim() + "-" + p.Ds_produto.Trim() + "\r\n" +
                                            "Local Arm.......: " + vCd_Local.Trim() + "-" + vDs_Local + "\r\n" +
                                            "Saldo Disponivel: " + saldo.ToString("N3", new System.Globalization.CultureInfo("pt-BR", true)),
                                            "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            semvalor = true;
                        }
                    }
                });

                if (!semvalor)
                {
                    if (flag)
                    {
                        if (vTp_Fat.Equals("Normal"))
                        {
                            List <TRegistro_FichaTec> lficha = new List <TRegistro_FichaTec>();
                            (bsFicha.List as List <TRegistro_FichaTec>).Where(p => p.st_agregar && p.quantidade_agregar > decimal.Zero).ToList()
                            .ForEach(x => lficha.Add(x));
                            bsCFGEmpreendimento.DataSource = TCN_CadCFGEmpreendimento.Busca((bsOrcamento.Current as TRegistro_Orcamento).Cd_empresa, string.Empty, null);
                            bsCFGEmpreendimento.ResetCurrentItem();

                            TList_CadCFGEmpreendimento lcfg = TCN_CadCFGEmpreendimento.Busca(string.Empty, string.Empty, null);

                            if (lcfg[0].tp_precoitem.Trim().Equals("0"))
                            {
                                lficha.ForEach(p =>
                                {
                                    p.Vl_unitario = CamadaNegocio.Estoque.TCN_LanEstoque.Valor_Medio_Est_Produto(p.Cd_empresa, p.Cd_produto, null);
                                    if (p.Vl_unitario <= decimal.Zero)
                                    {
                                        throw new Exception("Produto " + p.Cd_produto.Trim() + "-" + p.Ds_produto.Trim() + " esta com valor medio negativo no estoque.");
                                    }
                                });
                            }


                            CamadaDados.Faturamento.NotaFiscal.TRegistro_LanFaturamento rNf =
                                Proc_Commoditties.ProcessaEmpreendimento.ProcessarEmpreendimento("N", (bsOrcamento.Current as TRegistro_Orcamento).Cd_clifor,
                                                                                                 rorcamento,
                                                                                                 lficha);
                            TCN_Orcamento.ProcessarNFEmpreendimento(rNf, bsCFGEmpreendimento.Current as TRegistro_CadCFGEmpreendimento, bsOrcamento.Current as TRegistro_Orcamento, null);


                            if (rNf.Tp_nota.Trim().ToUpper().Equals("P") && rNf.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)
                                {
                                    //Verificar se é nota de produto ou mista
                                    object obj = new CamadaDados.Faturamento.Cadastros.TCD_CadSerieNF().BuscarEscalar(
                                        new TpBusca[]
                                    {
                                        new TpBusca()
                                        {
                                            vNM_Campo = "a.nr_serie",
                                            vOperador = "=",
                                            vVL_Busca = "'" + rNf.Nr_serie + "'"
                                        }
                                    }, "a.tp_serie");
                                    if (obj != null)
                                    {
                                        if (obj.ToString().Trim().ToUpper().Equals("P") ||
                                            obj.ToString().Trim().ToUpper().Equals("M"))
                                        {
                                            try
                                            {
                                                using (srvNFE.TFGerenciarNFe fGerNfe = new srvNFE.TFGerenciarNFe())
                                                {
                                                    fGerNfe.rNfe = CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento.BuscarNF(rNf.Cd_empresa,
                                                                                                                                    rNf.Nr_lanctofiscalstr,
                                                                                                                                    null);
                                                    fGerNfe.ShowDialog();
                                                }
                                            }
                                            catch (Exception ex)
                                            { MessageBox.Show("Erro enviar NF-e: " + ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); }
                                        }
                                        else if (obj.ToString().Trim().ToUpper().Equals("S"))
                                        {
                                            try
                                            {
                                                CamadaDados.Faturamento.NotaFiscal.TRegistro_LanFaturamento rNfs =
                                                    CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento.BuscarNF(rNf.Cd_empresa,
                                                                                                                     rNf.Nr_lanctofiscalstr,
                                                                                                                     null);
                                                NFES.TGerarRPS.CriarArquivoRPS(rNfs.rCfgNfe, new List <CamadaDados.Faturamento.NotaFiscal.TRegistro_LanFaturamento>()
                                                {
                                                    rNfs
                                                });
                                                MessageBox.Show("NFS-e enviada com sucesso. Aguarde alguns segundos e consulte o status do lote.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                            }
                                            catch (Exception ex)
                                            { MessageBox.Show("Erro enviar NFS-e: " + ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); }
                                        }
                                    }
                                }
                            }
                        }
                        DialogResult = DialogResult.OK;
                    }
                    else
                    {
                        MessageBox.Show("Para confirmar deve selecionar algum item.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                }
            }
            catch (Exception ex)
            { MessageBox.Show("" + ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); }
        }
예제 #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);
            }
        }
예제 #6
0
 private void ProcessarOs()
 {
     if (bsOrdemServico.Current != null)
     {
         if ((bsOrdemServico.Current as CamadaDados.Servicos.TRegistro_LanServico).St_os.Trim().ToUpper().Equals("FE"))
         {
             if (MessageBox.Show("Confirma processamento OS Nº" + (bsOrdemServico.Current as CamadaDados.Servicos.TRegistro_LanServico).Id_osstr + "?",
                                 "Pergunta", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1)
                 == DialogResult.Yes)
             {
                 try
                 {
                     List <CamadaDados.Faturamento.Pedido.TRegistro_Pedido> lPed =
                         Proc_Commoditties.TProcessaPedidoOS.ProcessarOS(new List <CamadaDados.Servicos.TRegistro_LanServico> {
                         bsOrdemServico.Current as CamadaDados.Servicos.TRegistro_LanServico
                     });
                     CamadaNegocio.Servicos.TCN_LanServico.ProcessarServico(new List <TRegistro_LanServico>()
                     {
                         bsOrdemServico.Current as CamadaDados.Servicos.TRegistro_LanServico
                     }, lPed, null);
                     if (MessageBox.Show("Ordem serviço processada com sucesso.\r\n" +
                                         "Deseja gerar faturamento agora?", "Pergunta", MessageBoxButtons.YesNo, MessageBoxIcon.Question,
                                         MessageBoxDefaultButton.Button1) == DialogResult.Yes)
                     {
                         try
                         {
                             ////Gerar nota fiscal dos pedidos
                             lPed.ForEach(p =>
                             {
                                 p = CamadaNegocio.Faturamento.Pedido.TCN_Pedido.Busca_Registro_Pedido(p.Nr_pedido.ToString(), null);
                                 //Buscar itens pedido
                                 CamadaNegocio.Faturamento.Pedido.TCN_Pedido.Busca_Pedido_Itens(p, false, null);
                                 //Buscar financeiro pedido
                                 p.Pedidos_DT_Vencto = CamadaNegocio.Faturamento.Pedido.TCN_LanPedido_DT_Vencto.Busca(p.Nr_pedido, null);
                                 CamadaDados.Faturamento.NotaFiscal.TRegistro_LanFaturamento rNf =
                                     Proc_Commoditties.TProcessaPedFaturar.ProcessaPedFaturar(p, false, decimal.Zero);
                                 //Gravar Nota Fiscal
                                 CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento.GravarFaturamento(rNf, null, null);
                                 //Imprimir Nota Fiscal
                                 //Se for nota propria e NF-e
                                 if (rNf.Tp_nota.Trim().ToUpper().Equals("P"))
                                 {
                                     if (rNf.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)
                                         {
                                             //Verificar se é nota de produto ou mista
                                             object obj = new CamadaDados.Faturamento.Cadastros.TCD_CadSerieNF().BuscarEscalar(
                                                 new Utils.TpBusca[]
                                             {
                                                 new Utils.TpBusca()
                                                 {
                                                     vNM_Campo = "a.nr_serie",
                                                     vOperador = "=",
                                                     vVL_Busca = "'" + rNf.Nr_serie.Trim() + "'"
                                                 }
                                             }, "a.tp_serie");
                                             if (obj != null)
                                             {
                                                 if (obj.ToString().Trim().ToUpper().Equals("P") ||
                                                     obj.ToString().Trim().ToUpper().Equals("M"))
                                                 {
                                                     try
                                                     {
                                                         using (srvNFE.TFGerenciarNFe fGerNfe = new srvNFE.TFGerenciarNFe())
                                                         {
                                                             fGerNfe.rNfe = CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento.BuscarNF(rNf.Cd_empresa,
                                                                                                                                             rNf.Nr_lanctofiscalstr,
                                                                                                                                             null);
                                                             fGerNfe.ShowDialog();
                                                         }
                                                     }
                                                     catch (Exception ex)
                                                     { MessageBox.Show("Erro enviar NF-e: " + ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); }
                                                 }
                                                 else if (obj.ToString().Trim().ToUpper().Equals("S"))
                                                 {
                                                     try
                                                     {
                                                         CamadaDados.Faturamento.NotaFiscal.TRegistro_LanFaturamento rNfs =
                                                             CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento.BuscarNF(rNf.Cd_empresa,
                                                                                                                              rNf.Nr_lanctofiscalstr,
                                                                                                                              null);
                                                         NFES.TGerarRPS.CriarArquivoRPS(rNfs.rCfgNfe, new List <CamadaDados.Faturamento.NotaFiscal.TRegistro_LanFaturamento>()
                                                         {
                                                             rNfs
                                                         });
                                                         MessageBox.Show("NFS-e enviada com sucesso. Aguarde alguns segundos e consulte o status do lote.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                                     }
                                                     catch (Exception ex)
                                                     { MessageBox.Show("Erro enviar NFS-e: " + ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); }
                                                 }
                                             }
                                         }
                                     }
                                     else
                                     {
                                         //Chamar tela de impressao para a nota fiscal
                                         //somente se for nota propria
                                         using (FormRelPadrao.TFGerenciadorImpressao fImp = new FormRelPadrao.TFGerenciadorImpressao())
                                         {
                                             fImp.St_enabled_enviaremail = true;
                                             fImp.pCd_clifor             = rNf.Cd_clifor;
                                             fImp.pMensagem = "NOTA FISCAL Nº" + rNf.Nr_notafiscal.ToString();
                                             if ((fImp.ShowDialog() == DialogResult.OK) || (fImp.pSt_enviaremail))
                                             {
                                                 FormRelPadrao.LayoutNotaFiscal Relatorio = new FormRelPadrao.LayoutNotaFiscal();
                                                 Relatorio.Imprime_NF(rNf,
                                                                      fImp.pSt_imprimir,
                                                                      fImp.pSt_visualizar,
                                                                      fImp.pSt_enviaremail,
                                                                      fImp.pDestinatarios,
                                                                      "NOTA FISCAL Nº " + rNf.Nr_notafiscal.ToString(),
                                                                      fImp.pMensagem);
                                             }
                                         }
                                     }
                                 }
                             });
                         }
                         catch (Exception ex)
                         {
                             throw new Exception("Erro gerar Nota Fiscal.\r\n" + ex.Message.Trim() + "\r\n" +
                                                 "Efetue as correções necessarias e proceda ao faturamento\r\n" +
                                                 "dos pedidos gerados pelo processamento da OS");
                         }
                     }
                     this.LimparFiltros();
                     id_osbusca.Text = (bsOrdemServico.Current as CamadaDados.Servicos.TRegistro_LanServico).Id_osstr;
                     this.afterBusca();
                 }
                 catch (Exception ex)
                 { MessageBox.Show(ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); }
             }
         }
         else
         {
             MessageBox.Show("Permitido processar somente OS FINALIZADA.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
         }
     }
 }