public static TRegistro_FormulaApontamento CriarFormulaApontamento(string Cd_empresa, string Nr_pedido, string Cd_produto, string Cd_unidade, string Cd_unidproduto, string Cd_local, string Id_pedidoitem, decimal Quantidade, //bool St_decomposicao, BancoDados.TObjetoBanco banco) { TRegistro_FormulaApontamento rFormula = new TRegistro_FormulaApontamento(); rFormula.Cd_empresa = Cd_empresa; rFormula.Cd_produto = Cd_produto; rFormula.Cd_unidade = Cd_unidade; rFormula.Cd_unidProduto = Cd_unidproduto; rFormula.Cd_local = Cd_local; rFormula.Qt_produto = Quantidade; TList_FichaTecItemPed lFicha = TCN_FichaTecItemPed.Buscar(Nr_pedido, Cd_produto, Id_pedidoitem, string.Empty, banco); lFicha.ForEach(p => { if ((!new TCD_CadProduto(banco).ItemServico(p.Cd_item)) && (!new TCD_CadProduto(banco).ProdutoConsumoInterno(p.Cd_item))) { //Lista Materia Prima rFormula.LFichaTec_MPrima.Add(new TRegistro_FichaTec_MPrima() { Cd_empresa = Cd_empresa, Cd_produto = p.Cd_item, Cd_unid_produto = p.Cd_unditem, Cd_unidade = p.Cd_unditem, Cd_local = Cd_local, Qtd_produto = Math.Round(decimal.Multiply(decimal.Divide(p.Quantidade, p.Qtd_itemPed), Quantidade), 3, MidpointRounding.AwayFromZero) }); } else { string moeda = TCN_CadParamGer.BuscaVL_String_Empresa("CD_MOEDA_PADRAO", Cd_empresa, banco); if (!string.IsNullOrEmpty(moeda)) { //Buscar custo rFormula.LCustoFixo.Add(new TRegistro_CustoFixo_Direto() { Cd_empresa = Cd_empresa, Cd_moeda = moeda, Cd_unidade = p.Cd_unditem, Vl_custo = p.Vl_custo, Tp_custo = "F" //Fixo }); } } }); return(rFormula); }
private void PreencherFicha(TRegistro_FormulaApontamento rFormula) { //Buscar Ficha Formula TList_FichaTec_MPrima lFicha = CamadaNegocio.Producao.Producao.TCN_FichaTec_MPrima.Buscar(rFormula.Cd_empresa, rFormula.Id_formulacaostr, string.Empty, string.Empty, string.Empty, 0, string.Empty, null); lFicha.ForEach(p => { lficha.Add( new TRegistro_FichaTecOrcItem() { Nr_orcamento = pNr_orcamento, Id_item = pId_item, Cd_item = p.Cd_produto, Ds_item = p.Ds_produto, Cd_local = p.Cd_local, Ds_local = p.Ds_local, Sg_unditem = p.Sigla_unidade, Cd_unditem = p.Cd_unidade, Ds_unditem = p.Ds_unidade, Quantidade = p.Qtd_produto, SaldoEstoque = TCN_LanEstoque.Busca_Saldo_Local(pCd_empresa, p.Cd_produto, p.Cd_local, null), }); }); bsFichaTec.DataSource = lficha; bsFichaTec.ResetBindings(true); }
public static string Gravar(TRegistro_FormulaApontamento val, BancoDados.TObjetoBanco banco) { bool st_transacao = false; TCD_FormulaApontamento qtb_formula = new TCD_FormulaApontamento(); try { if (banco == null) { st_transacao = qtb_formula.CriarBanco_Dados(true); } else { qtb_formula.Banco_Dados = banco; } //Gravar Formula Apontamento val.Id_formulacao = Convert.ToDecimal(CamadaDados.TDataQuery.getPubVariavel(qtb_formula.Gravar(val), "@P_ID_FORMULACAO")); //Deletar Ficha Tecnica MPrima val.LFichaTec_MPrimaDel.ForEach(p => TCN_FichaTec_MPrima.Excluir(p, qtb_formula.Banco_Dados)); //Gravar Ficha Tecnica MPrima val.LFichaTec_MPrima.ForEach(p => { p.Cd_empresa = val.Cd_empresa; p.Id_formulacao = val.Id_formulacao; TCN_FichaTec_MPrima.Gravar(p, qtb_formula.Banco_Dados); }); //Deletar Custo Fixo Direto val.LCustoFixoDel.ForEach(p => TCN_CustoFixo_Direto.DeletarCustoFixo_Direto(p, qtb_formula.Banco_Dados)); //Gravar Custo Fixo Direto val.LCustoFixo.ForEach(p => { p.Cd_empresa = val.Cd_empresa; p.Id_formulacao = val.Id_formulacao; TCN_CustoFixo_Direto.GravarCustoFixo_Direto(p, qtb_formula.Banco_Dados); }); if (st_transacao) { qtb_formula.Banco_Dados.Commit_Tran(); } return(val.Id_formulacaostr); } catch (Exception ex) { if (st_transacao) { qtb_formula.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro: " + ex.Message); } finally { if (st_transacao) { qtb_formula.deletarBanco_Dados(); } } }
public static void BuscarFormula(TRegistro_ApontamentoProducao val, BancoDados.TObjetoBanco banco) { if (val.Cd_empresa.Trim().Equals(string.Empty)) { return; } else { TRegistro_FormulaApontamento rFormula = new TRegistro_FormulaApontamento(); rFormula = Buscar(val.Cd_empresa, val.Id_formulacaostr, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, 1, string.Empty, banco)[0]; //Buscar ficha tecnica materia-prima TCN_Ordem_MPrima.Buscar(val.Id_ordemstr, banco).ForEach(x => { rFormula.LFichaTec_MPrima.Add(new TRegistro_FichaTec_MPrima { Cd_empresa = val.Cd_empresa, Id_formulacao_mprima = x.ID_Formulacao_MPrima, Cd_local = x.Cd_local, Cd_produto = x.Cd_produto, Ds_produto = x.Ds_produto, Cd_unidade = x.Cd_unidade, Ds_unidade = x.Ds_unidade, Cd_unid_produto = x.Cd_unid_produto, Pc_quebra_tec = x.Pc_quebratec, Qtd_produto = x.Qtd_produto }); }); //Buscar custo fixo direto rFormula.LCustoFixo = TCN_CustoFixo_Direto.Buscar(val.Cd_empresa, val.Id_formulacaostr, string.Empty, string.Empty, string.Empty, 0, string.Empty, banco); val.LFormulaApontamento.Add(rFormula); } }
public static decimal CalcularCustoProducao(TRegistro_FormulaApontamento val) { return(TCN_MPrima.MontarListaMPrima(val.Cd_empresa, val.Id_formulacaostr, 1, null, null).Sum(p => p.Vl_custo) + TCN_CustoFixo_Direto.Buscar(val.Cd_empresa, val.Id_formulacaostr, string.Empty, string.Empty, string.Empty, 0, string.Empty, null).Sum(p => p.Vl_custo)); }
private void CopiarFormula() { if (bsFormulaApontamento.Current != null) { using (TFFormulaApontamento fFormula = new TFFormulaApontamento()) { fFormula.Text = "COPIA DE FORMULA APONTAMENTO PRODUÇÃO"; TRegistro_FormulaApontamento rCopia = new TRegistro_FormulaApontamento(); rCopia.Cd_empresa = (bsFormulaApontamento.Current as TRegistro_FormulaApontamento).Cd_empresa; rCopia.Nm_empresa = (bsFormulaApontamento.Current as TRegistro_FormulaApontamento).Nm_empresa; rCopia.Ds_formula = (bsFormulaApontamento.Current as TRegistro_FormulaApontamento).Ds_formula; rCopia.Ds_indicacao = (bsFormulaApontamento.Current as TRegistro_FormulaApontamento).Ds_indicacao; rCopia.Ds_observacoes = (bsFormulaApontamento.Current as TRegistro_FormulaApontamento).Ds_observacoes; (bsFormulaApontamento.Current as TRegistro_FormulaApontamento).LCustoFixo.ForEach(p => { p.Id_formulacao = null; rCopia.LCustoFixo.Add(p); }); (bsFormulaApontamento.Current as TRegistro_FormulaApontamento).LFichaTec_MPrima.ForEach(p => { p.Id_formulacao = null; rCopia.LFichaTec_MPrima.Add(p); }); fFormula.rFormula = rCopia; fFormula.St_copiaFormula = true; if (fFormula.ShowDialog() == DialogResult.OK) { if (fFormula.rFormula != null) { try { CamadaNegocio.Producao.Producao.TCN_FormulaApontamento.Gravar(fFormula.rFormula, null); MessageBox.Show("Copia formula gravada com sucesso.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); LimparFiltros(); id_formulacao_busca.Text = fFormula.rFormula.Id_formulacaostr; cd_empresa_busca.Text = fFormula.rFormula.Cd_empresa; afterBusca(); } catch (Exception ex) { MessageBox.Show(ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } } } }
public static string Excluir(TRegistro_FormulaApontamento val, BancoDados.TObjetoBanco banco) { bool st_transacao = false; TCD_FormulaApontamento qtb_formula = new TCD_FormulaApontamento(); try { if (banco == null) { st_transacao = qtb_formula.CriarBanco_Dados(true); } else { qtb_formula.Banco_Dados = banco; } //Deletar custo fixo val.LCustoFixo.ForEach(p => TCN_CustoFixo_Direto.DeletarCustoFixo_Direto(p, qtb_formula.Banco_Dados)); val.LCustoFixoDel.ForEach(p => TCN_CustoFixo_Direto.DeletarCustoFixo_Direto(p, qtb_formula.Banco_Dados)); //Deletar Ficha Tecnica MPrima val.LFichaTec_MPrima.ForEach(p => TCN_FichaTec_MPrima.Excluir(p, qtb_formula.Banco_Dados)); val.LFichaTec_MPrimaDel.ForEach(p => TCN_FichaTec_MPrima.Excluir(p, qtb_formula.Banco_Dados)); //Deletar Formula Apontamento qtb_formula.Excluir(val); if (st_transacao) { qtb_formula.Banco_Dados.Commit_Tran(); } return("OK"); } catch (Exception ex) { if (st_transacao) { qtb_formula.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro: " + ex.Message); } finally { if (st_transacao) { qtb_formula.deletarBanco_Dados(); } } }
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(); }
public static TRegistro_FormulaApontamento CriarFormulaApontamentoProd(string Cd_empresa, string Cd_produto, string Cd_unidade, string Cd_local, //bool St_decomposicao, BancoDados.TObjetoBanco banco) { TRegistro_FormulaApontamento rFormula = new TRegistro_FormulaApontamento(); rFormula.Cd_empresa = Cd_empresa; //if (!St_decomposicao) { rFormula.Cd_produto = Cd_produto; rFormula.Cd_unidProduto = Cd_unidade; rFormula.Cd_unidade = Cd_unidade; rFormula.Cd_local = Cd_local; rFormula.Qt_produto = 1; TList_FichaTecProduto lFicha = TCN_FichaTecProduto.Buscar(Cd_produto, string.Empty, banco); lFicha.ForEach(p => { rFormula.LFichaTec_MPrima.Add(new TRegistro_FichaTec_MPrima() { Cd_empresa = Cd_empresa, Cd_produto = p.Cd_item, Cd_unid_produto = p.Cd_unditem, Cd_unidade = p.Cd_unditem, Cd_local = Cd_local, Qtd_produto = p.Quantidade }); }); } //else //{ // //Produto Acabado // CamadaDados.Estoque.Cadastros.TList_FichaTecProduto lFicha = // CamadaNegocio.Estoque.Cadastros.TCN_FichaTecProduto.Buscar(Cd_produto, // string.Empty, // banco); // lFicha.ForEach(p => // { // rFormula.LFichaTec_Acabado.Add(new TRegistro_FichaTec_Acabado() // { // Cd_empresa = Cd_empresa, // Cd_produto = p.Cd_item, // Cd_unid_produto = p.Cd_unditem, // Cd_unidade = p.Cd_unditem, // Cd_local = Cd_local, // Qtd_produto = p.Quantidade, // Pc_rateiocusto = 100 // }); // }); // //Materia Prima // rFormula.LFichaTec_MPrima.Add(new TRegistro_FichaTec_MPrima() // { // Cd_empresa = Cd_empresa, // Cd_produto = Cd_produto, // Cd_unid_produto = Cd_unidade, // Cd_unidade = Cd_unidade, // Cd_local = Cd_local, // Qtd_produto = 1 // }); //} return(rFormula); }