private void gRequisicao_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e) { if (gRequisicao.Columns[e.ColumnIndex].SortMode == DataGridViewColumnSortMode.NotSortable) { return; } if (bsRequisicao.Count < 1) { return; } PropertyDescriptorCollection lP = TypeDescriptor.GetProperties(new CamadaDados.Compra.Lancamento.TRegistro_Requisicao()); CamadaDados.Compra.Lancamento.TList_Requisicao lComparer; SortOrder direcao = SortOrder.None; if ((gRequisicao.Columns[e.ColumnIndex].HeaderCell.SortGlyphDirection == SortOrder.None) || (gRequisicao.Columns[e.ColumnIndex].HeaderCell.SortGlyphDirection == SortOrder.Descending)) { lComparer = new CamadaDados.Compra.Lancamento.TList_Requisicao(lP.Find(gRequisicao.Columns[e.ColumnIndex].DataPropertyName, true), SortOrder.Ascending); foreach (DataGridViewColumn c in gRequisicao.Columns) { c.HeaderCell.SortGlyphDirection = SortOrder.None; } direcao = SortOrder.Ascending; } else { lComparer = new CamadaDados.Compra.Lancamento.TList_Requisicao(lP.Find(gRequisicao.Columns[e.ColumnIndex].DataPropertyName, true), SortOrder.Descending); foreach (DataGridViewColumn c in gRequisicao.Columns) { c.HeaderCell.SortGlyphDirection = SortOrder.None; } direcao = SortOrder.Descending; } (bsRequisicao.List as CamadaDados.Compra.Lancamento.TList_Requisicao).Sort(lComparer); bsRequisicao.ResetBindings(false); gRequisicao.Columns[e.ColumnIndex].HeaderCell.SortGlyphDirection = direcao; }
private void LancarRequisicao() { if (bsMPrima.Current != null) { if ((bsMPrima.DataSource as CamadaDados.Producao.Producao.TList_MPrima).Exists(p => p.Qtd_saldonecessario < 0)) { try { //Buscar Tipo Requisicao Externa object obj = new CamadaDados.Compra.TCD_TpRequisicao().BuscarEscalar( new Utils.TpBusca[] { new Utils.TpBusca() { vNM_Campo = "a.TP_Requisicao", vOperador = "=", vVL_Busca = "'E'" } }, "a.ID_TpRequisicao"); if (obj == null) { MessageBox.Show("Não existe Tipo Requisição cadastrada no sistema!", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } //Buscar Clifor Requisitante object objClifor = new CamadaDados.Financeiro.Cadastros.TCD_CadClifor().BuscarEscalar( new Utils.TpBusca[] { new Utils.TpBusca() { vNM_Campo = string.Empty, vOperador = "exists", vVL_Busca = "(select 1 from tb_cmp_usuariocompra x " + "where x.cd_clifor_cmp = a.cd_clifor " + "and isnull(x.st_requisitar, 'N') = 'S' " + "and x.login = '******')" } }, "a.cd_clifor"); if (objClifor == null) { MessageBox.Show("Usuário: " + Utils.Parametros.pubLogin.Trim() + "\r\n" + "não possui clifor requisitante cadastrado", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } CamadaDados.Compra.Lancamento.TList_Requisicao lRequisicao = new CamadaDados.Compra.Lancamento.TList_Requisicao(); CamadaDados.Producao.Producao.TList_OrdemProducao_X_Requisicao lOrdemProducao = new CamadaDados.Producao.Producao.TList_OrdemProducao_X_Requisicao(); lOrdemProducao.Add(new CamadaDados.Producao.Producao.TRegistro_OrdemProducao_X_Requisicao() { Cd_empresa = CD_Empresa.Text, Id_ordem = Convert.ToDecimal(pId_ordem) }); (bsMPrima.DataSource as CamadaDados.Producao.Producao.TList_MPrima).FindAll(p => p.Qtd_saldonecessario < 0).ForEach(p => { if (new CamadaDados.Producao.Producao.TCD_OrdemProducao().BuscarEscalar( new Utils.TpBusca[] { new Utils.TpBusca() { vNM_Campo = string.Empty, vOperador = "exists", vVL_Busca = "(select 1 from TB_PRD_OrdemProducao_X_Requisicao x " + "inner join TB_PRD_OrdemProducao y " + "on x.id_ordem = y.id_ordem " + "and x.cd_empresa = y.cd_empresa " + "inner join TB_PRD_FichaTec_MPrima h " + "on y.ID_Formulacao = h.ID_Formulacao " + "and y.cd_empresa = h.cd_empresa " + "where a.cd_empresa = x.cd_empresa " + "and a.ID_Ordem = x.ID_Ordem " + "and exists(select 1 from TB_CMP_Requisicao z " + " where h.cd_empresa = z.cd_empresa " + " and h.CD_Produto = z.CD_Produto " + " and x.ID_Requisicao = z.ID_Requisicao " + " and x.cd_empresa = z.cd_empresa " + " and z.ST_Requisicao <> 'CA') " + "and a.id_ordem = " + pId_ordem.Trim() + " " + "and h.CD_Produto = " + p.Cd_mprima.Trim() + ")" } }, "1") == null) { lRequisicao.Add(new CamadaDados.Compra.Lancamento.TRegistro_Requisicao() { St_integrar = true, Cd_empresa = CD_Empresa.Text, Id_tprequisicaostr = obj.ToString(), Dt_requisicao = CamadaDados.UtilData.Data_Servidor(), Cd_clifor_requisitante = objClifor.ToString(), Cd_produto = p.Cd_mprima, Ds_produto = p.Ds_mprima, Cd_local = p.Cd_local, Ds_local = p.Ds_local, Sigla_unidade = p.Sigla_unidade, St_requisicao = "AC", Quantidade = Math.Abs(p.Qtd_saldonecessario), lOrdemProd = lOrdemProducao }); } }); using (TFLanRequisicao fReq = new TFLanRequisicao()) { fReq.lRequisicao = lRequisicao; if (fReq.ShowDialog() == DialogResult.OK) { if (fReq.lRequisicao != null) { fReq.lRequisicao.ForEach(x => CamadaNegocio.Compra.Lancamento.TCN_Requisicao.GravarRequisicao(x, null)); } } } bsMPrima_PositionChanged(this, new EventArgs()); } catch (Exception ex) { MessageBox.Show(ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } }