Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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();
                }
            }
        }
Esempio n. 4
0
 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);
     }
 }
Esempio n. 5
0
 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));
 }
Esempio n. 6
0
 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); }
                 }
             }
         }
     }
 }
Esempio n. 7
0
        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();
                }
            }
        }
Esempio n. 8
0
 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();
 }
Esempio n. 9
0
        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);
        }