コード例 #1
0
        private void afterPrint()
        {
            if (bsMDFe.Current != null)
            {
                if (!(bsMDFe.Current as TRegistro_Lote_X_MDFe).cStat.Trim().Equals("100"))
                {
                    MessageBox.Show("Permitido imprimir DAMDFE somente de MDF-e aceito pela receita.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return;
                }

                using (FormRelPadrao.TFGerenciadorImpressao fImp = new FormRelPadrao.TFGerenciadorImpressao())
                {
                    FormRelPadrao.Relatorio Rel = new FormRelPadrao.Relatorio();
                    Rel.Altera_Relatorio = Altera_Relatorio;
                    BindingSource BinDados = new BindingSource();
                    BinDados.DataSource = TCN_MDFe.Buscar((bsMDFe.Current as TRegistro_Lote_X_MDFe).Cd_empresa,
                                                          (bsMDFe.Current as TRegistro_Lote_X_MDFe).Id_mdfestr,
                                                          string.Empty,
                                                          string.Empty,
                                                          string.Empty,
                                                          string.Empty,
                                                          string.Empty,
                                                          string.Empty,
                                                          string.Empty,
                                                          string.Empty,
                                                          string.Empty,
                                                          string.Empty,
                                                          null);
                    Rel.DTS_Relatorio = BinDados;
                    //Buscar Empresa
                    BindingSource bs_empresa = new BindingSource();
                    bs_empresa.DataSource = new CamadaDados.Diversos.TList_CadEmpresa()
                    {
                        empresa.SelectedItem as CamadaDados.Diversos.TRegistro_CadEmpresa
                    };
                    Rel.Adiciona_DataSource("EMPRESA", bs_empresa);
                    //Parametro RNTRC
                    object obj_rntrc = new CamadaDados.Frota.Cadastros.TCD_CfgFrota().BuscarEscalar(
                        new Utils.TpBusca[]
                    {
                        new Utils.TpBusca()
                        {
                            vNM_Campo = "a.cd_empresa",
                            vOperador = "=",
                            vVL_Busca = "'" + (empresa.SelectedItem as CamadaDados.Diversos.TRegistro_CadEmpresa).Cd_empresa.Trim() + "'"
                        }
                    }, "a.rntrc");
                    if (obj_rntrc != null)
                    {
                        Rel.Parametros_Relatorio.Add("RNTRC", obj_rntrc.ToString());
                    }
                    //Montar Parametros Veiculos
                    TList_MDFe_Veiculo lVeic = TCN_MDFe_Veiculo.Buscar((bsMDFe.Current as TRegistro_Lote_X_MDFe).Cd_empresa,
                                                                       (bsMDFe.Current as TRegistro_Lote_X_MDFe).Id_mdfestr,
                                                                       null);
                    if (lVeic.Count > 0)
                    {
                        for (int i = 0; i < lVeic.Count; i++)
                        {
                            if (i < 3)
                            {
                                Rel.Parametros_Relatorio.Add("PLACA" + (i + 1).ToString(), lVeic[i].Placa);
                                Rel.Parametros_Relatorio.Add("RNTRC" + (i + 1).ToString(), lVeic[i].rVeic.Rntrc_prop);
                            }
                            else
                            {
                                break;
                            }
                        }
                    }
                    //Montar Parametros Motorista
                    TList_MDFe_Motorista lMot = TCN_MDFe_Motorista.Buscar((bsMDFe.Current as TRegistro_Lote_X_MDFe).Cd_empresa,
                                                                          (bsMDFe.Current as TRegistro_Lote_X_MDFe).Id_mdfestr,
                                                                          null);
                    int index = 0;
                    if (lMot.Count > 0)
                    {
                        while (index < 6 && index < lMot.Count)
                        {
                            Rel.Parametros_Relatorio.Add("NOME" + (index + 1).ToString(), lMot[index].Nm_motorista.Trim());
                            Rel.Parametros_Relatorio.Add("CPF" + (index + 1).ToString(), lMot[index].Cpf_motorista.Trim());
                            index++;
                        }
                    }
                    if (index < 6)
                    {
                        TList_MDFe_Evento lEvent = TCN_MDFe_Evento.Buscar((bsMDFe.Current as TRegistro_Lote_X_MDFe).Cd_empresa,
                                                                          (bsMDFe.Current as TRegistro_Lote_X_MDFe).Id_mdfestr,
                                                                          "IC",
                                                                          "T",
                                                                          null);
                        if (lEvent.Count > 0)
                        {
                            while (index < 6 && index < lEvent.Count)
                            {
                                Rel.Parametros_Relatorio.Add("NOME" + (index + 1).ToString(), lEvent[index].Nm_motorista.Trim());
                                Rel.Parametros_Relatorio.Add("CPF" + (index + 1).ToString(), lEvent[index].Cpf_motorista.Trim());
                                index++;
                            }
                        }
                    }
                    //Parametros Documentos
                    TList_MDFe_Documentos lDoc = TCN_MDFe_Documentos.Buscar((bsMDFe.Current as TRegistro_Lote_X_MDFe).Cd_empresa,
                                                                            (bsMDFe.Current as TRegistro_Lote_X_MDFe).Id_mdfestr,
                                                                            null);
                    if (lDoc.Count > 0)
                    {
                        Rel.Parametros_Relatorio.Add("QTD_CTE", lDoc.Count(p => !string.IsNullOrEmpty(p.ChaveCTe)));
                        Rel.Parametros_Relatorio.Add("QTD_NFE", lDoc.Count(p => !string.IsNullOrEmpty(p.ChaveNFe)));
                        Rel.Parametros_Relatorio.Add("PESO", lDoc.Sum(p => p.PesoBrutoNFe));
                        for (int i = 0; i < lDoc.Count; i++)
                        {
                            if (i >= 8)
                            {
                                break;
                            }
                            else
                            {
                                Rel.Parametros_Relatorio.Add("CHAVE" + (i + 1).ToString(), string.IsNullOrEmpty(lDoc[i].ChaveCTe) ? lDoc[i].ChaveNFe : lDoc[i].ChaveCTe);
                            }
                        }
                    }
                    Rel.Nome_Relatorio          = "TFLanMDFe_DAMDFe";
                    Rel.NM_Classe               = "TFLanMDFe";
                    Rel.Modulo                  = "FRT";
                    Rel.Ident                   = "TFLanMDFe_DAMDFe";
                    fImp.St_enabled_enviaremail = true;
                    fImp.pCd_clifor             = string.Empty;
                    fImp.pMensagem              = "DAMDFe";
                    //Verificar se existe logo configurada para a empresa
                    if ((empresa.SelectedItem as CamadaDados.Diversos.TRegistro_CadEmpresa).Img != null)
                    {
                        Rel.Parametros_Relatorio.Add("IMAGEM_RELATORIO", (empresa.SelectedItem as CamadaDados.Diversos.TRegistro_CadEmpresa).Img);
                    }
                    if (Altera_Relatorio)
                    {
                        Rel.Gera_Relatorio(string.Empty,
                                           fImp.pSt_imprimir,
                                           fImp.pSt_visualizar,
                                           fImp.pSt_enviaremail,
                                           fImp.pSt_exportPdf,
                                           fImp.Path_exportPdf,
                                           fImp.pDestinatarios,
                                           null,
                                           "DAMDFe",
                                           fImp.pDs_mensagem);
                        Altera_Relatorio = false;
                    }
                    else if ((fImp.ShowDialog() == DialogResult.OK) || (fImp.pSt_enviaremail))
                    {
                        List <string> Anexo = null;
                        if (fImp.St_receberXmlNfe)
                        {
                            string path_anexo = CamadaNegocio.ConfigGer.TCN_CadParamGer.BuscaVlString("PATH_ANEXO_EMAIL", null);
                            if (!string.IsNullOrEmpty(path_anexo))
                            {
                                if (!System.IO.Directory.Exists(path_anexo))
                                {
                                    System.IO.Directory.CreateDirectory(path_anexo);
                                }
                                if (!path_anexo.EndsWith("\\"))
                                {
                                    path_anexo += System.IO.Path.DirectorySeparatorChar.ToString();
                                }
                            }
                        }
                        Rel.Gera_Relatorio(string.Empty,
                                           fImp.pSt_imprimir,
                                           fImp.pSt_visualizar,
                                           fImp.pSt_enviaremail,
                                           fImp.pSt_exportPdf,
                                           fImp.Path_exportPdf,
                                           fImp.pDestinatarios,
                                           Anexo,
                                           "MDFe",
                                           fImp.pDs_mensagem);
                    }
                }
            }
        }
コード例 #2
0
 private void EncerrarMDFe()
 {
     if (bsMDFe.Current != null)
     {
         //Cancelar CTe
         if (MessageBox.Show("Confirma encerramento MDFe?", "Mensagem", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1)
             == DialogResult.Yes)
         {
             if ((bsMDFe.Current as TRegistro_MDFe).Id_mdfe.HasValue)//MDF-e existe no sistema
             {
                 CamadaDados.Frota.TList_MDFe_Evento lEvento =
                     CamadaNegocio.Frota.TCN_MDFe_Evento.Buscar((bsMDFe.Current as TRegistro_MDFe).Cd_empresa,
                                                                (bsMDFe.Current as TRegistro_MDFe).Id_mdfestr,
                                                                "EC",
                                                                string.Empty,
                                                                null);
                 if (lEvento.Count.Equals(0))
                 {
                     string      vColunas = "a.ds_cidade|Cidade|200;a.uf|UF|30;a.cd_cidade|Código|60;a.cd_uf|Cd. UF|60";
                     DataRowView linha    = FormBusca.UtilPesquisa.BTN_BUSCA(vColunas, null, new CamadaDados.Financeiro.Cadastros.TCD_CadCidade(), string.Empty);
                     if (linha == null)
                     {
                         MessageBox.Show("Obrigótio selecinar cidade de encerramento do MDFe.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                         return;
                     }
                     //Buscar evento Encerramento
                     CamadaDados.Faturamento.Cadastros.TList_Evento lEv =
                         CamadaNegocio.Faturamento.Cadastros.TCN_Evento.Buscar(string.Empty, string.Empty, "EC", null);
                     if (lEv.Count.Equals(0))
                     {
                         MessageBox.Show("Não existe evento de ENCERRAMENTO MDFe cadastrado.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                         return;
                     }
                     //Encerrar MDFe Receita
                     TRegistro_MDFe_Evento rEvento = new TRegistro_MDFe_Evento();
                     rEvento.Cd_empresa       = (bsMDFe.Current as TRegistro_MDFe).Cd_empresa;
                     rEvento.Id_mdfe          = (bsMDFe.Current as TRegistro_MDFe).Id_mdfe;
                     rEvento.Chaveacesso      = (bsMDFe.Current as TRegistro_MDFe).Chaveacesso;
                     rEvento.Nr_protocoloMDFe = (bsMDFe.Current as TRegistro_MDFe).Nr_protocolo;
                     rEvento.Dt_evento        = CamadaDados.UtilData.Data_Servidor();
                     rEvento.Cd_eventostr     = lEv[0].Cd_eventostr;
                     rEvento.Ds_evento        = lEv[0].Ds_evento;
                     rEvento.Tp_evento        = lEv[0].Tp_evento;
                     rEvento.Cd_cidadeEnc     = linha["cd_cidade"].ToString();
                     rEvento.Ds_cidadeEnc     = linha["ds_cidade"].ToString();
                     rEvento.Cd_ufEnc         = linha["cd_uf"].ToString();
                     rEvento.Uf_enc           = linha["uf"].ToString();
                     rEvento.St_registro      = "A";
                     CamadaNegocio.Frota.TCN_MDFe_Evento.Gravar(rEvento, null);
                     if (MessageBox.Show("Evento de ENCERRAMENTO gravado com sucesso.\r\n" +
                                         "Deseja enviar o mesmo para a receita?", "Pergunta",
                                         MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1)
                         == DialogResult.Yes)
                     {
                         string msg = MDFe.Evento.TEventoMDFe.EnviarEvento(rEvento, rCfgMdfe);
                         if (!string.IsNullOrEmpty(msg))
                         {
                             MessageBox.Show("Erro ao enviar evento ENCERRAMENTO para a receita.\r\n" +
                                             "Aguarde um tempo e tente novamente.\r\n" +
                                             "Erro: " + msg.Trim() + "\r\n" +
                                             "Obs.: O MDFe não será encerrado no sistema Aliance.NET enquanto o mesmo não for encerrado na receita.",
                                             "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
                         }
                         else
                         {
                             bsMDFe.RemoveCurrent();
                             MessageBox.Show("Evento registrado e vinculado a MDFe.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                             TCN_MDFe.Encerrar(bsMDFe.Current as TRegistro_MDFe, null);
                             MessageBox.Show("MDFe encerrado com sucesso no sistema Aliance.NET", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                         }
                     }
                 }
                 else
                 {
                     lEvento[0].Nr_protocoloMDFe = (bsMDFe.Current as TRegistro_MDFe).Nr_protocolo;
                     string msg = MDFe.Evento.TEventoMDFe.EnviarEvento(lEvento[0], rCfgMdfe);
                     if (!string.IsNullOrEmpty(msg))
                     {
                         MessageBox.Show("Erro ao enviar evento ENCERRAMENTO para a receita.\r\n" +
                                         "Aguarde um tempo e tente novamente.\r\n" +
                                         "Erro: " + msg.Trim() + "\r\n" +
                                         "Obs.: O MDFe não será encerrado no sistema Aliance.NET enquanto o mesmo não for encerrado na receita.",
                                         "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
                     }
                     else
                     {
                         bsMDFe.RemoveCurrent();
                         MessageBox.Show("Evento registrado e vinculado a MDFe.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                         CamadaNegocio.Frota.TCN_MDFe.Encerrar(bsMDFe.Current as TRegistro_MDFe, null);
                         MessageBox.Show("MDFe encerrado com sucesso no sistema Aliance.NET", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                     }
                 }
             }
             else //MDF-e não existe no sistema, encerrar somente na receita
             {
                 string      vColunas = "a.ds_cidade|Cidade|200;a.uf|UF|30;a.cd_cidade|Código|60;a.cd_uf|Cd. UF|60";
                 DataRowView linha    = FormBusca.UtilPesquisa.BTN_BUSCA(vColunas, null, new CamadaDados.Financeiro.Cadastros.TCD_CadCidade(), string.Empty);
                 if (linha == null)
                 {
                     MessageBox.Show("Obrigótio selecinar cidade de encerramento do MDFe.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                     return;
                 }
                 //Buscar evento Encerramento
                 CamadaDados.Faturamento.Cadastros.TList_Evento lEv =
                     CamadaNegocio.Faturamento.Cadastros.TCN_Evento.Buscar(string.Empty, string.Empty, "EC", null);
                 if (lEv.Count.Equals(0))
                 {
                     MessageBox.Show("Não existe evento de ENCERRAMENTO MDFe cadastrado.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                     return;
                 }
                 //Encerrar MDFe Receita
                 TRegistro_MDFe_Evento rEvento = new TRegistro_MDFe_Evento();
                 rEvento.Cd_empresa       = rCfgMdfe.Cd_empresa;
                 rEvento.Chaveacesso      = (bsMDFe.Current as TRegistro_MDFe).Chaveacesso;
                 rEvento.Nr_protocoloMDFe = (bsMDFe.Current as TRegistro_MDFe).Nr_protocolo;
                 rEvento.Dt_evento        = CamadaDados.UtilData.Data_Servidor();
                 rEvento.Cd_eventostr     = lEv[0].Cd_eventostr;
                 rEvento.Ds_evento        = lEv[0].Ds_evento;
                 rEvento.Tp_evento        = lEv[0].Tp_evento;
                 rEvento.Cd_cidadeEnc     = linha["cd_cidade"].ToString();
                 rEvento.Ds_cidadeEnc     = linha["ds_cidade"].ToString();
                 rEvento.Cd_ufEnc         = linha["cd_uf"].ToString();
                 rEvento.Uf_enc           = linha["uf"].ToString();
                 rEvento.St_registro      = "A";
                 string msg = MDFe.Evento.TEventoMDFe.EnviarEncerramento(rEvento, rCfgMdfe);
                 if (!string.IsNullOrEmpty(msg))
                 {
                     MessageBox.Show("Erro ao enviar evento ENCERRAMENTO para a receita.\r\n" +
                                     "Aguarde um tempo e tente novamente.\r\n" +
                                     "Erro: " + msg.Trim() + "\r\n" +
                                     "Obs.: O MDFe não será encerrado no sistema Aliance.NET enquanto o mesmo não for encerrado na receita.",
                                     "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
                 }
                 else
                 {
                     bsMDFe.RemoveCurrent();
                     MessageBox.Show("Evento registrado e vinculado a MDFe.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                 }
             }
         }
     }
 }