Beispiel #1
0
 private void PreencherFicha(string pCd_produto)
 {
     //Buscar Ficha Formula
     CamadaDados.Estoque.Cadastros.TList_FichaTecProduto lFichaTec =
         CamadaNegocio.Estoque.Cadastros.TCN_FichaTecProduto.Buscar(pCd_produto, string.Empty, null);
     if (lFichaTec.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 = '" + (bsItensOrcamento.Current as TRegistro_Orcamento_Item).Cd_empresa.Trim() + "')";
         DataRowView linha = FormBusca.UtilPesquisa.BTN_BUSCA(vColunas, null,
                                                              new CamadaDados.Estoque.Cadastros.TCD_CadLocalArm(), vParam);
         try
         {
             if (linha != null)
             {
                 lFichaTec.ForEach(p =>
                 {
                     p.Cd_local = string.IsNullOrEmpty(p.Cd_local) ? linha["cd_local"].ToString() : p.Cd_local;
                     CamadaNegocio.Estoque.Cadastros.TCN_FichaTecProduto.Gravar(p, null);
                 });
             }
             else
             {
                 PreencherFicha(pCd_produto);
             }
         }
         catch { }
     }
     lFichaTec.ForEach(p =>
     {
         (bsItensOrcamento.Current as TRegistro_Orcamento_Item).lFichaTec.Add(
             new TRegistro_FichaTecOrcItem()
         {
             Nr_orcamento    = (bsItensOrcamento.Current as TRegistro_Orcamento_Item).Nr_orcamento,
             Id_item         = (bsItensOrcamento.Current as TRegistro_Orcamento_Item).Id_item,
             Cd_item         = p.Cd_item,
             Ds_item         = p.Ds_item,
             Cd_local        = p.Cd_local,
             Ds_local        = p.Ds_local,
             Sg_unditem      = p.Sg_unditem,
             Cd_unditem      = p.Cd_unditem,
             Ds_unditem      = p.Ds_unditem,
             Quantidade      = p.Quantidade,
             SaldoEstoque    = TCN_LanEstoque.Busca_Saldo_Local((bsItensOrcamento.Current as TRegistro_Orcamento_Item).Cd_empresa, p.Cd_item, p.Cd_local, null),
             Vl_custo        = TCN_LanEstoque.BuscarVlEstoqueUltimaCompra((bsItensOrcamento.Current as TRegistro_Orcamento_Item).Cd_empresa, p.Cd_produto, null),
             Vl_ultimacompra = TCN_LanEstoque.BuscarVlUltimaCompra((bsItensOrcamento.Current as TRegistro_Orcamento_Item).Cd_empresa, p.Cd_produto, null)
         });
     });
     bsItensOrcamento.ResetCurrentItem();
 }
Beispiel #2
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();
 }