bool isArtigoConjunto(String artigo) { StdBELista tblArtigo = new StdBELista(); bool rv = false; try { tblArtigo = BSO.Consulta("select TipoComponente from Artigo where Artigo = '" + artigo + "'"); //alterar armazem dos artigos na linha if (tblArtigo.Vazia() == false) { rv = tblArtigo.DaValor <int>("TipoComponente") == 1 ? true : false; } } catch (Exception err) { PSO.Dialogos.MostraErro("[Consulta Artigo]: " + err.ToString()); rv = false; } return(rv); }
internal static Dictionary <String, int> CheckPendingDocuments(ERPContext oERPContext) { Dictionary <String, int> result = new Dictionary <string, int>(); Dictionary <String, String> groupCompanies = CrossCompany.Platform.GetGroupCompanies(oERPContext); //Exit if no companies where found if (groupCompanies.Count == 0) { return(result); } result.Add("Purchases", 0); result.Add("Sales", 0); //Load the documents to import from all the group companies groupCompanies.Remove(oERPContext.BSO.Contexto.CodEmp); foreach (string groupCompany in groupCompanies.Keys) { ErpBS oCompany = new ErpBS(); oCompany.AbreEmpresaTrabalho( StdBE100.StdBETipos.EnumTipoPlataforma.tpEmpresarial, groupCompany, Properties.Settings.Default.User, Properties.Settings.Default.Password); String strSQL = String.Format( "select sum(pur) Purchases, sum(sls) Sales " + "from(" + " select count(*) pur, 0 sls from cabecdoc cd inner join CabecDocStatus cds on cds.IdCabecDoc=cd.Id left join documentosvenda dv on cd.tipodoc = dv.documento " + " where dv.cdu_exportagrupo = 1 AND cd.cdu_exportado = 0 AND cds.Anulado=0 AND cd.entidade = '{0}' " + " UNION ALL " + " select 0 pur, count(*) pur from cabeccompras cc inner join CabecComprasStatus ccs on ccs.IdCabecCompras=cc.Id left join documentoscompra dc on cc.tipodoc = dc.documento " + " where dc.cdu_exportagrupo = 1 AND isnull(cc.cdu_exportado, 0) = 0 AND ccs.Anulado=0 AND cc.entidade = '{0}' " + " ) as tmp" , oERPContext.BSO.Contexto.CodEmp); StdBELista lstPendDocs = oCompany.Consulta(strSQL); if (!lstPendDocs.Vazia()) { if (lstPendDocs.DaValor <int>("Purchases") > 0) { result["Purchases"] += lstPendDocs.DaValor <int>("Purchases"); } if (lstPendDocs.DaValor <int>("Sales") > 0) { result["Sales"] += lstPendDocs.DaValor <int>("Sales"); } } } return(result); }
public override void ArtigoIdentificado(string Artigo, int NumLinha, ref bool Cancel, ExtensibilityEventArgs e) { bool inserido = false; for (int i = 0; i < lista_artigo.Count; i++) { if (lista_artigo[i].artigo == Artigo) { inserido = true; PSO.Dialogos.MostraAviso("O Artigo " + Artigo + " Ja foi inserido!"); Cancel = true; } } if (inserido == false) { if (isArtigoConjunto(Artigo) == true) { artigo_conjunto = new ArtigoConjunto();; artigo_conjunto.artigo = Artigo; artigo_conjunto.descricao = this.DocumentoVenda.Linhas.GetEdita(NumLinha).Descricao; artigo_conjunto.linha_inicial = NumLinha; StdBELista tblArtigo = new StdBELista(); try { tblArtigo = BSO.Consulta("select count(*) as total from ComponentesArtigos where ArtigoComposto = '" + Artigo + "'"); //alterar armazem dos artigos na linha if (tblArtigo.Vazia() == false) { artigo_conjunto.total_linha = tblArtigo.DaValor <int>("total"); artigo_conjunto.linha_final = artigo_conjunto.linha_inicial + artigo_conjunto.total_linha; lista_artigo.Add(artigo_conjunto); } } catch (Exception err) { PSO.Dialogos.MostraErro("[ArtigoIdentificado]: " + err.ToString()); } } } base.ArtigoIdentificado(Artigo, NumLinha, ref Cancel, e); }
/// <summary> /// Check for available Data Model updates in resources and apply them, if any. /// </summary> /// <param name="companyObject"></param> private static void DataUpgrade(ref ErpBS companyObject) { try { StdBELista dbVersion = companyObject.Consulta("select Versao from VersaoModulo where Modulo = 'XME'"); string currentVersion = dbVersion.Vazia() ? "0" : dbVersion.DaValor <String>("Versao"); int intVersion = Convert.ToInt32(currentVersion) + 1; //Apply the upgrade scripts from resources string sqlUPG = Properties.Resources.ResourceManager.GetString(String.Format("UPG_{0}", intVersion.ToString()), CultureInfo.InvariantCulture); while (!String.IsNullOrEmpty(sqlUPG)) { companyObject.DSO.ExecuteSQL(sqlUPG); intVersion += 1; sqlUPG = Properties.Resources.ResourceManager.GetString(String.Format("UPG_{0}", intVersion.ToString()), CultureInfo.InvariantCulture); } //Update the version intVersion -= 1; if (intVersion > Convert.ToInt32(currentVersion)) { string sqlQRY = string.Format("" + "if exists(select * from VersaoModulo where Modulo = 'XME') " + " update VersaoModulo set Versao = '{0}' where Modulo = 'XME' " + "else " + " insert into VersaoModulo(Modulo, Versao) values('XME', '{0}')" , intVersion.ToString()); companyObject.DSO.ExecuteSQL(sqlQRY); } } catch { //Do nothing } }
private void btnImport_Click(object sender, EventArgs e) { if (lstDocuments != null && lstDocuments.NumLinhas() > 0) { bool occurredErrors = false; bool occurredSomeIntegrations = false; DialogResult oDialog = ERPContext.PSO.Dialogos.MostraDialogoEsperaAsync( this, "A processar documentos...", new Action <Progress <int>, CancellationToken>((progress, cancel) => { int i = 0; lstDocuments.Inicio(); while (!lstDocuments.NoFim()) { ((IProgress <int>)progress).Report(Convert.ToInt32((decimal)i / (decimal)lstDocuments.NumLinhas() * 100)); if (lstDocuments.DaValor <bool>("Sel")) { Tuple <string, string> retValue = new Tuple <string, string>(String.Empty, String.Empty); if (lstDocuments.DaValor <string>("DocType").Equals("Compra")) { retValue = BusinessProcesses.ImportSalesDocument(ERPContext, lstDocuments.DaValor <string>("Company"), lstDocuments.DaValor <string>("IDDoc")); } else if (lstDocuments.DaValor <string>("DocType").Equals("Encomenda")) { retValue = BusinessProcesses.ImportPurchasesDocument(ERPContext, lstDocuments.DaValor <string>("Company"), lstDocuments.DaValor <string>("IDDoc")); } else { retValue = new Tuple <string, string>(String.Empty, String.Empty); } if (retValue.Item1.Equals("ERRO")) { occurredErrors = true; } else { occurredSomeIntegrations = true; } SetGridText(lstDocuments.DaValor <string>("IDDoc"), retValue); } i++; lstDocuments.Seguinte(); } })); // Erros if (occurredErrors) { ERPContext.PSO.Dialogos.MostraMensagem( StdBSTipos.TipoMsg.PRI_SimplesOk, "Ocorreram erros na importação. Verifique as notas.", StdBSTipos.IconId.PRI_Exclama); } else if (occurredSomeIntegrations) { ERPContext.PSO.Dialogos.MostraMensagem( StdBSTipos.TipoMsg.PRI_SimplesOk, "Integração terminada com sucesso.", StdBSTipos.IconId.PRI_Informativo); } else { ERPContext.PSO.Dialogos.MostraMensagem( StdBSTipos.TipoMsg.PRI_SimplesOk, "Não foram efetuadas quaisquer integrações.", StdBSTipos.IconId.PRI_Informativo); } } else { ERPContext.PSO.Dialogos.MostraMensagem( StdPlatBS100.StdBSTipos.TipoMsg.PRI_SimplesOk, "Não há documentos para processar.", StdBSTipos.IconId.PRI_Informativo); } }
public override void ValidaLinha(int NumLinha, ExtensibilityEventArgs e) { StdBELista tblArtigoMoeda = new StdBELista(); string artigoLinha = ""; string armazemSugestao = ""; string localSugestao = ""; bool calcula = false; StdBELista tblArtigo = new StdBELista(); StdBELista tblDocumento = new StdBELista(); linha = this.DocumentoVenda.Linhas.GetEdita(NumLinha); try { documento = this.DocumentoVenda.Tipodoc; tblDocumento = BSO.Consulta("select ArmazemSugestao, LocalSugestao from SeriesVendas where TipoDoc = '" + documento + "'"); //alterar armazem dos artigos na linha if (tblDocumento.Vazia() == false) { armazemSugestao = tblDocumento.DaValor <string>("ArmazemSugestao"); localSugestao = tblDocumento.DaValor <string>("LocalSugestao"); string linhaval = linha.Armazem; quantidade = linha.Quantidade; if (armazemSugestao.Length > 0) { linha.Armazem = armazemSugestao; linha.Localizacao = localSugestao; } } } catch (Exception err) { PSO.Dialogos.MostraErro("[Consulta Documento]: " + err.ToString()); } try { cliente = this.DocumentoVenda.Entidade; artigoLinha = linha.Artigo; tblArtigo = BSO.Consulta("select * from Artigo where Artigo = '" + artigoLinha + "'"); calcula = (bool)tblArtigo.Valor("CDU_Calculo"); tblArtigoMoeda = BSO.Consulta("select * from ArtigoMoeda where Artigo = '" + artigoLinha + "'"); } catch (Exception err) { PSO.Dialogos.MostraErro("[Consulta Artigo e ArtigoMoeda]: " + err.ToString()); } StdBELista tblDesconto = null; float descValor = 0; if (tblArtigoMoeda != null) { pvp1 = tblArtigoMoeda.DaValor <float>("PVP1"); float precBase = float.Parse(linha.CamposUtil["CDU_PrecBase"].Valor.ToString()); if (precBase == 0 || precBase == pvp1) { linha.CamposUtil["CDU_PrecBase"].Valor = pvp1; } } if (tblArtigo != null) { if (calcula == true) { artigo = artigoLinha; try { tblDesconto = BSO.Consulta("select * from TDU_DescCliente where CDU_Cliente = '" + cliente + "' and CDU_Artigo = '" + artigo + "'"); if (tblDesconto.Vazia() == false) { descValor = tblDesconto.DaValor <float>("CDU_Desconto"); } else { descValor = 0; } } catch (Exception err) { tblDesconto = null; descValor = 0; PSO.Dialogos.MostraErro("[Consulta Desconto cliente]: " + err.ToString()); } if (tblDesconto != null) { float linhaval = float.Parse(linha.CamposUtil["CDU_DescVal"].Valor.ToString()); if (linhaval == 0 || linhaval == descValor) { linha.CamposUtil["CDU_DescVal"].Valor = descValor; } } getLinhaValores(NumLinha); linha.PrecUnit = pbase - desconto - comp; } } int size = this.DocumentoVenda.Linhas.NumItens; for (int x = 0; x < lista_artigo.Count; x++) { ArtigoConjunto a = lista_artigo[x]; if (NumLinha >= a.linha_inicial && NumLinha <= a.linha_final) { if (size >= a.linha_final) { for (int i = a.linha_inicial; i <= a.linha_final; i++) { artigoLinha = DocumentoVenda.Linhas.GetEdita(i).Artigo; DocumentoVenda.Linhas.GetEdita(i).Quantidade = quantidade; } } } } base.ValidaLinha(NumLinha, e); }