private void bb_copiarFicha_Click(object sender, EventArgs e) { if (bsFichaTec.Count.Equals(0) ? true : MessageBox.Show("Se a fórmula for modificada você pode perder as alterações na ficha,\r\n" + "Deseja continuar?", "Pergunta", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == DialogResult.Yes) { using (TFListFormula fLista = new TFListFormula()) { fLista.lFormula = CamadaNegocio.Producao.Producao.TCN_FormulaApontamento.Buscar(string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, 0, string.Empty, null); if (fLista.ShowDialog() == DialogResult.OK) { if (fLista.rFormula != null) { if (bsFichaTec.Count > 0) { CamadaNegocio.Faturamento.Orcamento.TCN_FichaTecOrcItem.ExcluirLista(bsFichaTec.DataSource as TList_FichaTecOrcItem, null); bsFichaTec.Clear(); } PreencherFicha(fLista.rFormula); } } } } }
private void PreencherFicha() { //Buscar Ficha do Cadastro de Produto CamadaDados.Estoque.Cadastros.TList_FichaTecProduto lFicha = TCN_FichaTecProduto.Buscar(cd_produto.Text, string.Empty, null); if (lFicha.Count > 0) { if (lFicha.Exists(p => string.IsNullOrEmpty(p.Cd_local))) { string vColunas = "a.ds_local|Local Armazenagem|150;" + "a.cd_local|Código|50"; string vParam = "|exists|(select 1 from tb_est_empresa_x_localarm x " + " where x.cd_local = a.cd_local and x.cd_empresa = '" + CD_Empresa.Text.Trim() + "')"; DataRowView linha = FormBusca.UtilPesquisa.BTN_BUSCA(vColunas, null, new CamadaDados.Estoque.Cadastros.TCD_CadLocalArm(), vParam); try { if (linha != null) { lFicha.ForEach(p => { p.Cd_local = string.IsNullOrEmpty(p.Cd_local) ? linha["cd_local"].ToString() : p.Cd_local; TCN_FichaTecProduto.Gravar(p, null); }); } else { PreencherFicha(); } } catch { } } lFicha.ForEach(p => { (bsOrdemProducao.Current as TRegistro_OrdemProducao).lOrdem_MPrima.Add( new TRegistro_Ordem_MPrima { Cd_produto = p.Cd_item, Ds_produto = p.Ds_item, Cd_unidade = p.Cd_unditem, Ds_unidade = p.Ds_unditem, Sigla_unidade = p.Sg_unditem, Cd_local = p.Cd_local, Ds_local = p.Ds_local, Qtd_produto = p.Quantidade, Qtd_produto_calc = p.Quantidade, SaldoEstoque = TCN_LanEstoque.Busca_Saldo_Local(CD_Empresa.Text, p.Cd_item, p.Cd_local, null) }); }); } else { //Verificar ficha tecnica produção TList_FormulaApontamento lFormula = CamadaNegocio.Producao.Producao.TCN_FormulaApontamento.Buscar(CD_Empresa.Text, string.Empty, string.Empty, string.Empty, string.Empty, cd_produto.Text, string.Empty, 0, string.Empty, null); TRegistro_FormulaApontamento rFormula = null; if (lFormula.Count > 1) { using (TFListFormula fList = new TFListFormula()) { fList.lFormula = lFormula; if (fList.ShowDialog() == DialogResult.OK) { rFormula = fList.rFormula; (bsOrdemProducao.Current as TRegistro_OrdemProducao).Qt_produto = rFormula.Qt_produto; } else { MessageBox.Show("Obrigatório selecionar formula.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } } } else if (lFormula.Count.Equals(1)) { rFormula = lFormula[0]; } if (rFormula != null) { (bsOrdemProducao.Current as TRegistro_OrdemProducao).Qt_produto = rFormula.Qt_produto; (bsOrdemProducao.Current as TRegistro_OrdemProducao).Cd_local = rFormula.Cd_local; (bsOrdemProducao.Current as TRegistro_OrdemProducao).Ds_local = rFormula.Ds_local; //Buscar ficha tecnica da formula selecionada TList_FichaTec_MPrima lFichaP = CamadaNegocio.Producao.Producao.TCN_FichaTec_MPrima.Buscar(rFormula.Cd_empresa, rFormula.Id_formulacaostr, string.Empty, string.Empty, string.Empty, 0, string.Empty, null); lFichaP.ForEach(p => { (bsOrdemProducao.Current as TRegistro_OrdemProducao).lOrdem_MPrima.Add( new TRegistro_Ordem_MPrima { CD_Empresa = p.Cd_empresa, ID_Formulacao_MPrima = p.Id_formulacao_mprima, Cd_produto = p.Cd_produto, Ds_produto = p.Ds_produto, Cd_unidade = p.Cd_unidade, Ds_unidade = p.Ds_unidade, Sigla_unidade = p.Sigla_unidade, Cd_local = p.Cd_local, Ds_local = p.Ds_local, Qtd_produto = p.Qtd_produto, Qtd_produto_calc = p.Qtd_produto, SaldoEstoque = TCN_LanEstoque.Busca_Saldo_Local(CD_Empresa.Text, p.Cd_produto, p.Cd_local, null) }); }); (bsOrdemProducao.Current as TRegistro_OrdemProducao).Id_formulacao = rFormula.Id_formulacao; } } bsOrdemMP.ResetCurrentItem(); bsOrdemProducao.ResetCurrentItem(); }