public bool ValidaLinhasOrcamento(dynamic _objCompra, ref string str_aviso, ref string str_erro) { bool flag; string source = "GestaoOrcamentos.ValidaLinhasOrcamento"; string log = base.GetParameter("PastaErro"); bool cancel = false; try { GcpBEDocumentoCompra objCompra = (GcpBEDocumentoCompra)_objCompra; for (int i = 1; i <= objCompra.get_Linhas().NumItens; i++) { int num = i; GcpBELinhaDocumentoCompra edita = objCompra.get_Linhas().get_Edita(ref num); if (edita.get_ContaCBL().Length == 0) { cancel = true; } if (edita.get_CCustoCBL().Length == 0) { cancel = true; } if (edita.get_IDObra().Length == 0) { cancel = true; } } flag = cancel; } catch (Exception exception) { Exception ex = exception; base.escreveErro(log, source, string.Format("<{0}>_{1}", source, ex.Message)); flag = true; } return(flag); }
public bool EnviaEmail(dynamic _objCompra, string email_to, string mensaguem, ref string str_aviso, ref string str_erro) { bool flag; string source = "GestaoOrcamentos.EnviaEmails"; string log = base.GetParameter("Mail_log"); string idioma = "2070"; try { GcpBEDocumentoCompra objCompra = (GcpBEDocumentoCompra)_objCompra; base.GetParameter("Mail_Report"); string email_mensaguem = base.GetParameter("Mail_Mensaguem"); string email_cc = base.GetParameter("Mail_CC"); string email_bcc = base.GetParameter("Mail_BCC"); base.GetParameter("Mail_TipoContacto"); string email_assunto = base.GetParameter("Mail_Assunto"); string email_body = ""; Dictionary <string, string> dicionario = new Dictionary <string, string>() { { "Artigo_2070", "Artigo" }, { "Descricao_2070", "Descrição" }, { "Unidade_2070", "Unidade" }, { "Quantidade_2070", "Quantidade" }, { "PrecUnit_2070", "Preço Unit." }, { "Total_2070", "Total" }, { "ContaCBL_2070", "Conta" }, { "CCustoCBL_2070", "Area de Negocio" } }; string primPar = base.GetParameter("Mail_primPar"); string segPar = base.GetParameter("Mail_segPar"); string terPar = base.GetParameter("Mail_terPar"); email_body = string.Concat(email_body, " \r\n <html xmlns:v='urn:schemas-microsoft-com:vml' xmlns:o='urn:schemas-microsoft-com:office:office' xmlns:w='urn:schemas-microsoft-com:office:word' xmlns:m='http://schemas.microsoft.com/office/2004/12/omml' xmlns='http://www.w3.org/TR/REC-html40'><head><meta http-equiv=Content-Type content='text/html; charset=iso-8859-1'><meta name=Generator content='Microsoft Word 15 (filtered medium)'><!--[if gte mso 9]><xml>\r\n <o:shapedefaults v:ext='edit' spidmax='1026' /></xml><![endif]--><!--[if gte mso 9]><xml><o:shapelayout v:ext='edit'><o:idmap v:ext='edit' data='1' />\r\n </o:shapelayout></xml><![endif]-->\r\n <style>\r\n body {\r\n font: normal 10px Verdana, Arial, sans-serif;\r\n font-size:11.0pt;\r\n font-family:'Calibri',sans-serif;\r\n mso-fareast-language:PT\r\n }\r\n </style>\r\n\r\n </head><body lang=PT > "); email_body = string.Concat(email_body, string.Format("<div> \r\n <p><span>{0}</span></p>\r\n {1}\r\n <p><span>{2}</span></p>\r\n <p><span>{3}</span></p>\r\n </div>", new object[] { primPar, mensaguem, segPar, terPar })); email_body = string.Concat(email_body, "<div><table border=2 cellspacing=10 cellpadding=10 style='border-collapse:collapse'>"); email_body = string.Concat(email_body, string.Format("<tr>\r\n <td width=100 valign=top style='width:100pt;color:white;background:#5C6BC0;padding:0cm 5.4pt 0cm 5.4pt'><p align=center style='text-align:center'><b>{0}</b></p></td>\r\n <td width=100 valign=top style='width:100pt;color:white;background:#5C6BC0;padding:0cm 5.4pt 0cm 5.4pt'><p align=center style='text-align:center'><b>{1}</b></p></td>\r\n <td width=100 valign=top style='width:100pt;color:white;background:#5C6BC0;padding:0cm 5.4pt 0cm 5.4pt'><p align=center style='text-align:center'><b>{2}</b></p></td>\r\n <td width=100 valign=top style='width:100pt;color:white;background:#5C6BC0;padding:0cm 5.4pt 0cm 5.4pt'><p align=center style='text-align:center'><b>{3}</b></p></td>\r\n <td width=100 valign=top style='width:100pt;color:white;background:#5C6BC0;padding:0cm 5.4pt 0cm 5.4pt'><p align=center style='text-align:center'><b>{4}</b></p></td>\r\n <td width=100 valign=top style='width:100pt;color:white;background:#5C6BC0;padding:0cm 5.4pt 0cm 5.4pt'><p align=center style='text-align:center'><b>{5}</b></p></td>\r\n <td width=100 valign=top style='width:100pt;color:white;background:#5C6BC0;padding:0cm 5.4pt 0cm 5.4pt'><p align=center style='text-align:center'><b>{6}</b></p></td>\r\n <td width=100 valign=top style='width:100pt;color:white;background:#5C6BC0;padding:0cm 5.4pt 0cm 5.4pt'><p align=center style='text-align:center'><b>{7}</b></p></td>\r\n </tr>\r\n ", new object[] { dicionario[string.Concat("Artigo_", idioma)], dicionario[string.Concat("Descricao_", idioma)], dicionario[string.Concat("Unidade_", idioma)], dicionario[string.Concat("Quantidade_", idioma)], dicionario[string.Concat("PrecUnit_", idioma)], dicionario[string.Concat("Total_", idioma)], dicionario[string.Concat("ContaCBL_", idioma)], dicionario[string.Concat("CCustoCBL_", idioma)] })); for (int i = 1; i <= objCompra.get_Linhas().NumItens; i++) { int num = i; GcpBELinhaDocumentoCompra linha = objCompra.get_Linhas().get_Edita(ref num); short ano = (short)objCompra.get_DataDoc().Year; string cCustoCBL = linha.get_CCustoCBL(); string contaCBL = linha.get_ContaCBL(); string centroNome = base.bso.Contabilidade.CentrosCusto.DaValorAtributo(ano, cCustoCBL, "Descricao").ToString(); string contaNome = base.bso.Contabilidade.PlanoContas.DaValorAtributo(ano, contaCBL, "Descricao").ToString(); email_body = string.Concat(email_body, string.Format("\r\n <tr>\r\n <td width=100 valign=top style='width:100pt;padding:0cm 5.4pt 0cm 5.4pt'><p align=right style='text-align:left'>{0}</p></td>\r\n <td width=100 valign=top style='width:100pt;padding:0cm 5.4pt 0cm 5.4pt'><p align=right style='text-align:left'>{1}</p></td>\r\n <td width=100 valign=top style='width:100pt;padding:0cm 5.4pt 0cm 5.4pt'><p align=right style='text-align:left'>{2}</p></td>\r\n <td width=100 valign=top style='width:100pt;padding:0cm 5.4pt 0cm 5.4pt'><p align=right style='text-align:left'>{3}</p></td>\r\n <td width=100 valign=top style='width:100pt;padding:0cm 5.4pt 0cm 5.4pt'><p align=right style='text-align:left'>{4}</p></td>\r\n <td width=100 valign=top style='width:100pt;padding:0cm 5.4pt 0cm 5.4pt'><p align=right style='text-align:left'>{5}</p></td>\r\n <td width=100 valign=top style='width:100pt;padding:0cm 5.4pt 0cm 5.4pt'><p align=right style='text-align:left'>{6} - {7}</p></td>\r\n <td width=100 valign=top style='width:100pt;padding:0cm 5.4pt 0cm 5.4pt'><p align=right style='text-align:left'>{8} - {9}</p></td>\r\n </tr>\r\n ", new object[] { linha.get_Artigo(), linha.get_Descricao(), linha.get_Unidade(), linha.get_Quantidade(), linha.get_PrecUnit(), linha.get_PrecoLiquido(), linha.get_ContaCBL(), contaNome, linha.get_CCustoCBL(), centroNome })); } email_body = string.Concat(email_body, " </table> <p></p> </div>"); email_body = string.Concat(email_body, "</body></html>"); email_mensaguem = email_body; if (email_to.Length <= 0) { throw new Exception(string.Format("O email não foi enviado porque não existe nenhum contacto associado ao utilizador!", new object[0])); } this.EnviaEmailNativo(email_to, email_mensaguem, email_cc, email_bcc, email_assunto); flag = true; } catch (Exception exception) { Exception ex = exception; base.escreveErro(log, source, string.Format("<{0}>_{1}", source, ex.Message)); flag = false; } return(flag); }