Exemplo n.º 1
0
 private void afterGrava()
 {
     if (pnl_Origem.validarCampoObrigatorio() &&
         pnl_Destino.validarCampoObrigatorio() &&
         pDados.validarCampoObrigatorio())
     {
         if (Convert.ToDecimal(Saldo_Contrato_Origem.Text) < QTD_Transferir.Value)
         {
             MessageBox.Show("A quantidade transferida não pode ser maior que Saldo do  Contrato de Origem.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
             return;
         }
         if (!string.IsNullOrEmpty(cd_autoriz.Text))
         {
             if (CamadaNegocio.Estoque.Cadastros.TCN_CadConvUnidade.ConvertUnid(Cd_unid_autoriz, CD_Unidade_Origem_Est.Text, qtd_sdautoriz.Value, 3, null) < QTD_Transferir.Value)
             {
                 MessageBox.Show("A quantidade transferida não pode ser maior que Saldo da autorização retirada.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                 return;
             }
         }
         //Verificar se o contrato de origem exige autorizacao retida
         if (string.IsNullOrEmpty(cd_autoriz.Text))
         {
             object obj = new CamadaDados.Graos.TCD_CadContrato().BuscarEscalar(
                 new Utils.TpBusca[]
             {
                 new Utils.TpBusca()
                 {
                     vNM_Campo = "a.nr_contrato",
                     vOperador = "=",
                     vVL_Busca = nr_contrato_origem.Text
                 },
                 new Utils.TpBusca()
                 {
                     vNM_Campo = "isnull(a.st_exigirautorizretirada, 'N')",
                     vOperador = "=",
                     vVL_Busca = "'S'"
                 }
             }, "1");
             if (obj != null)
             {
                 MessageBox.Show("Contrato Origem exige Autorização retirada.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                 cd_autoriz.Focus();
                 return;
             }
         }
         if (TCN_Transferencia.Confere_Saldo(nr_contrato_destino.Text, null))
         {
             if (QTD_Transferir.Value > (Convert.ToDecimal(QTD_Destino.Text) - Convert.ToDecimal(Saldo_Contrato_Destino.Text)))
             {
                 MessageBox.Show("A quantidade transferida deve ser igual ou menor ao Saldo do Pedido de Destino.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                 return;
             }
         }
         this.DialogResult = DialogResult.OK;
     }
 }
Exemplo n.º 2
0
        private void nr_contrato_destino_Leave(object sender, EventArgs e)
        {
            if (!string.IsNullOrEmpty(nr_contrato_origem.Text))
            {
                string vParam = "a.NR_Contrato|=|" + nr_contrato_destino.Text + ";" +
                                "a.NR_Contrato|<>|" + nr_contrato_origem.Text.Trim() + ";" +
                                "a.TP_Movimento|=|'" + TP_Movimento.Text.Trim() + "';" +
                                "isnull(a.st_registro, 'A')|=|'A';" + //Contrato Aberto
                                "a.cd_produto|=|'" + CD_Produto.Text + "';" +
                                                                      //Usuario tem que ter acesso a empresa
                                "|EXISTS|(select 1 from Tb_div_usuario_X_empresa  x where x.cd_empresa = a.cd_empresa " +
                                "and ((x.login = '******') or " +
                                "(exists(select 1 from tb_div_usuario_x_grupos y " +
                                "       where y.logingrp = x.login and y.loginusr = '******'))))" +
                                //Usuario tem que ter acesso ao tipo de pedido
                                "|EXISTS|(select 1 from tb_div_usuario_x_cfgpedido x " +
                                "where x.cfg_pedido = cfgped.cfg_pedido " +
                                "and ((x.login = '******') or " +
                                "(exists(select 1 from tb_div_usuario_x_grupos y " +
                                "       where y.logingrp = x.login and y.loginusr = '******'))))";
                //Verificar se o usuario tem acesso a transferencia entre empresas diferentes
                if (!CamadaNegocio.Diversos.TCN_Usuario_RegraEspecial.ValidaRegra(Utils.Parametros.pubLogin.Trim(), "PERMITIR TRANSF. ENTRE CONTRATOS DE EMPRESAS DIFERENTES", null))
                {
                    vParam += ";a.cd_empresa|=|'" + CD_Empresa.Text.Trim() + "'";
                }

                DataRow linha = UtilPesquisa.EDIT_LEAVE(vParam, new Componentes.EditDefault[] {
                    nr_contrato_destino,
                    DT_Contrato_Destino,
                    TP_Movimento_Destino,
                    CD_Empresa_Destino,
                    NM_Empresa_Destino,
                    CD_Clifor_Destino,
                    NM_Clifor_Destino,
                    CPF_Destino,
                    DS_Endereco_Destino,
                    DS_Cidade_Destino,
                    UF_Destino,
                    CD_Produto_Destino,
                    DS_Produto_Destino,
                    VL_Unitario_Destino,
                    QTD_Destino
                }, new CamadaDados.Graos.TCD_CadContrato());
                if (linha != null)
                {
                    CD_Unidade_Destino_Est.Text = linha["cd_unid_produto"].ToString();
                    CD_Unidade_Destino_VL.Text  = linha["CD_Unidade"].ToString();
                    Unidade_Destino_Est.Text    = linha["sigla_unid_produto"].ToString();
                    Unidade_Destino_VL.Text     = linha["Sigla_Unidade"].ToString();
                    (BS_Transf_Destino.Current as CamadaDados.Graos.TRegistro_Transf_X_Contrato).Nr_pedido             = decimal.Parse(linha["nr_pedido"].ToString());
                    (BS_Transf_Destino.Current as CamadaDados.Graos.TRegistro_Transf_X_Contrato).Id_pedidoitem         = decimal.Parse(linha["id_pedidoitem"].ToString());
                    (BS_Transf_Destino.Current as CamadaDados.Graos.TRegistro_Transf_X_Contrato).Cd_condfiscal_produto = linha["cd_condfiscal_produto"].ToString();
                }
                if (string.IsNullOrEmpty(nr_contrato_destino.Text))
                {
                    nr_contrato_destino.Clear();
                    DT_Contrato_Destino.Clear();
                    TP_Movimento_Destino.Clear();
                    CD_Empresa_Destino.Clear();
                    NM_Empresa_Destino.Clear();
                    CD_Clifor_Destino.Clear();
                    NM_Clifor_Destino.Clear();
                    CPF_Destino.Clear();
                    DS_Endereco_Destino.Clear();
                    DS_Cidade_Destino.Clear();
                    UF_Destino.Clear();
                    CD_Produto_Destino.Clear();
                    DS_Produto_Destino.Clear();
                    VL_Unitario_Destino.Clear();

                    VL_Sub_Total_Destino.Value       = decimal.Zero;
                    VL_Unitario_Destino_Transf.Value = decimal.Zero;

                    QTD_Destino.Clear();
                    CD_Unidade_Destino_Est.Clear();
                    CD_Unidade_Destino_VL.Clear();
                    Unidade_Destino_Est.Clear();
                    Unidade_Destino_VL.Clear();
                }
                else
                {
                    Busca_Saldo_Contrato_Destino();
                    if (TCN_Transferencia.Confere_Saldo(nr_contrato_destino.Text, null))
                    {
                        QTD_Transferir.Value = (Convert.ToDecimal(QTD_Destino.Text) - Convert.ToDecimal(Saldo_Contrato_Destino.Text));
                        if (QTD_Transferir.Value > Convert.ToDecimal(Saldo_Contrato_Origem.Text))
                        {
                            QTD_Transferir.Value = Convert.ToDecimal(Saldo_Contrato_Origem.Text);
                        }
                    }

                    if ((!string.IsNullOrEmpty(VL_Unitario_Destino.Text)) && (VL_Unitario_Destino.Text.Trim() != "0"))
                    {
                        try
                        {
                            VL_Unitario_Destino_Transf.Value = Convert.ToDecimal(VL_Unitario_Destino.Text);

                            if (CD_Unidade_Destino_Est.Text.Trim() != CD_Unidade_Destino_VL.Text.Trim())
                            {
                                VL_Sub_Total_Destino.Value = CamadaNegocio.Estoque.Cadastros.TCN_CadConvUnidade.ConvertUnid(CD_Unidade_Destino_Est.Text, CD_Unidade_Destino_VL.Text, QTD_Transferir.Value * VL_Unitario_Destino_Transf.Value, 2, null);
                            }
                            else
                            {
                                VL_Sub_Total_Destino.Value = (QTD_Transferir.Value * VL_Unitario_Destino_Transf.Value);
                            }

                            if (CD_Unidade_Origem_Est.Text.Trim() != CD_Unidade_Origem_VL.Text.Trim())
                            {
                                VL_Sub_Total_Origem.Value = CamadaNegocio.Estoque.Cadastros.TCN_CadConvUnidade.ConvertUnid(CD_Unidade_Origem_Est.Text, CD_Unidade_Origem_VL.Text, QTD_Transferir.Value * VL_Unitario_Transf.Value, 2, null);
                            }
                            else
                            {
                                VL_Sub_Total_Origem.Value = (QTD_Transferir.Value * VL_Unitario_Transf.Value);
                            }
                        }
                        catch
                        { }
                    }
                }
            }
            else
            {
                nr_contrato_destino.Clear();
            }
        }