Ejemplo n.º 1
0
 private void button1_Click(object sender, EventArgs e)
 {
     using (Financeiro.Cadastros.TFCadCliforResumido fClifor = new Financeiro.Cadastros.TFCadCliforResumido())
     {
         if (fClifor.ShowDialog() == DialogResult.OK)
         {
             if (fClifor.rClifor != null)
             {
                 try
                 {
                     CamadaNegocio.Financeiro.Cadastros.TCN_CadClifor.Gravar(fClifor.rClifor, null);
                     cd_clifor.Text = fClifor.rClifor.Cd_clifor;
                     nm_clifor.Text = fClifor.rClifor.Nm_clifor;
                     object t = new CamadaDados.Financeiro.Cadastros.TCD_CadEndereco().BuscarEscalar(new TpBusca[] {
                         new TpBusca()
                         {
                             vNM_Campo = "a.cd_clifor",
                             vOperador = "=",
                             vVL_Busca = cd_clifor.Text
                         }
                     }, "a.cd_endereco");
                 }
                 catch (Exception ex)
                 { MessageBox.Show(ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); }
             }
         }
     }
 }
Ejemplo n.º 2
0
        private void cd_clifor_Leave(object sender, EventArgs e)
        {
            DataRow linha = FormBusca.UtilPesquisa.EDIT_LeaveClifor("a.cd_clifor|=|'" + cd_clifor.Text.Trim() + "'",
                                                                    new Componentes.EditDefault[] { cd_clifor, nm_clifor }, new CamadaDados.Financeiro.Cadastros.TCD_CadClifor());

            if (linha != null)
            {
                cnpj_cpf.Text = linha["tp_pessoa"].ToString().Trim().ToUpper().Equals("J") ? linha["nr_cgc"].ToString() : linha["nr_cpf"].ToString();
                CamadaDados.Financeiro.Cadastros.TList_CadEndereco lEnd =
                    new CamadaDados.Financeiro.Cadastros.TCD_CadEndereco().Select(new TpBusca[] {
                    new TpBusca()
                    {
                        vNM_Campo = "a.cd_clifor",
                        vOperador = "=",
                        vVL_Busca = cd_clifor.Text
                    }
                }, 1, string.Empty);

                CamadaDados.Financeiro.Cadastros.TList_CadContatoCliFor lcont =
                    new CamadaDados.Financeiro.Cadastros.TCD_CadContatoCliFor().Select(new TpBusca[] {
                    new TpBusca()
                    {
                        vNM_Campo = "a.cd_clifor",
                        vOperador = "=",
                        vVL_Busca = cd_clifor.Text
                    }
                }, 1, string.Empty);
                if (lcont.Count > 0)
                {
                    cd_contato.Text    = lcont[0].Id_Contato_St;
                    fone_contato.Text  = lcont[0].Fone;
                    email_contato.Text = lcont[0].Email;
                }
                if (lEnd.Count > 0)
                {
                    cd_endereco.Text    = lEnd[0].Cd_endereco;
                    ds_endereco.Text    = lEnd[0].Ds_endereco;
                    ds_enderecoemp.Text = lEnd[0].Ds_endereco;
                    numeroemp.Text      = lEnd[0].Numero;
                    bairroemp.Text      = lEnd[0].Bairro;
                    foneemp.Text        = lEnd[0].Fone;
                    cd_cidadeemp.Text   = lEnd[0].Cd_cidade;
                    ds_cidadeemp.Text   = lEnd[0].DS_Cidade;
                    uf_emp.Text         = lEnd[0].UF;
                    ds_empreendimento.Focus();
                }
            }
            else
            {
                cnpj_cpf.Clear();
            }
        }
Ejemplo n.º 3
0
        private string BuscarEndereco(string Cd_clifor)
        {
            object obj = new CamadaDados.Financeiro.Cadastros.TCD_CadEndereco().BuscarEscalar(
                new Utils.TpBusca[]
            {
                new Utils.TpBusca()
                {
                    vNM_Campo = "a.cd_clifor",
                    vOperador = "=",
                    vVL_Busca = "'" + Cd_clifor.Trim() + "'"
                }
            }, "a.cd_endereco");

            return(obj == null ? string.Empty : obj.ToString());
        }
Ejemplo n.º 4
0
 private void BuscarEndereco()
 {
     if (!string.IsNullOrEmpty(cd_clifor.Text))
     {
         object obj = new CamadaDados.Financeiro.Cadastros.TCD_CadEndereco().BuscarEscalar(
             new TpBusca[]
             {
                 new TpBusca()
                 {
                     vNM_Campo = "a.cd_clifor",
                     vOperador = "=",
                     vVL_Busca = "'" + cd_clifor.Text.Trim() + "'"
                 }
             }, "a.cd_endereco");
         if (obj != null)
             CD_Endereco.Text = obj.ToString();
     }
 }
Ejemplo n.º 5
0
 private void BuscarEndereco()
 {
     if (!string.IsNullOrEmpty(cd_clifor.Text))
     {
         object obj = new CamadaDados.Financeiro.Cadastros.TCD_CadEndereco().BuscarEscalar(
             new TpBusca[]
         {
             new TpBusca()
             {
                 vNM_Campo = "a.cd_clifor",
                 vOperador = "=",
                 vVL_Busca = "'" + cd_clifor.Text.Trim() + "'"
             }
         }, "CONVERT(VARCHAR(100),(a.cd_endereco + ',' + a.cd_uf + ',' + a.ds_endereco))");
         if (obj != null)
         {
             cd_endereco.Text = obj.ToString().Split(new char[] { ',' })[0];
             ds_endereco.Text = obj.ToString().Split(new char[] { ',' })[2];
             if (lCfgPosto[0].St_NFDiretaForaUFbool)
             {
                 object ufEmp = new CamadaDados.Financeiro.Cadastros.TCD_CadEndereco().BuscarEscalar(
                     new TpBusca[]
                 {
                     new TpBusca()
                     {
                         vNM_Campo = "a.cd_clifor",
                         vOperador = "=",
                         vVL_Busca = "'" + lCfgPosto[0].Cd_clifor.Trim() + "'"
                     }
                 }, "a.cd_uf");
                 if (ufEmp != null)
                 {
                     if (ufEmp.ToString() != obj.ToString().Split(new char[] { ',' })[1])
                     {
                         tp_faturamento.SelectedIndex = 2;
                         tp_faturamento.SelectedValue = "NF";
                         tp_faturamento.Enabled       = false;
                     }
                 }
             }
         }
     }
 }
Ejemplo n.º 6
0
 private void BuscarEndereco()
 {
     //Busca Endereço Fornecedor
     CamadaDados.Financeiro.Cadastros.TList_CadEndereco List_Endereco =
         new CamadaDados.Financeiro.Cadastros.TCD_CadEndereco().Select(
             new Utils.TpBusca[]
     {
         new Utils.TpBusca()
         {
             vNM_Campo = "a.cd_clifor",
             vOperador = "=",
             vVL_Busca = "'" + vCd_clifor.Trim() + "'"
         }
     }, 1, string.Empty);
     if (List_Endereco.Count > 0)
     {
         vCd_endereco = List_Endereco[0].Cd_endereco;
         vDs_endereco = List_Endereco[0].Ds_endereco;
     }
 }
Ejemplo n.º 7
0
 private void BuscarEnd()
 {
     if (cd_transportadora.Text.Trim() != string.Empty)
     {
         object obj = new CamadaDados.Financeiro.Cadastros.TCD_CadEndereco().BuscarEscalar(
             new Utils.TpBusca[]
         {
             new Utils.TpBusca()
             {
                 vNM_Campo = "a.cd_clifor",
                 vOperador = "=",
                 vVL_Busca = "'" + cd_transportadora.Text.Trim() + "'"
             }
         }, "a.cd_endereco");
         if (obj != null)
         {
             cd_enderecotransp.Text = obj.ToString();
         }
     }
 }
Ejemplo n.º 8
0
 private void Busca_Endereco_Clifor()
 {
     //Busca Endereço
     CamadaDados.Financeiro.Cadastros.TList_CadEndereco List_Endereco =
         new CamadaDados.Financeiro.Cadastros.TCD_CadEndereco().Select(
             new TpBusca[]
     {
         new TpBusca()
         {
             vNM_Campo = "a.cd_clifor",
             vOperador = "=",
             vVL_Busca = "'" + (bsPreVenda.Current as CamadaDados.Faturamento.PDV.TRegistro_PreVenda).Cd_clifor.Trim() + "'"
         }
     }, 0, string.Empty);
     if (List_Endereco.Count > 0)
     {
         if (List_Endereco.Exists(p => p.St_enderecoentregabool))
         {
             cd_endereco.Text = List_Endereco.Find(p => p.St_enderecoentregabool).Cd_endereco.Trim();
             ds_endereco.Text = List_Endereco.Find(p => p.St_enderecoentregabool).Ds_endereco.Trim();
             numero.Text      = List_Endereco.Find(p => p.St_enderecoentregabool).Numero.Trim();
             Bairro.Text      = List_Endereco.Find(p => p.St_enderecoentregabool).Bairro.Trim();
             fone.Text        = List_Endereco.Find(p => p.St_enderecoentregabool).Fone.Trim();
             proximo.Text     = List_Endereco.Find(p => p.St_enderecoentregabool).Proximo.Trim();
         }
         else
         {
             cd_endereco.Text = List_Endereco[0].Cd_endereco.Trim();
             ds_endereco.Text = List_Endereco[0].Ds_endereco.Trim();
             numero.Text      = List_Endereco[0].Numero.Trim();
             Bairro.Text      = List_Endereco[0].Bairro.Trim();
             fone.Text        = List_Endereco[0].Fone.Trim();
             proximo.Text     = List_Endereco[0].Proximo.Trim();
         }
     }
 }
Ejemplo n.º 9
0
        public static TRegistro_LanFaturamento GerarDevolucao(TRegistro_LanFaturamento rNf)
        {
            CamadaDados.Financeiro.Cadastros.TRegistro_CadClifor Reg_Clifor =
                CamadaNegocio.Financeiro.Cadastros.TCN_CadClifor.Busca_Clifor_Codigo(rNf.Cd_clifor, null);
            #region Nota Fiscal Devolução
            TRegistro_LanFaturamento rNfDev = new TRegistro_LanFaturamento();
            CamadaDados.Faturamento.Cadastros.TList_CadCFGPedidoFiscal lCfgPedido =
                new CamadaDados.Faturamento.Cadastros.TCD_CadCFGPedidoFiscal().Select(
                    new TpBusca[]
            {
                new TpBusca()
                {
                    vNM_Campo = string.Empty,
                    vOperador = "exists",
                    vVL_Busca = "(select 1 from tb_fat_pedido x " +
                                "where x.cfg_pedido = a.cfg_pedido " +
                                "and x.nr_pedido = " + rNf.Nr_pedido.ToString() + ")"
                },
                new TpBusca()
                {
                    vNM_Campo = "a.tp_fiscal",
                    vOperador = "=",
                    vVL_Busca = "'DV'"
                }
            }, 1, string.Empty);

            if (lCfgPedido.Count > 0)
            {
                rNfDev.Cd_empresa           = rNf.Cd_empresa;
                rNfDev.Nr_serie             = lCfgPedido[0].Nr_serie;
                rNfDev.Ds_serienf           = lCfgPedido[0].Ds_serienf;
                rNfDev.Cd_modelo            = lCfgPedido[0].Cd_modelo;
                rNfDev.Cd_movimentacao      = lCfgPedido[0].Cd_movto;
                rNfDev.Cd_cmi               = lCfgPedido[0].Cd_cmi;
                rNfDev.Tp_movimento         = lCfgPedido[0].Tp_movimento.ToUpper().Equals("S") ? "E" : "S";
                rNfDev.Dt_emissao           = CamadaDados.UtilData.Data_Servidor();
                rNfDev.Dt_saient            = CamadaDados.UtilData.Data_Servidor();
                rNfDev.Cd_uf_clifor         = rNf.Cd_uf_clifor;
                rNfDev.Cd_uf_empresa        = rNf.Cd_uf_empresa;
                rNfDev.Cd_condfiscal_clifor = rNf.Cd_condfiscal_clifor;
                rNfDev.rEndereco            = rNf.rEndereco;
                rNfDev.Cd_clifor            = rNf.Cd_clifor;
                rNfDev.Cd_endereco          = rNf.Cd_endereco;
                rNfDev.Nr_pedido            = rNf.Nr_pedido;
                using (TFNumero_Nota fNumero = new TFNumero_Nota())
                {
                    fNumero.Text              = "Dados Nota Fiscal Devolução";
                    fNumero.pCd_empresa       = rNf.Cd_empresa;
                    fNumero.pNm_empresa       = rNf.Nm_empresa;
                    fNumero.pCd_clifor        = rNf.Cd_clifor;
                    fNumero.pNm_clifor        = rNf.Nm_clifor;
                    fNumero.pTp_pessoa        = rNf.Tp_pessoa;
                    fNumero.pNr_serie         = lCfgPedido[0].Nr_serie;
                    fNumero.pDs_serie         = lCfgPedido[0].Ds_serienf;
                    fNumero.pCd_modelo        = lCfgPedido[0].Cd_modelo;
                    fNumero.pTp_movimento     = lCfgPedido[0].Tp_movimento.ToUpper().Equals("S") ? "E" : "S";
                    fNumero.pNr_notafiscal    = string.Empty;
                    fNumero.pDt_emissao       = rNfDev.Dt_emissao;
                    fNumero.pDt_saient        = rNfDev.Dt_saient;
                    fNumero.pSt_sequenciaauto = lCfgPedido[0].ST_SequenciaAuto.Trim().ToUpper().Equals("S");
                    fNumero.pCd_movto         = rNfDev.Cd_movimentacaostring;
                    fNumero.pCd_cmi           = rNfDev.Cd_cmistring;
                    //Buscar insc. estadual origem
                    object obj_inscdestino = new CamadaDados.Financeiro.Cadastros.TCD_CadEndereco().BuscarEscalar(
                        new TpBusca[]
                    {
                        new TpBusca()
                        {
                            vNM_Campo = "a.cd_clifor",
                            vOperador = "=",
                            vVL_Busca = "'" + rNf.Cd_clifor.Trim() + "'"
                        },
                        new TpBusca()
                        {
                            vNM_Campo = "a.cd_endereco",
                            vOperador = "=",
                            vVL_Busca = "'" + rNf.Cd_endereco.Trim() + "'"
                        }
                    }, "a.insc_estadual");
                    if (obj_inscdestino != null)
                    {
                        fNumero.pInsc_estadual = obj_inscdestino.ToString();
                    }
                    fNumero.pTp_nota = (TCN_LanFaturamento.validarST_Nota(fNumero.pTp_movimento, fNumero.pTp_pessoa, Reg_Clifor.St_equiparado_pjbool, Reg_Clifor.St_agropecuariabool).Equals(0) ? "P" : "T");
                    if (fNumero.ShowDialog() == DialogResult.OK)
                    {
                        rNfDev.Nr_serie         = fNumero.pNr_serie;
                        rNfDev.Tp_pessoa        = fNumero.pTp_pessoa;
                        rNfDev.Cd_modelo        = fNumero.pCd_modelo;
                        rNfDev.Tp_movimento     = fNumero.pTp_movimento;
                        rNfDev.Tp_nota          = fNumero.pTp_nota;
                        rNfDev.Dt_emissao       = fNumero.pDt_emissao;
                        rNfDev.Dt_saient        = fNumero.pDt_saient;
                        rNfDev.Obsfiscal        = fNumero.pDs_obsfiscal;
                        rNfDev.Dadosadicionais  = fNumero.pDs_dadosadic;
                        rNfDev.Chave_acesso_nfe = fNumero.pChave_Acesso_NFe;
                        if (!string.IsNullOrEmpty(fNumero.pNr_notafiscal))
                        {
                            rNfDev.Nr_notafiscal = decimal.Parse(fNumero.pNr_notafiscal);
                        }
                        else
                        {
                            rNfDev.Nr_notafiscal = null;
                        }
                        rNfDev.St_sequenciaauto = fNumero.pSt_sequenciaauto;
                        if (rNfDev.Cd_cmistring.Trim() != fNumero.pCd_cmi.Trim())
                        {
                            CamadaDados.Fiscal.TRegistro_CadCMI rCmi =
                                CamadaNegocio.Fiscal.TCN_CadCMI.Busca(fNumero.pCd_cmi,
                                                                      string.Empty,
                                                                      string.Empty,
                                                                      string.Empty,
                                                                      string.Empty,
                                                                      string.Empty,
                                                                      false,
                                                                      false,
                                                                      false,
                                                                      false,
                                                                      false,
                                                                      false,
                                                                      false,
                                                                      null)[0];
                            rNfDev.Cminf.Add(new TRegistro_LanFaturamento_CMI()
                            {
                                St_compdevimposto = rCmi.St_compdevimposto,
                                St_complementar   = rCmi.St_complementar,
                                St_devolucao      = rCmi.St_devolucao,
                                St_geraestoque    = rCmi.St_geraestoque,
                                St_mestra         = rCmi.St_mestra,
                                St_simplesremessa = rCmi.St_simplesremessa,
                                St_retorno        = rCmi.St_retorno
                            });
                            rNfDev.Cd_cmistring   = fNumero.pCd_cmi;
                            rNfDev.Ds_cmi         = rCmi.Ds_cmi;
                            rNfDev.Tp_duplicata   = rCmi.Tp_duplicata;
                            rNfDev.Ds_tpduplicata = rCmi.ds_tpduplicata;
                        }
                        //Dados Frete
                        rNfDev.Cd_transportadora    = fNumero.pCd_transportadora;
                        rNfDev.Nm_razaosocialtransp = fNumero.pNm_transportadora;
                        rNfDev.Cpf_transp           = fNumero.pCnpjCpfTransp;
                        rNfDev.Cd_enderecotransp    = fNumero.pCd_endtransportadora;
                        rNfDev.Especie       = fNumero.pEspecie;
                        rNfDev.Placaveiculo  = fNumero.pPlacaVeiculo;
                        rNfDev.Freteporconta = fNumero.pTp_frete;
                        rNfDev.Vl_frete      = fNumero.pVl_frete;
                        rNfDev.Quantidade    = fNumero.pQuantidade;
                        rNfDev.Pesobruto     = fNumero.pPsbruto;
                        rNfDev.Pesoliquido   = fNumero.pPsliquido;
                        //Dados Exportacao
                        rNfDev.Cd_ufsaidaex = fNumero.pCd_ufsaidaex;
                        rNfDev.Ds_ufsaidaex = fNumero.pDs_ufsaidaex;
                        rNfDev.Uf_saidaex   = fNumero.pUf_saidaex;
                        rNfDev.Ds_localex   = fNumero.pDs_localex;
                    }
                    else
                    {
                        throw new Exception("Obrigatorio informar numero da nota fiscal de destino.");
                    }
                }
            }
            else
            {
                throw new Exception("Não existe configuração fiscal Devolução para tipo de pedido!");
            }
            //Itens da Nota
            rNf.ItensNota.FindAll(p => p.St_processar).ForEach(item =>
            {
                //Item da nota fiscal
                TRegistro_LanFaturamento_Item rItem = new TRegistro_LanFaturamento_Item();
                rItem.Cd_empresa            = item.Cd_empresa;
                rItem.Nr_pedido             = item.Nr_pedido;
                rItem.Id_pedidoitem         = item.Id_pedidoitem;
                rItem.Cd_produto            = item.Cd_produto;
                rItem.Cd_local              = item.Cd_local;
                rItem.Cd_condfiscal_produto = item.Cd_condfiscal_produto;
                rItem.Cd_unidade            = item.Cd_unidade;
                rItem.Cd_unidEst            = item.Cd_unidade;
                rItem.Quantidade            = item.Qtd_devolver;
                rItem.Quantidade_estoque    = item.Qtd_devolver;
                rItem.Vl_subtotal           = item.Qtd_devolver * item.Vl_unitario;
                rItem.Vl_subtotal_estoque   = item.Qtd_devolver * item.Vl_unitario;
                rItem.Vl_unitario           = item.Vl_unitario;
                rItem.Vl_desconto           = (item.Vl_desconto / item.Quantidade) * item.Qtd_devolver;
                rItem.Vl_juro_fin           = (item.Vl_juro_fin / item.Quantidade) * item.Qtd_devolver;

                //Buscar cfop do item
                CamadaDados.Fiscal.TRegistro_CadCFOP rCfop = null;
                if (CamadaNegocio.Fiscal.TCN_Mov_X_CFOP.BuscarCFOP(rNfDev.Cd_movimentacaostring,
                                                                   item.Cd_condfiscal_produto,
                                                                   rNfDev.rEndereco.Cd_uf.Trim().Equals("99") ? "I" : rNfDev.Cd_uf_clifor.Trim().Equals(rNfDev.Cd_uf_empresa.Trim()) ? "D" : "F",
                                                                   (rNfDev.Tp_movimento.Trim().ToUpper().Equals("E") ? rNfDev.Cd_uf_clifor : rNfDev.Cd_uf_empresa),
                                                                   (rNfDev.Tp_movimento.Trim().ToUpper().Equals("E") ? rNfDev.Cd_uf_empresa : rNfDev.Cd_uf_clifor),
                                                                   rNfDev.Tp_movimento,
                                                                   rNfDev.Cd_condfiscal_clifor,
                                                                   rItem.Cd_empresa,
                                                                   ref rCfop,
                                                                   null))
                {
                    rItem.Cd_cfop        = rCfop.CD_CFOP;
                    rItem.Ds_cfop        = rCfop.DS_CFOP;
                    rItem.St_bonificacao = rCfop.St_bonificacaobool;
                }
                else
                {
                    throw new Exception("Não existe CFOP " + (rNf.rEndereco.Cd_uf.Trim().Equals("99") ? "internacional" : rNf.rEndereco.Cd_uf.Trim().Equals(rNf.rEndereco.Cd_uf.Trim()) ? "dentro estado" : "fora estado") + " configurado para a Movimentação " + rNf.Cd_movimentacaostring + " condição fiscal do produto " + item.Cd_condfiscal_produto);
                }
                //Procurar Impostos Estaduais para o Item
                string vObsFiscal       = string.Empty;
                TList_ImpostosNF lImpUf = TCN_LanFaturamento_Item.procuraImpostosPorUf(rItem.Cd_empresa,
                                                                                       (rNfDev.Tp_movimento.Trim().ToUpper().Equals("E") ? rNf.Cd_uf_clifor : rNf.Cd_uf_empresa),
                                                                                       (rNfDev.Tp_movimento.Trim().ToUpper().Equals("E") ? rNf.Cd_uf_empresa : rNf.Cd_uf_clifor),
                                                                                       rNfDev.Cd_movimentacaostring,
                                                                                       rNfDev.Tp_movimento,
                                                                                       rNfDev.Cd_condfiscal_clifor,
                                                                                       rItem.Cd_condfiscal_produto,
                                                                                       rItem.Vl_subtotal,
                                                                                       rItem.Quantidade,
                                                                                       ref vObsFiscal,
                                                                                       rNfDev.Dt_emissao,
                                                                                       rItem.Cd_produto,
                                                                                       rNfDev.Tp_nota,
                                                                                       rNfDev.Nr_serie,
                                                                                       null);
                if (lImpUf.Exists(v => v.Imposto.St_ICMS))
                {
                    TCN_LanFaturamento_Item.PreencherICMS(lImpUf.Find(v => v.Imposto.St_ICMS), rItem);
                    rNf.Obsfiscal += vObsFiscal.Trim();
                }
                else if (TCN_LanFaturamento_Item.ObrigImformarICMS(rItem.Cd_produto, rNf.Nr_serie, null))
                {
                    throw new Exception("Erro: Não existe condição fiscal do ICMS.\r\n" +
                                        "Tipo Movimento: " + rNfDev.Tp_movimento + "\r\n" +
                                        "Movimentação: " + rNfDev.Cd_movimentacao.ToString() + "\r\n" +
                                        "Cond. Fiscal Clifor: " + rNfDev.Cd_condfiscal_clifor.Trim() + "\r\n" +
                                        "Cond. Fiscal Produto: " + rItem.Cd_condfiscal_produto.Trim() + "\r\n" +
                                        "UF Origem: " + (rNfDev.Tp_movimento.Trim().ToUpper().Equals("E") ? rNf.Uf_clifor.Trim() : rNf.Uf_empresa.Trim()) + "\r\n" +
                                        "UF Destino: " + (rNfDev.Tp_movimento.Trim().ToUpper().Equals("E") ? rNf.Uf_empresa.Trim() : rNf.Uf_clifor.Trim()));
                }

                //Procurar impostos sobre os itens da nota fiscal de destino
                TCN_LanFaturamento_Item.PreencherOutrosImpostos(
                    TCN_LanFaturamento_Item.procuraCondicaoFiscalImpostos(rNf.Cd_condfiscal_clifor,
                                                                          rItem.Cd_condfiscal_produto,
                                                                          rNfDev.Cd_movimentacaostring,
                                                                          rNfDev.Tp_movimento,
                                                                          rNfDev.Tp_pessoa,
                                                                          rNfDev.Cd_empresa,
                                                                          rNfDev.Nr_serie,
                                                                          rNfDev.Cd_clifor,
                                                                          rItem.Cd_unidEst,
                                                                          rNfDev.Dt_emissao,
                                                                          rItem.Quantidade,
                                                                          rItem.Vl_subtotal,
                                                                          rNfDev.Tp_nota,
                                                                          rNf.Cd_municipioexecservico,
                                                                          null), rItem, rNfDev.Tp_movimento);
                // Formar Itens a devolver
                rItem.lNfcompdev.Add(new TRegistro_LanFat_ComplementoDevolucao()
                {
                    Cd_empresa             = item.Cd_empresa,
                    Nr_notafiscal_origem   = rNf.Nr_notafiscal,
                    Nr_serie_origem        = rNf.Nr_serie,
                    Nr_lanctofiscal_origem = rNf.Nr_lanctofiscal,
                    Id_nfitem_origem       = item.Id_nfitem,
                    Qtd_lancto             = item.Qtd_devolver,
                    Vl_lancto   = item.Quantidade * item.Vl_unitario,
                    Tp_operacao = "D"
                });
                //Observação do Item com os dados das notas de orig
                rItem.Observacao_item += "NF/Serie Origem      Quantidade     Valor(R$)\r\n" +
                                         (rNf.Nr_notafiscalstr + rNf.Nr_serie).FormatStringDireita(21, ' ') +
                                         item.Qtd_devolver.ToString("N3", new System.Globalization.CultureInfo("en-US", true)) +
                                         rItem.Sigla_unidade_estoque.Trim().FormatStringDireita(15, ' ') +
                                         decimal.Multiply(item.Quantidade, item.Vl_unitario).ToString("N2", new System.Globalization.CultureInfo("en-US", true)).FormatStringDireita(12, ' ') + "\r\n";
                rNfDev.ItensNota.Add(rItem);
            });
            return(rNfDev);

            #endregion
        }
Ejemplo n.º 10
0
        public static CamadaDados.Faturamento.NotaFiscal.TRegistro_LanFaturamento ProcessaVRVendaFutura(CamadaDados.Faturamento.PDV.TRegistro_VendaRapida rVenda,
                                                                                                        CamadaDados.Faturamento.NotaFiscal.TList_LanFat_ComplementoDevolucao lNfM)
        {
            //Buscar pedido entrega futura
            CamadaDados.Faturamento.Pedido.TList_Pedido lPed =
                new CamadaDados.Faturamento.Pedido.TCD_Pedido().Select(
                    new TpBusca[]
            {
                new TpBusca()
                {
                    vNM_Campo = string.Empty,
                    vOperador = "exists",
                    vVL_Busca = "(select 1 from tb_fat_notafiscal_item x " +
                                "where x.nr_pedido = a.nr_pedido " +
                                "and x.cd_empresa = '" + lNfM[0].Cd_empresa.Trim() + "' " +
                                "and x.nr_lanctofiscal = " + lNfM[0].Nr_lanctofiscal_origem.Value.ToString() + " " +
                                "and x.id_nfitem = " + lNfM[0].Id_nfitem_origem.Value.ToString() + ")"
                }
            }, 1, string.Empty);
            if (lPed.Count > 0)
            {
                //Buscar configuracao fiscal entrega futura
                CamadaDados.Faturamento.Cadastros.TList_CadCFGPedidoFiscal lCfgPed =
                    new CamadaDados.Faturamento.Cadastros.TCD_CadCFGPedidoFiscal().Select(
                        new TpBusca[]
                {
                    new TpBusca()
                    {
                        vNM_Campo = "a.tp_fiscal",
                        vOperador = "=",
                        vVL_Busca = "'NO'"
                    },
                    new TpBusca()
                    {
                        vNM_Campo = "a.cfg_pedido",
                        vOperador = "=",
                        vVL_Busca = "'" + lPed[0].CFG_Pedido.Trim() + "'"
                    }
                }, 1, string.Empty);
                if (lCfgPed.Count > 0)
                {
                    //Objeto Nota Fiscal
                    CamadaDados.Faturamento.NotaFiscal.TRegistro_LanFaturamento rNf = new CamadaDados.Faturamento.NotaFiscal.TRegistro_LanFaturamento();
                    rNf.Cd_empresa           = lPed[0].CD_Empresa;
                    rNf.Cd_clifor            = lPed[0].CD_Clifor;
                    rNf.Nm_clifor            = lPed[0].NM_Clifor;
                    rNf.Cd_endereco          = lPed[0].CD_Endereco;
                    rNf.Cd_cmi               = lCfgPed[0].Cd_cmi;
                    rNf.Cd_movimentacao      = lCfgPed[0].Cd_movto;
                    rNf.lCFGFiscal           = lCfgPed;
                    rNf.Cd_uf_empresa        = lPed[0].Cd_uf_empresa;
                    rNf.Uf_empresa           = lPed[0].Uf_empresa;
                    rNf.Cd_uf_clifor         = lPed[0].Cd_uf_cliente;
                    rNf.Uf_clifor            = lPed[0].UF_Cliente;
                    rNf.Cd_condfiscal_clifor = lPed[0].Cd_condfiscal_clifor;
                    rNf.Tp_duplicata         = lCfgPed[0].Tp_duplicata;
                    rNf.Ds_tpduplicata       = lCfgPed[0].Ds_tpduplicata;
                    rNf.Cd_condpgto          = lCfgPed[0].CD_CondPgto;
                    rNf.Nr_pedido            = lPed[0].Nr_pedido;
                    rNf.Tp_movimento         = "S";
                    rNf.Tp_pessoa            = lPed[0].Tp_pessoa;
                    rNf.Tp_nota              = "P";
                    rNf.Nr_serie             = lCfgPed[0].Nr_serie;
                    rNf.Cd_modelo            = lCfgPed[0].Cd_modelo;
                    rNf.St_sequenciaauto     = lCfgPed[0].ST_SequenciaAuto.Trim().ToUpper().Equals("S");
                    rNf.Dt_emissao           = CamadaDados.UtilData.Data_Servidor();
                    rNf.Dt_saient            = rNf.Dt_emissao;
                    rNf.Dadosadicionais      = ProcessaAplicacao.BuscarObsMov("D",
                                                                              rNf.Cd_movimentacaostring,
                                                                              lPed[0].UF_Cliente.Trim().Equals(lPed[0].Uf_empresa.Trim()));
                    rNf.Obsfiscal = ProcessaAplicacao.BuscarObsMov("F",
                                                                   rNf.Cd_movimentacaostring,
                                                                   lPed[0].UF_Cliente.Trim().Equals(lPed[0].Uf_empresa.Trim()));

                    if (rNf.Tp_nota.Trim().ToUpper().Equals("T") || (!rNf.St_sequenciaauto))
                    {
                        //Abrir tela para capturar dados da nota fiscal
                        using (NumeroNota.TFNumero_Nota fNumero = new NumeroNota.TFNumero_Nota())
                        {
                            fNumero.pCd_empresa       = rNf.Cd_empresa;
                            fNumero.pNm_empresa       = rNf.Nm_empresa;
                            fNumero.pCd_clifor        = rNf.Cd_clifor;
                            fNumero.pNm_clifor        = rNf.Nm_clifor;
                            fNumero.pTp_pessoa        = rNf.Tp_pessoa;
                            fNumero.pTp_movimento     = rNf.Tp_movimento;
                            fNumero.pTp_nota          = rNf.Tp_nota;
                            fNumero.pChave_Acesso_NFe = rNf.Chave_acesso_nfe;
                            fNumero.pNr_serie         = rNf.Nr_serie;
                            fNumero.pDs_serie         = rNf.Ds_serienf;
                            fNumero.pCd_modelo        = rNf.Cd_modelo;
                            fNumero.pDt_emissao       = rNf.Dt_emissao;
                            fNumero.pST_NotaUnica     = false;
                            fNumero.pNr_notafiscal    = rNf.Nr_notafiscal.HasValue ? rNf.Nr_notafiscal.Value.ToString() : string.Empty;
                            fNumero.pDt_saient        = rNf.Dt_saient;
                            fNumero.pDs_dadosadic     = rNf.Dadosadicionais;
                            fNumero.pDs_obsfiscal     = rNf.Obsfiscal;
                            fNumero.pSt_sequenciaauto = rNf.St_sequenciaauto;
                            fNumero.pCd_movto         = rNf.Cd_movimentacaostring;
                            fNumero.pCd_cmi           = rNf.Cd_cmistring;
                            if (rNf.Tp_nota.Trim().ToUpper().Equals("T"))
                            {
                                //Buscar inscricao estadual do clifor da nota
                                object obj_insc = new CamadaDados.Financeiro.Cadastros.TCD_CadEndereco().BuscarEscalar(
                                    new TpBusca[]
                                {
                                    new TpBusca()
                                    {
                                        vNM_Campo = "a.cd_clifor",
                                        vOperador = "=",
                                        vVL_Busca = "'" + rNf.Cd_clifor.Trim() + "'"
                                    },
                                    new TpBusca()
                                    {
                                        vNM_Campo = "a.cd_endereco",
                                        vOperador = "=",
                                        vVL_Busca = "'" + rNf.Cd_endereco.Trim() + "'"
                                    }
                                }, "a.insc_estadual");
                                fNumero.pInsc_estadual = obj_insc == null ? string.Empty : obj_insc.ToString();
                            }
                            if (fNumero.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                            {
                                rNf.Chave_acesso_nfe = fNumero.pChave_Acesso_NFe;
                                if (!string.IsNullOrEmpty(fNumero.pNr_notafiscal))
                                {
                                    rNf.Nr_notafiscal = decimal.Parse(fNumero.pNr_notafiscal);
                                }
                                else
                                {
                                    rNf.Nr_notafiscal = null;
                                }
                                rNf.Nr_serie             = fNumero.pNr_serie;
                                rNf.Cd_modelo            = fNumero.pCd_modelo;
                                rNf.Dt_emissao           = fNumero.pDt_emissao;
                                rNf.Dt_saient            = fNumero.pDt_saient;
                                rNf.Obsfiscal            = fNumero.pDs_obsfiscal;
                                rNf.Dadosadicionais      = fNumero.pDs_dadosadic;
                                rNf.Cd_transportadora    = fNumero.pCd_transportadora;
                                rNf.Nm_razaosocialtransp = fNumero.pNm_transportadora;
                                rNf.Cpf_transp           = fNumero.pCnpjCpfTransp;
                                rNf.Placaveiculo         = fNumero.pPlacaVeiculo;
                                rNf.Tp_frete             = fNumero.pTp_frete;
                                rNf.Especie     = fNumero.pEspecie;
                                rNf.Quantidade  = fNumero.pQuantidade;
                                rNf.Pesobruto   = fNumero.pPsbruto;
                                rNf.Pesoliquido = fNumero.pPsliquido;
                                rNf.Vl_frete    = fNumero.pVl_frete;
                                if (rNf.Cd_cmistring.Trim() != fNumero.pCd_cmi.Trim())
                                {
                                    CamadaDados.Fiscal.TRegistro_CadCMI rCmi =
                                        CamadaNegocio.Fiscal.TCN_CadCMI.Busca(fNumero.pCd_cmi,
                                                                              string.Empty,
                                                                              string.Empty,
                                                                              string.Empty,
                                                                              string.Empty,
                                                                              string.Empty,
                                                                              false,
                                                                              false,
                                                                              false,
                                                                              false,
                                                                              false,
                                                                              false,
                                                                              false,
                                                                              null)[0];
                                    rNf.Cminf.Add(new CamadaDados.Faturamento.NotaFiscal.TRegistro_LanFaturamento_CMI()
                                    {
                                        St_compdevimposto = rCmi.St_compdevimposto,
                                        St_complementar   = rCmi.St_complementar,
                                        St_devolucao      = rCmi.St_devolucao,
                                        St_geraestoque    = rCmi.St_geraestoque,
                                        St_mestra         = rCmi.St_mestra,
                                        St_simplesremessa = rCmi.St_simplesremessa,
                                        St_retorno        = rCmi.St_retorno
                                    });
                                    rNf.Cd_cmistring   = fNumero.pCd_cmi;
                                    rNf.Ds_cmi         = rCmi.Ds_cmi;
                                    rNf.Tp_duplicata   = rCmi.Tp_duplicata;
                                    rNf.Ds_tpduplicata = rCmi.ds_tpduplicata;
                                }
                            }
                            else
                            {
                                throw new Exception("Obrigatorio informar numero da nota fiscal.");
                            }
                        }
                    }
                    if (rNf.Nr_notafiscal.HasValue)
                    {
                        CamadaDados.Faturamento.NotaFiscal.TRegistro_LanFaturamento rFat =
                            CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento.existeNumeroNota(rNf.Nr_notafiscal.ToString(),
                                                                                                     rNf.Nr_serie,
                                                                                                     rNf.Cd_empresa,
                                                                                                     rNf.Cd_clifor,
                                                                                                     string.Empty,
                                                                                                     rNf.Tp_nota,
                                                                                                     null);
                        if (rFat != null)
                        {
                            if (rFat.St_registro.Trim().ToUpper().Equals("C"))
                            {
                                throw new Exception("Nota Fiscal Nº " + rFat.Nr_notafiscal.ToString() + " ja existe no sistema e se encontra cancelada.\r\n" +
                                                    "Para poder utilizar o mesmo numero e necessario excluir a nota fiscal cancelada.\r\n" +
                                                    "Dica: Menu FATURAMENTO->Emissão de Notas Fiscais / NFe, localize a nota fiscal cancelada e exclua a mesma.\r\n" +
                                                    "Obs.: Para excluir a nota fiscal cancelada é necessario que o usuario tenha permissão.");
                            }
                            else
                            {
                                throw new Exception("Nota Fiscal Nº " + rFat.Nr_notafiscal.ToString() + " ja existe no sistema e se encontra ativa.\r\n" +
                                                    "Não é permitido gerar nota fiscal com mesmo numero.");
                            }
                        }
                    }
                    rVenda.lItem.ForEach(item =>
                    {
                        //Buscar item pedido
                        object obj = new CamadaDados.Faturamento.Pedido.TCD_LanPedido_Item().BuscarEscalar(
                            new TpBusca[]
                        {
                            new TpBusca()
                            {
                                vNM_Campo = "a.nr_pedido",
                                vOperador = "=",
                                vVL_Busca = lPed[0].Nr_pedido.ToString()
                            },
                            new TpBusca()
                            {
                                vNM_Campo = "a.cd_produto",
                                vOperador = "=",
                                vVL_Busca = "'" + item.Cd_produto.Trim() + "'"
                            }
                        }, "a.id_pedidoitem");
                        //Item da nota fiscal
                        CamadaDados.Faturamento.NotaFiscal.TRegistro_LanFaturamento_Item rItem = new CamadaDados.Faturamento.NotaFiscal.TRegistro_LanFaturamento_Item();
                        rItem.Cd_empresa            = rVenda.Cd_empresa;
                        rItem.Cd_produto            = item.Cd_produto;
                        rItem.Cd_local              = item.Cd_local;
                        rItem.Cd_condfiscal_produto = item.Cd_condfiscal_produto;
                        rItem.Cd_unidade            = item.Cd_unidade;
                        rItem.Cd_unidEst            = item.Cd_unidade;
                        rItem.Nr_pedido             = lPed[0].Nr_pedido;
                        rItem.Id_pedidoitem         = decimal.Parse(obj.ToString());
                        rItem.Quantidade            = item.Quantidade;
                        rItem.Quantidade_estoque    = item.Quantidade;
                        rItem.Vl_subtotal           = item.Vl_subtotal;
                        rItem.Vl_subtotal_estoque   = item.Vl_subtotal;
                        rItem.Vl_unitario           = item.Vl_unitario;
                        //Buscar cfop do item
                        CamadaDados.Fiscal.TRegistro_CadCFOP rCfop = null;
                        if (CamadaNegocio.Fiscal.TCN_Mov_X_CFOP.BuscarCFOP(rNf.Cd_movimentacaostring,
                                                                           item.Cd_condfiscal_produto,
                                                                           lPed[0].Cd_uf_cliente.Trim().Equals("99") ? "I" :
                                                                           lPed[0].Cd_uf_cliente.Trim().Equals(lPed[0].Cd_uf_empresa.Trim()) ? "D" : "F",
                                                                           (rNf.Tp_movimento.Trim().ToUpper().Equals("E") ? rNf.Cd_uf_clifor : rNf.Cd_uf_empresa),
                                                                           (rNf.Tp_movimento.Trim().ToUpper().Equals("E") ? rNf.Cd_uf_empresa : rNf.Cd_uf_clifor),
                                                                           rNf.Tp_movimento,
                                                                           rNf.Cd_condfiscal_clifor,
                                                                           rNf.Cd_empresa,
                                                                           ref rCfop,
                                                                           null))
                        {
                            rItem.Cd_cfop        = rCfop.CD_CFOP;
                            rItem.Ds_cfop        = rCfop.DS_CFOP;
                            rItem.St_bonificacao = rCfop.St_bonificacaobool;
                        }
                        else
                        {
                            throw new Exception("Não existe CFOP " + (lPed[0].Cd_uf_cliente.Trim().Equals("99") ? "internacional" : lPed[0].Cd_uf_cliente.Trim().Equals(lPed[0].Cd_uf_empresa.Trim()) ? "dentro estado" : "fora estado") + " configurado para a Movimentação " + rNf.Cd_movimentacaostring + " condição fiscal do produto " + item.Cd_condfiscal_produto);
                        }
                        //Procurar Impostos Estaduais para o Item
                        string vObsFiscal = string.Empty;
                        CamadaDados.Faturamento.NotaFiscal.TList_ImpostosNF lImpUf =
                            CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento_Item.procuraImpostosPorUf(rNf.Cd_empresa,
                                                                                                              (rNf.Tp_movimento.Trim().ToUpper().Equals("E") ? rNf.Cd_uf_clifor : rNf.Cd_uf_empresa),
                                                                                                              (rNf.Tp_movimento.Trim().ToUpper().Equals("E") ? rNf.Cd_uf_empresa : rNf.Cd_uf_clifor),
                                                                                                              rNf.Cd_movimentacaostring,
                                                                                                              rNf.Tp_movimento,
                                                                                                              rNf.Cd_condfiscal_clifor,
                                                                                                              rItem.Cd_condfiscal_produto,
                                                                                                              rItem.Vl_subtotal,
                                                                                                              rItem.Quantidade,
                                                                                                              ref vObsFiscal,
                                                                                                              rNf.Dt_emissao,
                                                                                                              rItem.Cd_produto,
                                                                                                              rNf.Tp_nota,
                                                                                                              rNf.Nr_serie,
                                                                                                              null);
                        if (lImpUf.Exists(v => v.Imposto.St_ICMS))
                        {
                            CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento_Item.PreencherICMS(lImpUf.Find(v => v.Imposto.St_ICMS), rItem);
                            rNf.Obsfiscal += vObsFiscal.Trim();
                        }
                        else if (CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento_Item.ObrigImformarICMS(rItem.Cd_produto, rNf.Nr_serie, null))
                        {
                            throw new Exception("Erro: Não existe condição fiscal do ICMS.\r\n" +
                                                "Tipo Movimento: " + rNf.Tipo_movimento.Trim() + "\r\n" +
                                                "Movimentação: " + rNf.Cd_movimentacao.ToString() + "\r\n" +
                                                "Cond. Fiscal Clifor: " + rNf.Cd_condfiscal_clifor.Trim() + "\r\n" +
                                                "Cond. Fiscal Produto: " + rItem.Cd_condfiscal_produto.Trim() + "\r\n" +
                                                "UF Origem: " + (rNf.Tp_movimento.Trim().ToUpper().Equals("E") ? rNf.Uf_clifor.Trim() : rNf.Uf_empresa.Trim()) + "\r\n" +
                                                "UF Destino: " + (rNf.Tp_movimento.Trim().ToUpper().Equals("E") ? rNf.Uf_empresa.Trim() : rNf.Uf_clifor.Trim()));
                        }

                        //Procurar impostos sobre os itens da nota fiscal de destino
                        CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento_Item.PreencherOutrosImpostos(
                            CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento_Item.procuraCondicaoFiscalImpostos(rNf.Cd_condfiscal_clifor,
                                                                                                                       rItem.Cd_condfiscal_produto,
                                                                                                                       rNf.Cd_movimentacaostring,
                                                                                                                       rNf.Tp_movimento,
                                                                                                                       rNf.Tp_pessoa,
                                                                                                                       rNf.Cd_empresa,
                                                                                                                       rNf.Nr_serie,
                                                                                                                       rNf.Cd_clifor,
                                                                                                                       rItem.Cd_unidEst,
                                                                                                                       rNf.Dt_emissao,
                                                                                                                       rItem.Quantidade,
                                                                                                                       rItem.Vl_subtotal,
                                                                                                                       rNf.Tp_nota,
                                                                                                                       rNf.Cd_municipioexecservico,
                                                                                                                       null), rItem, rNf.Tp_movimento);
                        //Incluir Nota Mestra
                        rItem.lNfcompdev = lNfM;
                        //Observação do Item com os dados das notas de origem
                        string obsitem = string.Empty;
                        lNfM.ForEach(p =>
                                     obsitem += (p.Nr_notafiscal_origem.ToString() + "/" + p.Nr_serie_origem).FormatStringDireita(21, ' ') +
                                                (p.Qtd_lancto.ToString("N3", new System.Globalization.CultureInfo("pt-BR")) +
                                                 item.Sigla_unidade.Trim()).FormatStringDireita(15, ' ') +
                                                p.Vl_lancto.ToString("N2", new System.Globalization.CultureInfo("pt-BR")).FormatStringDireita(12, ' ') + "\r\n");
                        rItem.Observacao_item += "NF/Serie Origem      Quantidade     Valor(R$)\r\n" + obsitem;
                        rNf.ItensNota.Add(rItem);
                    });
                    return(rNf);
                }
                else
                {
                    throw new Exception("Não existe configuração fiscal para o pedido Nº" + lPed[0].Nr_pedido.ToString());
                }
            }
            else
            {
                throw new Exception("Pedido não localizado.");
            }
        }
Ejemplo n.º 11
0
        public static CamadaDados.Faturamento.NotaFiscal.TRegistro_LanFaturamento ProcessaQuebraTec(CamadaDados.Balanca.TRegistro_PedidoAplicacao rPedAplic,
                                                                                                    List <CamadaDados.Graos.TRegistro_TaxaDeposito> lTaxas,
                                                                                                    string Tp_taxa)
        {
            //Buscar config taxa
            //Buscar configuracao para o tipo de taxa que esta sendo faturada
            CamadaDados.Graos.TList_CFGTaxa CfgTaxa = CamadaNegocio.Graos.TCN_CFGTaxa.Buscar(Tp_taxa,
                                                                                             string.Empty,
                                                                                             string.Empty,
                                                                                             string.Empty,
                                                                                             null);
            //Verificar se existe configuracao fiscal
            if (string.IsNullOrEmpty(CfgTaxa[0].Tp_fiscal))
            {
                throw new Exception("Não existe configuração fiscal para o tipo de taxa por PESO.");
            }
            //Buscar configuracao fiscal do pedido
            CamadaDados.Faturamento.Cadastros.TList_CadCFGPedidoFiscal lCfgPed =
                new CamadaDados.Faturamento.Cadastros.TCD_CadCFGPedidoFiscal().Select(
                    new Utils.TpBusca[]
            {
                new Utils.TpBusca()
                {
                    vNM_Campo = string.Empty,
                    vOperador = "exists",
                    vVL_Busca = "(select 1 from tb_fat_pedido x " +
                                "where x.cfg_pedido = a.cfg_pedido " +
                                "and x.nr_pedido = " + rPedAplic.Nr_pedidostring + ")"
                },
                new Utils.TpBusca()
                {
                    vNM_Campo = "a.tp_fiscal",
                    vOperador = "=",
                    vVL_Busca = "'" + CfgTaxa[0].Tp_fiscal.Trim().ToUpper() + "'"
                }
            }, 1, string.Empty);
            if (lCfgPed.Count > 0)
            {
                //Buscar pedido
                CamadaDados.Faturamento.NotaFiscal.TRegistro_LanFaturamento rNfDev = new CamadaDados.Faturamento.NotaFiscal.TRegistro_LanFaturamento();
                rNfDev.Cd_empresa           = rPedAplic.Cd_empresa;
                rNfDev.Cd_clifor            = rPedAplic.Cd_clifor;
                rNfDev.Nm_clifor            = rPedAplic.Nm_clifor;
                rNfDev.Cd_endereco          = rPedAplic.Cd_endereco;
                rNfDev.Cd_cmi               = lCfgPed[0].Cd_cmi;
                rNfDev.Cd_movimentacao      = lCfgPed[0].Cd_movto;
                rNfDev.lCFGFiscal           = lCfgPed;
                rNfDev.Cd_uf_empresa        = rPedAplic.Cd_uf_empresa;
                rNfDev.Uf_empresa           = rPedAplic.Uf_empresa;
                rNfDev.Cd_uf_clifor         = rPedAplic.Cd_uf_clifor;
                rNfDev.Uf_clifor            = rPedAplic.Uf_clifor;
                rNfDev.Cd_condfiscal_clifor = rPedAplic.Cd_condfiscal_clifor;
                rNfDev.Tp_duplicata         = lCfgPed[0].Tp_duplicata;
                rNfDev.Ds_tpduplicata       = lCfgPed[0].Ds_tpduplicata;
                rNfDev.Cd_condpgto          = rPedAplic.Cd_condpgto;
                rNfDev.Nr_pedido            = rPedAplic.Nr_pedido;
                rNfDev.Tp_movimento         = rPedAplic.Tp_movimento.Trim().ToUpper().Equals("E") ? "S" : "E";
                rNfDev.Tp_pessoa            = rPedAplic.Tp_pessoa;
                rNfDev.Tp_nota              = (rNfDev.Tp_pessoa.Trim().ToUpper().Equals("J") && rNfDev.Tp_movimento.Trim().ToUpper().Equals("E") ? "T" : "P");
                rNfDev.Nr_serie             = lCfgPed[0].Nr_serie;
                rNfDev.Cd_modelo            = lCfgPed[0].Cd_modelo;
                rNfDev.St_sequenciaauto     = lCfgPed[0].ST_SequenciaAuto.Trim().ToUpper().Equals("S");
                rNfDev.Dt_emissao           = CamadaDados.UtilData.Data_Servidor();
                rNfDev.Dt_saient            = rNfDev.Dt_emissao;
                rNfDev.Dadosadicionais      = ProcessaAplicacao.BuscarObsMov("D",
                                                                             rNfDev.Cd_movimentacaostring,
                                                                             rPedAplic.Uf_clifor.Trim().Equals(rPedAplic.Uf_empresa.Trim()));
                rNfDev.Obsfiscal = ProcessaAplicacao.BuscarObsMov("F",
                                                                  rNfDev.Cd_movimentacaostring,
                                                                  rPedAplic.Uf_empresa.Trim().Equals(rPedAplic.Uf_clifor.Trim()));
                rNfDev.Pesoliquido = lTaxas.Sum(p => p.Ps_Taxa);
                //Buscar tipo frete no pedido
                object obj = new CamadaDados.Faturamento.Pedido.TCD_Pedido().BuscarEscalar(
                    new Utils.TpBusca[]
                {
                    new Utils.TpBusca()
                    {
                        vNM_Campo = "a.nr_pedido",
                        vOperador = "=",
                        vVL_Busca = rPedAplic.Nr_pedidostring
                    }
                }, "a.tp_frete");
                rNfDev.Tp_frete = obj == null ? string.Empty : obj.ToString();
                //Abrir tela para capturar dados da nota fiscal
                using (NumeroNota.TFNumero_Nota fNumero = new NumeroNota.TFNumero_Nota())
                {
                    fNumero.pCd_empresa       = rNfDev.Cd_empresa;
                    fNumero.pNm_empresa       = rNfDev.Nm_empresa;
                    fNumero.pCd_clifor        = rNfDev.Cd_clifor;
                    fNumero.pNm_clifor        = rNfDev.Nm_clifor;
                    fNumero.pTp_pessoa        = rNfDev.Tp_pessoa;
                    fNumero.pTp_movimento     = rNfDev.Tp_movimento;
                    fNumero.pTp_nota          = rNfDev.Tp_nota;
                    fNumero.pChave_Acesso_NFe = rNfDev.Chave_acesso_nfe;
                    fNumero.pNr_serie         = rNfDev.Nr_serie;
                    fNumero.pDs_serie         = rNfDev.Ds_serienf;
                    fNumero.pCd_modelo        = rNfDev.Cd_modelo;
                    fNumero.pDt_emissao       = rNfDev.Dt_emissao;
                    fNumero.pST_NotaUnica     = false;
                    fNumero.pNr_notafiscal    = rNfDev.Nr_notafiscal.HasValue ? rNfDev.Nr_notafiscal.Value.ToString() : string.Empty;

                    fNumero.pDt_emissao       = rNfDev.Dt_emissao;
                    fNumero.pDt_saient        = rNfDev.Dt_saient;
                    fNumero.pDs_dadosadic     = rNfDev.Dadosadicionais;
                    fNumero.pDs_obsfiscal     = rNfDev.Obsfiscal;
                    fNumero.pSt_sequenciaauto = rNfDev.St_sequenciaauto;
                    fNumero.pCd_movto         = rNfDev.Cd_movimentacaostring;
                    fNumero.pCd_cmi           = rNfDev.Cd_cmistring;
                    if (rNfDev.Tp_nota.Trim().ToUpper().Equals("T"))
                    {
                        //Buscar inscricao estadual do clifor da nota
                        object obj_insc = new CamadaDados.Financeiro.Cadastros.TCD_CadEndereco().BuscarEscalar(
                            new Utils.TpBusca[]
                        {
                            new Utils.TpBusca()
                            {
                                vNM_Campo = "a.cd_clifor",
                                vOperador = "=",
                                vVL_Busca = "'" + rNfDev.Cd_clifor.Trim() + "'"
                            },
                            new Utils.TpBusca()
                            {
                                vNM_Campo = "a.cd_endereco",
                                vOperador = "=",
                                vVL_Busca = "'" + rNfDev.Cd_endereco.Trim() + "'"
                            }
                        }, "a.insc_estadual");
                        fNumero.pInsc_estadual = obj_insc == null ? string.Empty : obj_insc.ToString();
                    }
                    fNumero.pTp_frete = rNfDev.Tp_frete;
                    if (fNumero.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                    {
                        rNfDev.Chave_acesso_nfe = fNumero.pChave_Acesso_NFe;
                        if (!string.IsNullOrEmpty(fNumero.pNr_notafiscal))
                        {
                            rNfDev.Nr_notafiscal = decimal.Parse(fNumero.pNr_notafiscal);
                        }
                        else
                        {
                            rNfDev.Nr_notafiscal = null;
                        }
                        rNfDev.Nr_serie             = fNumero.pNr_serie;
                        rNfDev.Cd_modelo            = fNumero.pCd_modelo;
                        rNfDev.Dt_emissao           = fNumero.pDt_emissao;
                        rNfDev.Dt_saient            = fNumero.pDt_saient;
                        rNfDev.Obsfiscal            = fNumero.pDs_obsfiscal;
                        rNfDev.Dadosadicionais      = fNumero.pDs_dadosadic;
                        rNfDev.Cd_transportadora    = fNumero.pCd_transportadora;
                        rNfDev.Nm_razaosocialtransp = fNumero.pNm_transportadora;
                        rNfDev.Cpf_transp           = fNumero.pCnpjCpfTransp;
                        rNfDev.Placaveiculo         = fNumero.pPlacaVeiculo;
                        rNfDev.Tp_frete             = fNumero.pTp_frete;
                        rNfDev.Especie     = fNumero.pEspecie;
                        rNfDev.Quantidade  = fNumero.pQuantidade;
                        rNfDev.Pesobruto   = fNumero.pPsbruto;
                        rNfDev.Pesoliquido = fNumero.pPsliquido;
                        rNfDev.Vl_frete    = fNumero.pVl_frete;
                        if (rNfDev.Cd_cmistring.Trim() != fNumero.pCd_cmi.Trim())
                        {
                            CamadaDados.Fiscal.TRegistro_CadCMI rCmi =
                                CamadaNegocio.Fiscal.TCN_CadCMI.Busca(fNumero.pCd_cmi,
                                                                      string.Empty,
                                                                      string.Empty,
                                                                      string.Empty,
                                                                      string.Empty,
                                                                      string.Empty,
                                                                      false,
                                                                      false,
                                                                      false,
                                                                      false,
                                                                      false,
                                                                      false,
                                                                      false,
                                                                      null)[0];
                            rNfDev.Cminf.Add(new CamadaDados.Faturamento.NotaFiscal.TRegistro_LanFaturamento_CMI()
                            {
                                St_compdevimposto = rCmi.St_compdevimposto,
                                St_complementar   = rCmi.St_complementar,
                                St_devolucao      = rCmi.St_devolucao,
                                St_geraestoque    = rCmi.St_geraestoque,
                                St_mestra         = rCmi.St_mestra,
                                St_simplesremessa = rCmi.St_simplesremessa,
                                St_retorno        = rCmi.St_retorno
                            });
                            rNfDev.Cd_cmistring   = fNumero.pCd_cmi;
                            rNfDev.Ds_cmi         = rCmi.Ds_cmi;
                            rNfDev.Tp_duplicata   = rCmi.Tp_duplicata;
                            rNfDev.Ds_tpduplicata = rCmi.ds_tpduplicata;
                        }
                    }
                    else
                    {
                        throw new Exception("Obrigatorio informar numero da nota fiscal.");
                    }
                }
                if (rNfDev.Nr_notafiscal.HasValue)
                {
                    CamadaDados.Faturamento.NotaFiscal.TRegistro_LanFaturamento rFat =
                        CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento.existeNumeroNota(rNfDev.Nr_notafiscal.ToString(),
                                                                                                 rNfDev.Nr_serie,
                                                                                                 rNfDev.Cd_empresa,
                                                                                                 rNfDev.Cd_clifor,
                                                                                                 string.Empty,
                                                                                                 rNfDev.Tp_nota,
                                                                                                 null);
                    if (rFat != null)
                    {
                        if (rFat.St_registro.Trim().ToUpper().Equals("C"))
                        {
                            throw new Exception("Nota Fiscal Nº " + rFat.Nr_notafiscal.ToString() + " ja existe no sistema e se encontra cancelada.\r\n" +
                                                "Para poder utilizar o mesmo numero e necessario excluir a nota fiscal cancelada.\r\n" +
                                                "Dica: Menu FATURAMENTO->Emissão de Notas Fiscais / NFe, localize a nota fiscal cancelada e exclua a mesma.\r\n" +
                                                "Obs.: Para excluir a nota fiscal cancelada é necessario que o usuario tenha permissão.");
                        }
                        else
                        {
                            throw new Exception("Nota Fiscal Nº " + rFat.Nr_notafiscal.ToString() + " ja existe no sistema e se econtra ativa.\r\n" +
                                                "Não é permitido gerar nota fiscal com mesmo numero.");
                        }
                    }
                }
                //Item da nota fiscal
                CamadaDados.Faturamento.NotaFiscal.TRegistro_LanFaturamento_Item rItemDev = new CamadaDados.Faturamento.NotaFiscal.TRegistro_LanFaturamento_Item();
                rItemDev.Cd_empresa            = rPedAplic.Cd_empresa;
                rItemDev.Cd_produto            = rPedAplic.Cd_produto;
                rItemDev.Cd_local              = rPedAplic.Cd_local;
                rItemDev.Cd_condfiscal_produto = rPedAplic.Cd_condfiscal_produto;
                rItemDev.Cd_unidade            = rPedAplic.Cd_unidade;
                rItemDev.Cd_unidEst            = rPedAplic.Cd_unidade_estoque;
                rItemDev.Nr_pedido             = rPedAplic.Nr_pedido.Value;
                rItemDev.Id_pedidoitem         = rPedAplic.Id_pedidoitem;
                rItemDev.Quantidade            = lTaxas.Sum(v => v.Ps_Taxa);
                rItemDev.Quantidade_estoque    = rItemDev.Quantidade;
                rItemDev.Vl_subtotal           = lTaxas.Sum(v => v.Ps_Taxa) * rPedAplic.Vl_unitario;
                rItemDev.Vl_subtotal_estoque   = rItemDev.Vl_subtotal;
                rItemDev.Vl_unitario           = rPedAplic.Vl_unitario;
                //Procurar cfop do item
                CamadaDados.Fiscal.TRegistro_CadCFOP rCfop = null;
                if (CamadaNegocio.Fiscal.TCN_Mov_X_CFOP.BuscarCFOP(rNfDev.Cd_movimentacaostring,
                                                                   rPedAplic.Cd_condfiscal_produto,
                                                                   rPedAplic.Cd_uf_clifor.Trim().Equals("99") ? "I" :
                                                                   rPedAplic.Cd_uf_clifor.Trim().Equals(rPedAplic.Cd_uf_empresa.Trim()) ? "D" : "F",
                                                                   (rNfDev.Tp_movimento.Trim().ToUpper().Equals("E") ? rNfDev.Cd_uf_clifor : rNfDev.Cd_uf_empresa),
                                                                   (rNfDev.Tp_movimento.Trim().ToUpper().Equals("E") ? rNfDev.Cd_uf_empresa : rNfDev.Cd_uf_clifor),
                                                                   rNfDev.Tp_movimento,
                                                                   rNfDev.Cd_condfiscal_clifor,
                                                                   rNfDev.Cd_empresa,
                                                                   ref rCfop,
                                                                   null))
                {
                    rItemDev.Cd_cfop        = rCfop.CD_CFOP;
                    rItemDev.Ds_cfop        = rCfop.DS_CFOP;
                    rItemDev.St_bonificacao = rCfop.St_bonificacaobool;
                }
                else
                {
                    throw new Exception("Não existe CFOP " + (rPedAplic.Cd_uf_clifor.Trim().Equals("99") ? "internacional" : rPedAplic.Cd_uf_clifor.Trim().Equals(rPedAplic.Cd_uf_empresa.Trim()) ? "dentro estado" : "fora estado") + " configurado para a Movimentação " + rNfDev.Cd_movimentacaostring + " condição fiscal do produto " + rPedAplic.Cd_condfiscal_produto);
                }
                //Procurar Impostos Estaduais para o Item
                string vObsFiscal = string.Empty;
                CamadaDados.Faturamento.NotaFiscal.TList_ImpostosNF lImpUf =
                    CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento_Item.procuraImpostosPorUf(rNfDev.Cd_empresa,
                                                                                                      (rNfDev.Tp_movimento.Trim().ToUpper().Equals("E") ? rNfDev.Cd_uf_clifor : rNfDev.Cd_uf_empresa),
                                                                                                      (rNfDev.Tp_movimento.Trim().ToUpper().Equals("E") ? rNfDev.Cd_uf_empresa : rNfDev.Cd_uf_clifor),
                                                                                                      rNfDev.Cd_movimentacaostring,
                                                                                                      rNfDev.Tp_movimento,
                                                                                                      rNfDev.Cd_condfiscal_clifor,
                                                                                                      rItemDev.Cd_condfiscal_produto,
                                                                                                      rItemDev.Vl_subtotal,
                                                                                                      rItemDev.Quantidade,
                                                                                                      ref vObsFiscal,
                                                                                                      rNfDev.Dt_emissao,
                                                                                                      rItemDev.Cd_produto,
                                                                                                      rNfDev.Tp_nota,
                                                                                                      rNfDev.Nr_serie,
                                                                                                      null);
                if (lImpUf.Exists(v => v.Imposto.St_ICMS))
                {
                    CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento_Item.PreencherICMS(lImpUf.Find(v => v.Imposto.St_ICMS), rItemDev);
                    rNfDev.Obsfiscal += vObsFiscal.Trim();
                }
                else if (CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento_Item.ObrigImformarICMS(rItemDev.Cd_produto, rNfDev.Nr_serie, null))
                {
                    throw new Exception("Erro: Não existe condição fiscal do ICMS.\r\n" +
                                        "Tipo Movimento: " + rNfDev.Tipo_movimento.Trim() + "\r\n" +
                                        "Movimentação: " + rNfDev.Cd_movimentacao.ToString() + "\r\n" +
                                        "Cond. Fiscal Clifor: " + rNfDev.Cd_condfiscal_clifor.Trim() + "\r\n" +
                                        "Cond. Fiscal Produto: " + rItemDev.Cd_condfiscal_produto.Trim() + "\r\n" +
                                        "UF Origem: " + (rNfDev.Tp_movimento.Trim().ToUpper().Equals("E") ? rNfDev.Uf_clifor.Trim() : rNfDev.Uf_empresa.Trim()) + "\r\n" +
                                        "UF Destino: " + (rNfDev.Tp_movimento.Trim().ToUpper().Equals("E") ? rNfDev.Uf_empresa.Trim() : rNfDev.Uf_clifor.Trim()));
                }

                //Procurar impostos sobre os itens da nota fiscal de destino
                CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento_Item.PreencherOutrosImpostos(
                    CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento_Item.procuraCondicaoFiscalImpostos(rNfDev.Cd_condfiscal_clifor,
                                                                                                               rItemDev.Cd_condfiscal_produto,
                                                                                                               rNfDev.Cd_movimentacaostring,
                                                                                                               rNfDev.Tp_movimento,
                                                                                                               rNfDev.Tp_pessoa,
                                                                                                               rNfDev.Cd_empresa,
                                                                                                               rNfDev.Nr_serie,
                                                                                                               rNfDev.Cd_clifor,
                                                                                                               rItemDev.Cd_unidEst,
                                                                                                               rNfDev.Dt_emissao,
                                                                                                               rItemDev.Quantidade,
                                                                                                               rItemDev.Vl_subtotal,
                                                                                                               rNfDev.Tp_nota,
                                                                                                               string.Empty,
                                                                                                               null), rItemDev, rNfDev.Tp_movimento);
                rNfDev.ItensNota.Add(rItemDev);
                return(rNfDev);
            }
            else
            {
                throw new Exception("Não existe configuração fiscal para o pedido Nº " + rPedAplic.Nr_pedidostring);
            }
        }
Ejemplo n.º 12
0
        public static string Gravar(TRegistro_Devolucao val,
                                    CamadaDados.Financeiro.Duplicata.TList_RegLanParcela lParc,
                                    BancoDados.TObjetoBanco banco)
        {
            bool          st_transacao = false;
            TCD_Devolucao qtb_dev      = new TCD_Devolucao();

            try
            {
                if (banco == null)
                {
                    st_transacao = qtb_dev.CriarBanco_Dados(true);
                }
                else
                {
                    qtb_dev.Banco_Dados = banco;
                }
                decimal            tot_devolver = Math.Round(val.lItens.Sum(p => p.Qtd_devolver * (p.Vl_subtotalliquido / p.Quantidade)), 2);
                TList_DevolucaoFIN lDevFin      = new TList_DevolucaoFIN();
                if (lParc?.Count > 0)
                {
                    foreach (CamadaDados.Financeiro.Duplicata.TRegistro_LanParcela p in lParc)
                    {
                        if (tot_devolver > decimal.Zero)
                        {
                            lDevFin.Add(new TRegistro_DevolucaoFIN()
                            {
                                Nr_lancto    = p.Nr_lancto,
                                Cd_parcela   = p.Cd_parcela,
                                Vl_devolvido = tot_devolver < p.cVl_atual ? tot_devolver : p.cVl_atual
                            });
                            tot_devolver -= tot_devolver < p.cVl_atual ? tot_devolver : p.cVl_atual;
                        }
                        else
                        {
                            break;
                        }
                    }
                }
                if (tot_devolver > decimal.Zero)
                {
                    //Buscar Config Adto
                    CamadaDados.Financeiro.Cadastros.TList_ConfigAdto lCfgAdto =
                        CamadaNegocio.Financeiro.Cadastros.TCN_CadConfigAdto.Buscar(val.Cd_empresa,
                                                                                    string.Empty,
                                                                                    string.Empty,
                                                                                    string.Empty,
                                                                                    string.Empty,
                                                                                    1,
                                                                                    string.Empty,
                                                                                    qtb_dev.Banco_Dados);
                    if (lCfgAdto.Count.Equals(0))
                    {
                        throw new Exception("Não existe configuração adiantamento para gerar credito.");
                    }
                    //Gerar Credito do valor devolvido
                    CamadaDados.Financeiro.Adiantamento.TRegistro_LanAdiantamento rAdto = new CamadaDados.Financeiro.Adiantamento.TRegistro_LanAdiantamento();
                    rAdto.Cd_clifor  = val.Cd_clifor;
                    rAdto.Cd_empresa = val.Cd_empresa;
                    //Buscar endereco
                    object obj = new CamadaDados.Financeiro.Cadastros.TCD_CadEndereco().BuscarEscalar(
                        new Utils.TpBusca[]
                    {
                        new Utils.TpBusca()
                        {
                            vNM_Campo = "a.cd_clifor",
                            vOperador = "=",
                            vVL_Busca = "'" + val.Cd_clifor.Trim() + "'"
                        }
                    }, "a.cd_endereco");
                    rAdto.CD_Endereco  = obj == null ? string.Empty : obj.ToString();
                    rAdto.Ds_adto      = "CREDITO RECEBIDO DEVOLUÇÃO VENDA";
                    rAdto.Tp_movimento = "R";
                    rAdto.Dt_lancto    = val.Dt_devolucao;
                    rAdto.Vl_adto      = tot_devolver;
                    rAdto.ST_ADTO      = "A";
                    rAdto.TP_Lancto    = "T";//Frente Caixa
                    CamadaNegocio.Financeiro.Adiantamento.TCN_LanAdiantamento.Gravar(rAdto, qtb_dev.Banco_Dados);
                    //Quitar adiantamento
                    rAdto.List_Caixa.Add(new CamadaDados.Financeiro.Caixa.TRegistro_LanCaixa()
                    {
                        Cd_ContaGer    = lCfgAdto[0].Cd_contagerDEV_CV,
                        Cd_Empresa     = val.Cd_empresa,
                        Cd_Historico   = lCfgAdto[0].Cd_historico_ADTO_R,
                        Cd_LanctoCaixa = decimal.Zero,
                        ComplHistorico = "CREDITO RECEBIDO DEVOLUÇÃO VENDA",
                        Dt_lancto      = val.Dt_devolucao,
                        Login          = Utils.Parametros.pubLogin,
                        Nr_Docto       = "DEVPDV",
                        St_Estorno     = "N",
                        St_Titulo      = "N",
                        Vl_PAGAR       = decimal.Zero,
                        Vl_RECEBER     = rAdto.Vl_adto,
                        NM_Clifor      = val.Nm_clifor
                    });
                    CamadaNegocio.Financeiro.Adiantamento.TCN_LanAdiantamentoXCaixa.Quitar_Adiantamento(rAdto, qtb_dev.Banco_Dados);
                    val.Id_adto = rAdto.Id_adto;
                    //Dar saida do valor do credito para não duplicar o valor
                    string ret =
                        CamadaNegocio.Financeiro.Caixa.TCN_LanCaixa.GravaLanCaixa(
                            new CamadaDados.Financeiro.Caixa.TRegistro_LanCaixa()
                    {
                        Cd_ContaGer    = lCfgAdto[0].Cd_contagerDEV_CV,
                        Cd_Empresa     = val.Cd_empresa,
                        Cd_Historico   = lCfgAdto[0].Cd_historicoDEV_Venda,
                        Cd_LanctoCaixa = decimal.Zero,
                        ComplHistorico = "DEVOLUÇÃO VENDA",
                        Dt_lancto      = val.Dt_devolucao,
                        Login          = Utils.Parametros.pubLogin,
                        Nr_Docto       = "DEVPDV",
                        St_Estorno     = "N",
                        St_Titulo      = "N",
                        Vl_PAGAR       = rAdto.Vl_adto,
                        Vl_RECEBER     = decimal.Zero,
                        NM_Clifor      = val.Nm_clifor
                    }, qtb_dev.Banco_Dados);
                    val.Cd_contager       = lCfgAdto[0].Cd_contagerDEV_CV;
                    val.Cd_lanctocaixastr = CamadaDados.TDataQuery.getPubVariavel(ret, "@P_CD_LANCTOCAIXA");
                }
                //Gravar devolucao
                val.Id_devolucaostr = CamadaDados.TDataQuery.getPubVariavel(qtb_dev.Gravar(val), "@P_ID_DEVOLUCAO");
                lDevFin.ForEach(p =>
                {
                    p.Cd_empresa   = val.Cd_empresa;
                    p.Id_devolucao = val.Id_devolucao;
                    TCN_DevolucaoFIN.Gravar(p, qtb_dev.Banco_Dados);
                });
                //Gravar Itens Devolvidos
                val.lItens.ForEach(p =>
                {
                    decimal vl_unit = decimal.Zero;
                    //Buscar Vl.Unitario
                    object objVl_unit = new TCD_LanEstoque(qtb_dev.Banco_Dados).BuscarEscalar(
                        new Utils.TpBusca[]
                    {
                        new Utils.TpBusca()
                        {
                            vNM_Campo = string.Empty,
                            vOperador = "exists",
                            vVL_Busca = "(select 1 from TB_PDV_CupomFiscal_Item_X_Estoque x " +
                                        "where a.Id_LanctoEstoque = x.Id_LanctoEstoque " +
                                        "and a.cd_empresa = x.cd_empresa " +
                                        "and a.cd_produto = x.cd_produto " +
                                        "and x.id_lancto = " + p.Id_lanctovenda.ToString() + " " +
                                        "and x.id_cupom = " + p.Id_vendarapida.ToString() + " " +
                                        "and x.cd_empresa = '" + p.Cd_empresa.Trim() + "' " +
                                        "and x.cd_produto = '" + p.Cd_produto.Trim() + "')"
                        }
                    }, "a.vl_unitario");
                    if (objVl_unit == null || string.IsNullOrEmpty(objVl_unit.ToString()))
                    {
                        vl_unit = TCN_LanEstoque.BuscarVlEstoqueUltimaCompra(val.Cd_empresa, p.Cd_produto, qtb_dev.Banco_Dados);
                    }
                    else
                    {
                        vl_unit = decimal.Parse(objVl_unit.ToString());
                    }
                    //dar entrada novamente no estoque
                    string id_lanctoestoque = CamadaDados.TDataQuery.getPubVariavel(
                        TCN_LanEstoque.GravarEstoque(
                            new TRegistro_LanEstoque()
                    {
                        Cd_empresa    = val.Cd_empresa,
                        Cd_produto    = p.Cd_produto,
                        Cd_local      = p.Cd_local,
                        Dt_lancto     = val.Dt_devolucao,
                        Tp_movimento  = "E",
                        Qtd_entrada   = p.Qtd_devolver,
                        Qtd_saida     = decimal.Zero,
                        Vl_unitario   = vl_unit,
                        Vl_subtotal   = vl_unit,
                        Tp_lancto     = "L",
                        St_registro   = "A",
                        Ds_observacao = "DEVOLUCAO VENDA FRENTE CAIXA Nº" + p.Id_vendarapida.Value.ToString()
                    }, qtb_dev.Banco_Dados), "@@P_ID_LANCTOESTOQUE");
                    //gravar itens devolvidos
                    TCN_ItensDevolvidos.Gravar(new TRegistro_ItensDevolvidos()
                    {
                        Cd_empresa          = val.Cd_empresa,
                        Id_devolucao        = val.Id_devolucao,
                        Id_lancto           = p.Id_lanctovenda,
                        Id_cupom            = p.Id_vendarapida,
                        Cd_produto          = p.Cd_produto,
                        Id_lanctoestoquestr = id_lanctoestoque
                    }, qtb_dev.Banco_Dados);
                    //Grade Produto
                    p.lGrade.ForEach(v =>
                    {
                        if (v.Vl_mov > decimal.Zero)
                        {
                            TCN_GradeEstoque.Gravar(
                                new TRegistro_GradeEstoque
                            {
                                Cd_empresa        = p.Cd_empresa,
                                Cd_produto        = p.Cd_produto,
                                Id_lanctoestoque  = decimal.Parse(id_lanctoestoque),
                                Id_caracteristica = v.Id_caracteristica,
                                Id_item           = v.Id_item,
                                quantidade        = v.Vl_mov
                            }, qtb_dev.Banco_Dados);
                        }
                    });
                });
                //Reprocessar Comissão
                new TCD_VendaRapida_Item(qtb_dev.Banco_Dados).Select(
                    new Utils.TpBusca[]
                {
                    new Utils.TpBusca()
                    {
                        vNM_Campo = "a.id_vendarapida",
                        vOperador = "=",
                        vVL_Busca = val.lItens[0].Id_vendarapida.ToString()
                    },
                    new Utils.TpBusca()
                    {
                        vNM_Campo = "a.cd_empresa",
                        vOperador = "=",
                        vVL_Busca = "'" + val.Cd_empresa.Trim() + "'"
                    }
                }, 0, string.Empty, string.Empty).ForEach(p => PDV.TCN_VendaRapida_Item.ProcessarComissao(p, qtb_dev.Banco_Dados));
                if (val.lItens.Count > 0)
                {
                    //Recalcular Pontos Fidelidade
                    new CamadaDados.Faturamento.Fidelizacao.TCD_PontosFidelidade(qtb_dev.Banco_Dados).Select(
                        new Utils.TpBusca[]
                    {
                        new Utils.TpBusca()
                        {
                            vNM_Campo = "a.cd_empresa",
                            vOperador = "=",
                            vVL_Busca = "'" + val.Cd_empresa.Trim() + "'"
                        },
                        new Utils.TpBusca()
                        {
                            vNM_Campo = "a.id_cupom",
                            vOperador = "=",
                            vVL_Busca = val.lItens[0].Id_vendarapida.ToString()
                        }
                    }, 0, string.Empty, string.Empty).ForEach(x =>
                    {
                        System.Collections.Hashtable hs = new System.Collections.Hashtable(3);
                        hs.Add("@P_CD_EMPRESA", x.Cd_empresa);
                        hs.Add("@P_ID_CUPOM", x.Id_cupomstr);
                        hs.Add("@P_QTD_DEVOLVER", val.lItens.Sum(p => p.Qtd_devolver * (x.Qt_pontos / p.Quantidade)));
                        qtb_dev.executarSql("update TB_FAT_PontosFidelidade set QT_Pontos = QT_Pontos - @P_QTD_DEVOLVER" +
                                            " where cd_empresa = @P_CD_EMPRESA" +
                                            " and id_cupom = @P_ID_CUPOM", hs);
                    });

                    //Recalcular Resgate
                    new CamadaDados.Faturamento.Fidelizacao.TCD_ResgatePontos(qtb_dev.Banco_Dados).Select(
                        new Utils.TpBusca[]
                    {
                        new Utils.TpBusca()
                        {
                            vNM_Campo = "a.cd_empresa",
                            vOperador = "=",
                            vVL_Busca = "'" + val.Cd_empresa.Trim() + "'"
                        },
                        new Utils.TpBusca()
                        {
                            vNM_Campo = "a.id_cupom",
                            vOperador = "=",
                            vVL_Busca = val.lItens[0].Id_vendarapida.ToString()
                        }
                    }, 0, string.Empty).ForEach(x =>
                    {
                        System.Collections.Hashtable hs = new System.Collections.Hashtable(4);
                        hs.Add("@P_CD_EMPRESA", x.Cd_empresa);
                        hs.Add("@P_ID_CUPOM", x.Id_cupomstr);
                        hs.Add("@P_ID_PONTO", x.Id_pontostr);
                        hs.Add("@P_QTD_DEVOLVER", val.lItens.Sum(p => p.Qtd_devolver * (x.Qt_pontos / p.Quantidade)));
                        qtb_dev.executarSql("update TB_FAT_ResgatePontos set QT_Pontos = QT_Pontos - @P_QTD_DEVOLVER" +
                                            " where cd_empresa = @P_CD_EMPRESA" +
                                            " and id_cupom = @P_ID_CUPOM" +
                                            " and id_ponto = @P_ID_PONTO", hs);
                    });
                }
                if (st_transacao)
                {
                    qtb_dev.Banco_Dados.Commit_Tran();
                }
                return(val.Id_devolucaostr);
            }
            catch (Exception ex)
            {
                if (st_transacao)
                {
                    qtb_dev.Banco_Dados.RollBack_Tran();
                }
                throw new Exception("Erro gravar devolução:" + ex.Message.Trim());
            }
            finally
            {
                if (st_transacao)
                {
                    qtb_dev.deletarBanco_Dados();
                }
            }
        }
Ejemplo n.º 13
0
        public static void GerarTransferencia(CamadaDados.Graos.TRegistro_Transferencia rTransf)
        {
            rTransf.Reg_Clifor_Destino = CamadaNegocio.Financeiro.Cadastros.TCN_CadClifor.Busca_Clifor_Codigo(rTransf.Transf_X_Contrato_Destino[0].CD_Clifor, null);
            rTransf.Reg_Clifor_Origem  = CamadaNegocio.Financeiro.Cadastros.TCN_CadClifor.Busca_Clifor_Codigo(rTransf.Transf_X_Contrato_Origem[0].CD_Clifor, null);

            using (TFLanCompDevol_NF fCompDevol = new TFLanCompDevol_NF())
            {
                fCompDevol.Cd_empresa = rTransf.Transf_X_Contrato_Origem[0].CD_Empresa;
                fCompDevol.Nr_pedido  = rTransf.Transf_X_Contrato_Origem[0].Nr_pedido.ToString();
                fCompDevol.Cd_produto = rTransf.Transf_X_Contrato_Origem[0].Cd_produto;
                fCompDevol.Cd_clifor  = rTransf.Transf_X_Contrato_Origem[0].CD_Clifor;

                fCompDevol.Tp_operacao  = "D";
                fCompDevol.Tp_movimento = "E";
                fCompDevol.Quantidade   = rTransf.QTD_Transf;
                fCompDevol.Valor        = rTransf.VL_Sub_Total_Origem;

                if (fCompDevol.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                {
                    rTransf.Complemento_Devolucao = fCompDevol.ListaCompDev;

                    #region Nota Fiscal Origem
                    //Buscar registro contrato de origem
                    rTransf.Contrato_Origem =
                        CamadaNegocio.Graos.TCN_CadContrato.BuscarContrato(string.Empty,
                                                                           rTransf.Transf_X_Contrato_Origem[0].NR_Contrato.ToString(),
                                                                           string.Empty,
                                                                           string.Empty,
                                                                           string.Empty,
                                                                           string.Empty,
                                                                           string.Empty,
                                                                           string.Empty,
                                                                           string.Empty,
                                                                           string.Empty,
                                                                           string.Empty,
                                                                           string.Empty,
                                                                           string.Empty,
                                                                           string.Empty,
                                                                           null)[0];

                    rTransf.rNfOrigem = new CamadaDados.Faturamento.NotaFiscal.TRegistro_LanFaturamento();
                    CamadaDados.Faturamento.Cadastros.TList_CadCFGPedidoFiscal lSerieOrigem =
                        new CamadaDados.Faturamento.Cadastros.TCD_CadCFGPedidoFiscal().Select(
                            new TpBusca[]
                    {
                        new TpBusca()
                        {
                            vNM_Campo = string.Empty,
                            vOperador = "exists",
                            vVL_Busca = "(select 1 from tb_fat_pedido x " +
                                        "where x.cfg_pedido = a.cfg_pedido " +
                                        "and x.nr_pedido = " + rTransf.Transf_X_Contrato_Origem[0].Nr_pedido.ToString() + ")"
                        },
                        new TpBusca()
                        {
                            vNM_Campo = "a.tp_fiscal",
                            vOperador = "=",
                            vVL_Busca = "'DF'"            //Devolução Fiscal, não movimenta estoque
                        }
                    }, 1, string.Empty);

                    if (lSerieOrigem.Count > 0)
                    {
                        rTransf.rNfOrigem.Nr_serie        = lSerieOrigem[0].Nr_serie;
                        rTransf.rNfOrigem.Ds_serienf      = lSerieOrigem[0].Ds_serienf;
                        rTransf.rNfOrigem.Cd_modelo       = lSerieOrigem[0].Cd_modelo;
                        rTransf.rNfOrigem.Cd_movimentacao = lSerieOrigem[0].Cd_movto;
                        rTransf.rNfOrigem.Cd_cmi          = lSerieOrigem[0].Cd_cmi;
                        rTransf.rNfOrigem.Tp_movimento    = "S";
                        rTransf.rNfOrigem.Tp_nota         = "P";
                        rTransf.rNfOrigem.Dt_emissao      = rTransf.DT_Lancto;
                        rTransf.rNfOrigem.Dt_saient       = rTransf.DT_Lancto;
                        using (TFNumero_Nota Numero_Nota = new TFNumero_Nota())
                        {
                            Numero_Nota.Text              = "Dados Nota Fiscal Devolução";
                            Numero_Nota.pCd_empresa       = rTransf.Transf_X_Contrato_Origem[0].CD_Empresa;
                            Numero_Nota.pNm_empresa       = rTransf.Transf_X_Contrato_Origem[0].NM_Empresa;
                            Numero_Nota.pCd_clifor        = rTransf.Transf_X_Contrato_Origem[0].CD_Clifor;
                            Numero_Nota.pNm_clifor        = rTransf.Transf_X_Contrato_Origem[0].NM_Clifor;
                            Numero_Nota.pNr_serie         = lSerieOrigem[0].Nr_serie;
                            Numero_Nota.pDs_serie         = lSerieOrigem[0].Ds_serienf;
                            Numero_Nota.pCd_modelo        = lSerieOrigem[0].Cd_modelo;
                            Numero_Nota.pTp_movimento     = "S";
                            Numero_Nota.pTp_nota          = "P";
                            Numero_Nota.pDt_emissao       = rTransf.DT_Lancto;
                            Numero_Nota.pDt_saient        = rTransf.DT_Lancto;
                            Numero_Nota.pSt_sequenciaauto = lSerieOrigem[0].ST_SequenciaAuto.Trim().ToUpper().Equals("S");
                            Numero_Nota.pTp_pessoa        = rTransf.Reg_Clifor_Origem.Tp_pessoa;
                            Numero_Nota.pCd_movto         = rTransf.rNfOrigem.Cd_movimentacaostring;
                            Numero_Nota.pCd_cmi           = rTransf.rNfOrigem.Cd_cmistring;
                            //Buscar insc. estadual origem
                            object obj_inscorigem = new CamadaDados.Financeiro.Cadastros.TCD_CadEndereco().BuscarEscalar(
                                new TpBusca[]
                            {
                                new TpBusca()
                                {
                                    vNM_Campo = "a.cd_clifor",
                                    vOperador = "=",
                                    vVL_Busca = "'" + rTransf.Contrato_Origem.Cd_clifor.Trim() + "'"
                                },
                                new TpBusca()
                                {
                                    vNM_Campo = "a.cd_endereco",
                                    vOperador = "=",
                                    vVL_Busca = "'" + rTransf.Contrato_Origem.Cd_endereco.Trim() + "'"
                                }
                            }, "a.insc_estadual");
                            if (obj_inscorigem != null)
                            {
                                Numero_Nota.pInsc_estadual = obj_inscorigem.ToString();
                            }
                            if (Numero_Nota.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                            {
                                rTransf.rNfOrigem.Nr_serie         = Numero_Nota.pNr_serie;
                                rTransf.rNfOrigem.Cd_modelo        = Numero_Nota.pCd_modelo;
                                rTransf.rNfOrigem.Tp_movimento     = Numero_Nota.pTp_movimento;
                                rTransf.rNfOrigem.Tp_nota          = Numero_Nota.pTp_nota;
                                rTransf.rNfOrigem.Dt_emissao       = Numero_Nota.pDt_emissao;
                                rTransf.rNfOrigem.Dt_saient        = Numero_Nota.pDt_saient;
                                rTransf.rNfOrigem.St_sequenciaauto = Numero_Nota.pSt_sequenciaauto;;
                                rTransf.rNfOrigem.Obsfiscal        = Numero_Nota.pDs_obsfiscal;
                                rTransf.rNfOrigem.Dadosadicionais  = Numero_Nota.pDs_dadosadic;
                                rTransf.rNfOrigem.Chave_acesso_nfe = Numero_Nota.pChave_Acesso_NFe;
                                if (!string.IsNullOrEmpty(Numero_Nota.pNr_notafiscal))
                                {
                                    rTransf.rNfOrigem.Nr_notafiscal = decimal.Parse(Numero_Nota.pNr_notafiscal);
                                }
                                else
                                {
                                    rTransf.rNfOrigem.Nr_notafiscal = null;
                                }
                                if (rTransf.rNfOrigem.Cd_cmistring.Trim() != Numero_Nota.pCd_cmi.Trim())
                                {
                                    CamadaDados.Fiscal.TRegistro_CadCMI rCmi =
                                        CamadaNegocio.Fiscal.TCN_CadCMI.Busca(Numero_Nota.pCd_cmi,
                                                                              string.Empty,
                                                                              string.Empty,
                                                                              string.Empty,
                                                                              string.Empty,
                                                                              string.Empty,
                                                                              false,
                                                                              false,
                                                                              false,
                                                                              false,
                                                                              false,
                                                                              false,
                                                                              false,
                                                                              null)[0];
                                    rTransf.rNfOrigem.Cminf.Add(new CamadaDados.Faturamento.NotaFiscal.TRegistro_LanFaturamento_CMI()
                                    {
                                        St_compdevimposto = rCmi.St_compdevimposto,
                                        St_complementar   = rCmi.St_complementar,
                                        St_devolucao      = rCmi.St_devolucao,
                                        St_geraestoque    = rCmi.St_geraestoque,
                                        St_mestra         = rCmi.St_mestra,
                                        St_simplesremessa = rCmi.St_simplesremessa,
                                        St_retorno        = rCmi.St_retorno
                                    });
                                    rTransf.rNfOrigem.Cd_cmistring   = Numero_Nota.pCd_cmi;
                                    rTransf.rNfOrigem.Ds_cmi         = rCmi.Ds_cmi;
                                    rTransf.rNfOrigem.Tp_duplicata   = rCmi.Tp_duplicata;
                                    rTransf.rNfOrigem.Ds_tpduplicata = rCmi.ds_tpduplicata;
                                }
                            }
                            else
                            {
                                throw new Exception("Obrigatorio informar numero da nota fiscal de origem.");
                            }
                        }
                    }
                    else
                    {
                        throw new Exception("Não existe configuração fiscal de TRANSFERENCIA para o contrato de origem " +
                                            rTransf.Transf_X_Contrato_Origem[0].NR_Contrato.ToString() + ".");
                    }
                    #endregion

                    #region Nota Fiscal Destino
                    //Buscar pedido destino
                    rTransf.Contrato_Destino =
                        CamadaNegocio.Graos.TCN_CadContrato.BuscarContrato(string.Empty,
                                                                           rTransf.Transf_X_Contrato_Destino[0].Nr_contratostr,
                                                                           string.Empty,
                                                                           string.Empty,
                                                                           string.Empty,
                                                                           string.Empty,
                                                                           string.Empty,
                                                                           string.Empty,
                                                                           string.Empty,
                                                                           string.Empty,
                                                                           string.Empty,
                                                                           string.Empty,
                                                                           string.Empty,
                                                                           string.Empty,
                                                                           null)[0];

                    rTransf.rNfDestino = new CamadaDados.Faturamento.NotaFiscal.TRegistro_LanFaturamento();
                    CamadaDados.Faturamento.Cadastros.TList_CadCFGPedidoFiscal lSerieDestino =
                        new CamadaDados.Faturamento.Cadastros.TCD_CadCFGPedidoFiscal().Select(
                            new TpBusca[]
                    {
                        new TpBusca()
                        {
                            vNM_Campo = string.Empty,
                            vOperador = "exists",
                            vVL_Busca = "(select 1 from tb_fat_pedido x " +
                                        "where x.cfg_pedido = a.cfg_pedido " +
                                        "and x.nr_pedido = " + rTransf.Transf_X_Contrato_Destino[0].Nr_pedido.ToString() + ")"
                        },
                        new TpBusca()
                        {
                            vNM_Campo = "a.tp_fiscal",
                            vOperador = "=",
                            vVL_Busca = "'TF'"
                        }
                    }, 1, string.Empty);

                    if (lSerieDestino.Count > 0)
                    {
                        rTransf.rNfDestino.Nr_serie        = lSerieDestino[0].Nr_serie;
                        rTransf.rNfDestino.Ds_serienf      = lSerieDestino[0].Ds_serienf;
                        rTransf.rNfDestino.Cd_modelo       = lSerieDestino[0].Cd_modelo;
                        rTransf.rNfDestino.Cd_movimentacao = lSerieDestino[0].Cd_movto;
                        rTransf.rNfDestino.Cd_cmi          = lSerieDestino[0].Cd_cmi;
                        rTransf.rNfDestino.Tp_movimento    = "E";
                        rTransf.rNfDestino.Dt_emissao      = rTransf.DT_Lancto;
                        rTransf.rNfDestino.Dt_saient       = rTransf.DT_Lancto;
                        using (TFNumero_Nota Numero_Nota_Destino = new TFNumero_Nota())
                        {
                            Numero_Nota_Destino.Text              = "Dados Nota Fiscal Entrada";
                            Numero_Nota_Destino.pCd_empresa       = rTransf.Transf_X_Contrato_Destino[0].CD_Empresa;
                            Numero_Nota_Destino.pNm_empresa       = rTransf.Transf_X_Contrato_Destino[0].NM_Empresa;
                            Numero_Nota_Destino.pCd_clifor        = rTransf.Transf_X_Contrato_Destino[0].CD_Clifor;
                            Numero_Nota_Destino.pNm_clifor        = rTransf.Transf_X_Contrato_Destino[0].NM_Clifor;
                            Numero_Nota_Destino.pNr_serie         = lSerieDestino[0].Nr_serie;
                            Numero_Nota_Destino.pDs_serie         = lSerieDestino[0].Ds_serienf;
                            Numero_Nota_Destino.pCd_modelo        = lSerieDestino[0].Cd_modelo;
                            Numero_Nota_Destino.pTp_movimento     = "E";
                            Numero_Nota_Destino.pDt_emissao       = rTransf.DT_Lancto;
                            Numero_Nota_Destino.pDt_saient        = rTransf.DT_Lancto;
                            Numero_Nota_Destino.pSt_sequenciaauto = lSerieDestino[0].ST_SequenciaAuto.Trim().ToUpper().Equals("S");
                            Numero_Nota_Destino.pTp_pessoa        = rTransf.Reg_Clifor_Destino.Tp_pessoa;
                            Numero_Nota_Destino.pCd_movto         = rTransf.rNfDestino.Cd_movimentacaostring;
                            Numero_Nota_Destino.pCd_cmi           = rTransf.rNfDestino.Cd_cmistring;
                            //Buscar insc. estadual origem
                            object obj_inscdestino = new CamadaDados.Financeiro.Cadastros.TCD_CadEndereco().BuscarEscalar(
                                new TpBusca[]
                            {
                                new TpBusca()
                                {
                                    vNM_Campo = "a.cd_clifor",
                                    vOperador = "=",
                                    vVL_Busca = "'" + rTransf.Contrato_Destino.Cd_clifor.Trim() + "'"
                                },
                                new TpBusca()
                                {
                                    vNM_Campo = "a.cd_endereco",
                                    vOperador = "=",
                                    vVL_Busca = "'" + rTransf.Contrato_Destino.Cd_endereco.Trim() + "'"
                                }
                            }, "a.insc_estadual");
                            if (obj_inscdestino != null)
                            {
                                Numero_Nota_Destino.pInsc_estadual = obj_inscdestino.ToString();
                            }
                            Numero_Nota_Destino.pTp_nota = (CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento.validarST_Nota("E", Numero_Nota_Destino.pTp_pessoa, rTransf.Reg_Clifor_Destino.St_equiparado_pjbool, rTransf.Reg_Clifor_Destino.St_agropecuariabool).Equals(0) ? "P" : "T");
                            if (Numero_Nota_Destino.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                            {
                                rTransf.rNfDestino.Nr_serie         = Numero_Nota_Destino.pNr_serie;
                                rTransf.rNfDestino.Cd_modelo        = Numero_Nota_Destino.pCd_modelo;
                                rTransf.rNfDestino.Tp_movimento     = Numero_Nota_Destino.pTp_movimento;
                                rTransf.rNfDestino.Tp_nota          = Numero_Nota_Destino.pTp_nota;
                                rTransf.rNfDestino.Dt_emissao       = Numero_Nota_Destino.pDt_emissao;
                                rTransf.rNfDestino.Dt_saient        = Numero_Nota_Destino.pDt_saient;
                                rTransf.rNfDestino.Obsfiscal        = Numero_Nota_Destino.pDs_obsfiscal;
                                rTransf.rNfDestino.Dadosadicionais  = Numero_Nota_Destino.pDs_dadosadic;
                                rTransf.rNfDestino.Chave_acesso_nfe = Numero_Nota_Destino.pChave_Acesso_NFe;
                                if (!string.IsNullOrEmpty(Numero_Nota_Destino.pNr_notafiscal))
                                {
                                    rTransf.rNfDestino.Nr_notafiscal = decimal.Parse(Numero_Nota_Destino.pNr_notafiscal);
                                }
                                else
                                {
                                    rTransf.rNfDestino.Nr_notafiscal = null;
                                }
                                rTransf.rNfDestino.St_sequenciaauto = Numero_Nota_Destino.pSt_sequenciaauto;
                                if (rTransf.rNfDestino.Cd_cmistring.Trim() != Numero_Nota_Destino.pCd_cmi.Trim())
                                {
                                    CamadaDados.Fiscal.TRegistro_CadCMI rCmi =
                                        CamadaNegocio.Fiscal.TCN_CadCMI.Busca(Numero_Nota_Destino.pCd_cmi,
                                                                              string.Empty,
                                                                              string.Empty,
                                                                              string.Empty,
                                                                              string.Empty,
                                                                              string.Empty,
                                                                              false,
                                                                              false,
                                                                              false,
                                                                              false,
                                                                              false,
                                                                              false,
                                                                              false,
                                                                              null)[0];
                                    rTransf.rNfDestino.Cminf.Add(new CamadaDados.Faturamento.NotaFiscal.TRegistro_LanFaturamento_CMI()
                                    {
                                        St_compdevimposto = rCmi.St_compdevimposto,
                                        St_complementar   = rCmi.St_complementar,
                                        St_devolucao      = rCmi.St_devolucao,
                                        St_geraestoque    = rCmi.St_geraestoque,
                                        St_mestra         = rCmi.St_mestra,
                                        St_simplesremessa = rCmi.St_simplesremessa,
                                        St_retorno        = rCmi.St_retorno
                                    });
                                    rTransf.rNfDestino.Cd_cmistring   = Numero_Nota_Destino.pCd_cmi;
                                    rTransf.rNfDestino.Ds_cmi         = rCmi.Ds_cmi;
                                    rTransf.rNfDestino.Tp_duplicata   = rCmi.Tp_duplicata;
                                    rTransf.rNfDestino.Ds_tpduplicata = rCmi.ds_tpduplicata;
                                }
                            }
                            else
                            {
                                throw new Exception("Obrigatorio informar numero da nota fiscal de destino.");
                            }
                        }
                    }
                    else
                    {
                        throw new Exception("Não existe configuração fiscal NORMAL para o contrato de destino " +
                                            rTransf.Transf_X_Contrato_Destino[0].NR_Contrato.ToString() + ".");
                    }
                    #endregion

                    rTransf.Duplicata_Origem = TProcessaDevAquisicao.Gera_Financeiro(rTransf.Transf_X_Contrato_Origem[0],
                                                                                     rTransf.VL_Sub_Total_Origem,
                                                                                     rTransf.DT_Lancto,
                                                                                     "O");
                    rTransf.Duplicata_Destino = TProcessaDevAquisicao.Gera_Financeiro(rTransf.Transf_X_Contrato_Destino[0],
                                                                                      rTransf.VL_Sub_Total_Destino,
                                                                                      rTransf.DT_Lancto,
                                                                                      "D");

                    if ((rTransf.Duplicata_Origem != null) && (rTransf.Duplicata_Destino != null))
                    {
                        rTransf.Contrato_Origem.Pedido_Fiscal = new CamadaDados.Faturamento.Cadastros.TCD_CadCFGPedidoFiscal().Select(
                            new TpBusca[]
                        {
                            new TpBusca()
                            {
                                vNM_Campo = string.Empty,
                                vOperador = "exists",
                                vVL_Busca = "(select 1 from tb_fat_pedido x " +
                                            "where x.cfg_pedido = a.cfg_pedido " +
                                            "and x.nr_pedido = " + rTransf.Contrato_Origem.Nr_pedido.ToString() + ")"
                            },
                            new TpBusca()
                            {
                                vNM_Campo = "a.tp_fiscal",
                                vOperador = "=",
                                vVL_Busca = "'DF'"
                            }
                        }, 1, string.Empty);
                        rTransf.Reg_Produto_Origem =
                            CamadaNegocio.Estoque.Cadastros.TCN_CadProduto.Busca_Produto_Codigo(rTransf.Transf_X_Contrato_Origem[0].Cd_produto, null);
                        rTransf.Reg_Empresa_Origem =
                            CamadaNegocio.Diversos.TCN_CadEmpresa.Busca(rTransf.Transf_X_Contrato_Origem[0].CD_Empresa,
                                                                        string.Empty,
                                                                        string.Empty,
                                                                        null)[0];
                        CamadaDados.Faturamento.Pedido.TList_Pedido List_Contrato_Destino = new CamadaDados.Faturamento.Pedido.TList_Pedido();

                        rTransf.Contrato_Destino.Pedido_Fiscal = new CamadaDados.Faturamento.Cadastros.TCD_CadCFGPedidoFiscal().Select(
                            new TpBusca[]
                        {
                            new TpBusca()
                            {
                                vNM_Campo = string.Empty,
                                vOperador = "exists",
                                vVL_Busca = "(select 1 from tb_fat_pedido x " +
                                            "where x.cfg_pedido = a.cfg_pedido " +
                                            "and x.nr_pedido = " + rTransf.Transf_X_Contrato_Destino[0].Nr_pedido.ToString() + ")"
                            },
                            new TpBusca()
                            {
                                vNM_Campo = "a.tp_fiscal",
                                vOperador = "=",
                                vVL_Busca = "'TF'"
                            }
                        }, 1, string.Empty);
                        rTransf.Reg_Produto_Destino =
                            CamadaNegocio.Estoque.Cadastros.TCN_CadProduto.Busca_Produto_Codigo(rTransf.Transf_X_Contrato_Destino[0].Cd_produto, null);
                        rTransf.Reg_Empresa_Destino =
                            CamadaNegocio.Diversos.TCN_CadEmpresa.Busca(rTransf.Transf_X_Contrato_Destino[0].CD_Empresa,
                                                                        string.Empty,
                                                                        string.Empty,
                                                                        null)[0];
                    }
                    else
                    {
                        throw new Exception("Verifique os dados das Duplicatas.");
                    }
                }
                else
                {
                    throw new Exception("Obrigatório informar as notas a serem Devolvidas.");
                }
            }
        }
Ejemplo n.º 14
0
        private void TFReceberConvenio_Load(object sender, EventArgs e)
        {
            ShapeGrid.RestoreShape(this, dataGridDefault1);
            ShapeGrid.RestoreShape(this, dataGridDefault2);
            ShapeGrid.RestoreShape(this, gPortador);
            this.Icon = ResourcesUtils.TecnoAliance_ICO;
            this.pDados.set_FormatZero();
            cd_clifor.Text   = Cd_clifor;
            nm_clifor.Text   = Nm_clifor;
            cd_endereco.Text = Cd_endereco;
            object obj = new CamadaDados.Financeiro.Cadastros.TCD_CadEndereco().BuscarEscalar(
                new TpBusca[]
            {
                new TpBusca()
                {
                    vNM_Campo = "a.cd_clifor",
                    vOperador = "=",
                    vVL_Busca = "'" + cd_clifor.Text.Trim() + "'"
                },
                new TpBusca()
                {
                    vNM_Campo = "a.cd_endereco",
                    vOperador = "=",
                    vVL_Busca = "'" + cd_endereco.Text.Trim() + "'"
                }
            }, "a.ds_endereco");

            if (obj != null)
            {
                ds_endereco.Text = obj.ToString();
            }

            //Buscar listagem de convenios do cliente
            bsConvenio.DataSource    = lConv;
            bsVenda.DataSource       = lItemVenda;
            bsCombustivel.DataSource = lVenda;
            tot_outrasvenda.Value    = lItemVenda.Sum(p => p.Vl_subtotalliquido);
            total_receber.Value      = tot_liquido.Value + tot_outrasvenda.Value;
            //Buscar duplicatas vencidas
            obj = new CamadaDados.Financeiro.Duplicata.TCD_LanParcela().BuscarEscalar(
                new TpBusca[]
            {
                new TpBusca()
                {
                    vNM_Campo = "a.cd_empresa",
                    vOperador = "=",
                    vVL_Busca = "'" + lConv[0].Cd_empresa.Trim() + "'"
                },
                new TpBusca()
                {
                    vNM_Campo = "a.cd_clifor",
                    vOperador = "=",
                    vVL_Busca = "'" + cd_clifor.Text.Trim() + "'"
                },
                new TpBusca()
                {
                    vNM_Campo = "a.tp_mov",
                    vOperador = "=",
                    vVL_Busca = "'R'"
                },
                new TpBusca()
                {
                    vNM_Campo = "isnull(dup.st_registro, 'A')",
                    vOperador = "<>",
                    vVL_Busca = "'C'"
                },
                new TpBusca()
                {
                    vNM_Campo = "CONVERT(datetime, floor(convert(decimal(30,10), DATEADD(day, isnull(c.diascarenciadebvencto, 0), a.DT_Vencto))))",
                    vOperador = "<",
                    vVL_Busca = "convert(datetime, floor(convert(decimal(30,10), getdate())))"
                }
            }, "isnull(sum(a.Vl_Atual), 0)");
            if (obj != null)
            {
                vl_dupvencidas.Value = decimal.Parse(obj.ToString());
            }
            if ((!string.IsNullOrEmpty(this.pplaca)) && (this.pplaca.Trim() != "-"))
            {
                placa.Text       = this.pplaca;
                placa.Enabled    = !this.St_placacadastrada;
                bb_placa.Enabled = !this.St_placacadastrada;
            }
        }
Ejemplo n.º 15
0
        private void bbBuscar_Click(object sender, EventArgs e)
        {
            if (bsDespesas.Current != null)
            {
                if (panelDados2.validarCampoObrigatorio())
                {
                    if (tp_pagamento.SelectedIndex.Equals(0) && string.IsNullOrWhiteSpace(cd_fornecedor.Text))
                    {
                        MessageBox.Show("Obrigatório informar fornecedor para tipo de pagamento selecionado.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        cd_fornecedor.Focus();
                        return;
                    }
                    else if (tp_pagamento.SelectedIndex.Equals(1) && string.IsNullOrWhiteSpace(cd_funcionario.Text))
                    {
                        MessageBox.Show("Obrigatório informar funcionário para tipo de pagamento selecionado.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        cd_funcionario.Focus();
                        return;
                    }
                    (bsDespesas.Current as CamadaDados.Empreendimento.TRegistro_ExecDespesas).Cd_empresa      = vCd_Empresa;
                    (bsDespesas.Current as CamadaDados.Empreendimento.TRegistro_ExecDespesas).Id_orcamentostr = vId_Orcamento;
                    (bsDespesas.Current as CamadaDados.Empreendimento.TRegistro_ExecDespesas).Nr_versaostr    = vNr_Versao;

                    //Buscar config abast
                    CamadaDados.Empreendimento.Cadastro.TList_CadCFGEmpreendimento lCfg =
                        CamadaNegocio.Empreendimento.Cadastro.TCN_CadCFGEmpreendimento.Busca((bsDespesas.Current as CamadaDados.Empreendimento.TRegistro_ExecDespesas).Cd_empresa,
                                                                                             string.Empty,
                                                                                             null);

                    if (lCfg.Count > 0)
                    {
                        if (string.IsNullOrEmpty(lCfg[0].tp_dup))
                        {
                            MessageBox.Show("Não existe Tp.duplicata na CFG.empreendimento cadastrada!", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            return;
                        }
                    }
                    else
                    {
                        MessageBox.Show("Não existe CFG.empreendimento cadastrado para a empresa informada!", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        return;
                    }

                    //Despesa de funcionário com abatimento de adiantamento
                    if (tp_pagamento.SelectedIndex.Equals(1))
                    {
                        //Buscar conf. adiantamento
                        CamadaDados.Financeiro.Cadastros.TList_ConfigAdto lCnfAdto = CamadaNegocio.Financeiro.Cadastros.TCN_CadConfigAdto.Buscar(vCd_Empresa, string.Empty, string.Empty, string.Empty, string.Empty, 0, string.Empty, null);
                        if (lCnfAdto.Count.Equals(0))
                        {
                            MessageBox.Show("Não existe CFG.adiantamento cadastrado para a empresa informada!", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); return;
                        }

                        CamadaDados.Financeiro.Duplicata.TRegistro_LanDuplicata rDup = new CamadaDados.Financeiro.Duplicata.TRegistro_LanDuplicata();
                        rDup.Cd_empresa = vCd_Empresa;
                        rDup.Cd_clifor  = cd_funcionario.Text;

                        object lEndClifor = new CamadaDados.Financeiro.Cadastros.TCD_CadEndereco().BuscarEscalar(new Utils.TpBusca[] { new Utils.TpBusca()
                                                                                                                                       {
                                                                                                                                           vNM_Campo = "a.cd_clifor", vOperador = "=", vVL_Busca = "'" + rDup.Cd_clifor.Trim() + "'"
                                                                                                                                       } }, "a.cd_endereco");
                        if (!lEndClifor.Equals(null))
                        {
                            rDup.Cd_endereco = lEndClifor.ToString().Trim();
                        }

                        rDup.Tp_docto     = 2; //Duplicata
                        rDup.Tp_duplicata = "01";
                        rDup.Tp_mov       = lCnfAdto[0].Tp_mov_ADTO_C;
                        rDup.Cd_historico = rDup.Cd_historico_Dup = vCd_Historico = lCnfAdto[0].Cd_historico_ADTO_C;
                        rDup.Cd_portador  = lCnfAdto[0].CD_Portador;
                        rDup.Dt_emissao   = (bsDespesas.Current as CamadaDados.Empreendimento.TRegistro_ExecDespesas).Dt_execucao;
                        rDup.Vl_documento = (bsDespesas.Current as CamadaDados.Empreendimento.TRegistro_ExecDespesas).vl_executado;
                        rDup.Nr_docto     = (bsDespesas.Current as CamadaDados.Empreendimento.TRegistro_ExecDespesas).Nr_docto;
                        DataTable rCond = new CamadaDados.Financeiro.Cadastros.TCD_CadCondPgto().Buscar(null, 1);
                        rDup.Cd_condpgto = rCond.Rows[0].ItemArray[0].ToString();
                        rDup.Cd_moeda    = rCond.Rows[0].ItemArray[5].ToString();
                        rDup.Cd_juro     = rCond.Rows[0].ItemArray[9].ToString();
                        rDup.Qt_parcelas = 0;
                        DataTable cd_contager = new CamadaDados.Financeiro.Cadastros.TCD_CadContaGer().Buscar(null, 1);
                        if (cd_contager != null)
                        {
                            rDup.Cd_contager = cd_contager.Rows[0].ItemArray[0].ToString();
                        }
                        rDup.Parcelas.Add(new CamadaDados.Financeiro.Duplicata.TRegistro_LanParcela()
                        {
                            Vl_parcela = rDup.Vl_documento, Dt_vencto = rDup.Dt_emissao, Cd_parcela = 1
                        });
                        rDup.lCred.AddRange(CamadaNegocio.Financeiro.Adiantamento.TCN_LanAdiantamento.Buscar(string.Empty,
                                                                                                             rDup.Cd_empresa,
                                                                                                             rDup.Cd_clifor,
                                                                                                             string.Empty,
                                                                                                             "'C'",
                                                                                                             string.Empty,
                                                                                                             decimal.Zero,
                                                                                                             string.Empty,
                                                                                                             string.Empty,
                                                                                                             decimal.Zero,
                                                                                                             decimal.Zero,
                                                                                                             false,
                                                                                                             false,
                                                                                                             true,
                                                                                                             string.Empty,
                                                                                                             false,
                                                                                                             false,
                                                                                                             string.Empty,
                                                                                                             string.Empty,
                                                                                                             0,
                                                                                                             string.Empty,
                                                                                                             null));
                        if (rDup.lCred.Count.Equals(0))
                        {
                            MessageBox.Show("Funcionário não possui adiantamento quitado para efetuar o débito de saldo.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); return;
                        }

                        //Validar saldo a devolver do funcionário
                        rDup.lCred.ForEach(p =>
                        {
                            if (rDup.Vl_documento <= p.Vl_total_devolver)
                            {
                                rDup.cVl_adiantamento = rDup.Vl_documento;
                            }
                        });
                        if (rDup.cVl_adiantamento.Equals(0))
                        {
                            MessageBox.Show("Crédito do funcionário é menor do que o valor da despesa."); return;
                        }

                        (bsDespesas.Current as CamadaDados.Empreendimento.TRegistro_ExecDespesas).rDuplicata = rDup;
                    }
                    else
                    {
                        //Procedimento para despesa da empresa
                        using (Financeiro.TFLanDuplicata fDup = new Financeiro.TFLanDuplicata())
                        {
                            fDup.vCd_empresa = vCd_Empresa;
                            fDup.vNm_empresa = vNm_empresa;
                            fDup.vCd_clifor  = tp_pagamento.SelectedIndex.Equals(1) ? cd_funcionario.Text : cd_fornecedor.Text;
                            fDup.vNm_clifor  = tp_pagamento.SelectedIndex.Equals(1) ? nm_funcionario.Text : nm_fornecedor.Text;
                            //Buscar endereco
                            CamadaDados.Financeiro.Cadastros.TList_CadEndereco lEnd =
                                CamadaNegocio.Financeiro.Cadastros.TCN_CadEndereco.Buscar(fDup.vCd_clifor,
                                                                                          string.Empty,
                                                                                          string.Empty,
                                                                                          string.Empty,
                                                                                          string.Empty,
                                                                                          string.Empty,
                                                                                          string.Empty,
                                                                                          string.Empty,
                                                                                          string.Empty,
                                                                                          string.Empty,
                                                                                          string.Empty,
                                                                                          string.Empty,
                                                                                          string.Empty,
                                                                                          string.Empty,
                                                                                          1,
                                                                                          null);
                            if (lEnd.Count > 0)
                            {
                                fDup.vCd_endereco = lEnd[0].Cd_endereco;
                                fDup.vDs_endereco = lEnd[0].Ds_endereco;
                            }
                            if (lCfg.Count > 0)
                            {
                                if (string.IsNullOrEmpty(lCfg[0].tp_dup))
                                {
                                    MessageBox.Show("Não existe Tp.duplicata na CFG.empreendimento cadastrada!", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                    return;
                                }
                                fDup.vTp_docto         = lCfg[0].tp_docto;
                                fDup.vDs_tpdocto       = lCfg[0].ds_docto;
                                fDup.vTp_duplicata     = string.Empty;
                                fDup.vDs_tpduplicata   = string.Empty;
                                fDup.vTp_mov           = "P";
                                fDup.vDt_emissao       = (bsDespesas.Current as CamadaDados.Empreendimento.TRegistro_ExecDespesas).Dt_execucaostr;
                                fDup.vVl_documento     = (bsDespesas.Current as CamadaDados.Empreendimento.TRegistro_ExecDespesas).vl_executado;
                                fDup.vNr_docto         = (bsDespesas.Current as CamadaDados.Empreendimento.TRegistro_ExecDespesas).Nr_docto;
                                fDup.St_bloquearccusto = true;
                                if (fDup.ShowDialog() == DialogResult.OK)
                                {
                                    if (fDup.dsDuplicata.Count > 0)
                                    {
                                        (bsDespesas.Current as CamadaDados.Empreendimento.TRegistro_ExecDespesas).rDuplicata = fDup.dsDuplicata.Current as CamadaDados.Financeiro.Duplicata.TRegistro_LanDuplicata;
                                    }

                                    vCd_Historico = fDup.vCd_historico;
                                }
                            }
                            else
                            {
                                MessageBox.Show("Não existe configuração frota para lançar duplicata!", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                return;
                            }
                        }
                    }
                    if (CamadaNegocio.ConfigGer.TCN_CadParamGer.BuscaVL_Bool("CRESULTADO_EMPRESA",
                                                                             vCd_Empresa,
                                                                             null).Trim().ToUpper().Equals("S"))
                    {
                        //Verificar se historico possui centro resultado cadastrado
                        object obj = new CamadaDados.Financeiro.Cadastros.TCD_CadHistorico().BuscarEscalar(
                            new Utils.TpBusca[]
                        {
                            new Utils.TpBusca()
                            {
                                vNM_Campo = "a.cd_historico",
                                vOperador = "=",
                                vVL_Busca = "'" + vCd_Historico.Trim() + "'"
                            }
                        }, "a.cd_centroresult");
                        if (obj == null ? false : !string.IsNullOrEmpty(obj.ToString()))
                        {
                            (bsDespesas.Current as CamadaDados.Empreendimento.TRegistro_ExecDespesas).lCCusto.Add(
                                new CamadaDados.Financeiro.CCustoLan.TRegistro_LanCCustoLancto()
                            {
                                Cd_empresa      = vCd_Empresa,
                                Cd_centroresult = obj.ToString(),
                                Vl_lancto       = (bsDespesas.Current as CamadaDados.Empreendimento.TRegistro_ExecDespesas).vl_executado,
                                Dt_lancto       = (bsDespesas.Current as CamadaDados.Empreendimento.TRegistro_ExecDespesas).Dt_execucao,
                                Tp_registro     = "A"
                            });
                        }
                        else
                        {
                            using (Financeiro.TFRateioCResultado fRateio = new Financeiro.TFRateioCResultado())
                            {
                                fRateio.vVl_Documento = (bsDespesas.Current as CamadaDados.Empreendimento.TRegistro_ExecDespesas).vl_executado;
                                fRateio.Tp_mov        = "P";
                                fRateio.Dt_movimento  = (bsDespesas.Current as CamadaDados.Empreendimento.TRegistro_ExecDespesas).Dt_execucao;
                                if (fRateio.ShowDialog() == DialogResult.OK)
                                {
                                    (bsDespesas.Current as CamadaDados.Empreendimento.TRegistro_ExecDespesas).lCCusto = fRateio.lCResultado;
                                }
                                else
                                {
                                    return;
                                }
                            }
                        }
                    }
                    try
                    {
                        CamadaNegocio.Empreendimento.TCN_ExecDespesas.Gravar(bsDespesas.Current as CamadaDados.Empreendimento.TRegistro_ExecDespesas, null);
                        MessageBox.Show("Despesa gravada com sucesso.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        this.DialogResult = DialogResult.OK;
                    }
                    catch (Exception ex)
                    { MessageBox.Show(ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); }
                }
            }
        }
Ejemplo n.º 16
0
        private void bsFichaTec_PositionChanged(object sender, EventArgs e)
        {
            if (bsImpostos.Count <= 0)
            {
                CamadaDados.Financeiro.Cadastros.TRegistro_CadClifor clifor = CamadaNegocio.Financeiro.Cadastros.TCN_CadClifor.Busca_Clifor_Codigo((bsOrcamento.Current as TRegistro_Orcamento).Cd_clifor, null);

                object cd_cidade = new CamadaDados.Financeiro.Cadastros.TCD_CadEndereco().BuscarEscalar(
                    new TpBusca[]
                {
                    new TpBusca()
                    {
                        vNM_Campo = "a.cd_clifor",
                        vOperador = "=",
                        vVL_Busca = (bsOrcamento.Current as TRegistro_Orcamento).Cd_clifor
                    },
                    new TpBusca()
                    {
                        vNM_Campo = "a.cd_endereco",
                        vOperador = "=",
                        vVL_Busca = (bsOrcamento.Current as TRegistro_Orcamento).Cd_endereco
                    }
                }, "a.cd_cidade");

                object uf_clifor = new CamadaDados.Financeiro.Cadastros.TCD_CadCidade().BuscarEscalar(
                    new TpBusca[] {
                    new TpBusca()
                    {
                        vNM_Campo = "a.cd_cidade",
                        vOperador = "=",
                        vVL_Busca = cd_cidade.ToString()
                    }
                }, "a.cd_uf");

                object uf_empresa = new CamadaDados.Diversos.TCD_CadEmpresa().BuscarEscalar(
                    new TpBusca[]
                {
                    new TpBusca()
                    {
                        vNM_Campo = "a.cd_empresa",
                        vOperador = "=",
                        vVL_Busca = (bsOrcamento.Current as TRegistro_Orcamento).Cd_empresa
                    }
                }, "c.cd_uf");

                CamadaDados.Estoque.Cadastros.TRegistro_CadProduto prod = CamadaNegocio.Estoque.Cadastros.TCN_CadProduto.Busca_Produto_Codigo((bsFichaTec.Current as TRegistro_FichaTec).Cd_produto, null);
                string vObsFiscal = string.Empty;

                (bsFichaTec.Current as TRegistro_FichaTec).lImpostos = CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento_Item.procuraImpostosPorUf((bsOrcamento.Current as TRegistro_Orcamento).Cd_empresa,
                                                                                                                                                         uf_empresa.ToString(),
                                                                                                                                                         uf_clifor.ToString(),
                                                                                                                                                         (bsCFGPed.Current as CamadaDados.Faturamento.Cadastros.TRegistro_CadCFGPedidoFiscal).Cd_movtostring,
                                                                                                                                                         (bsCFGPed.Current as CamadaDados.Faturamento.Cadastros.TRegistro_CadCFGPedidoFiscal).Tp_movimento,
                                                                                                                                                         clifor.Cd_condfiscal_clifor,
                                                                                                                                                         prod.CD_CondFiscal_Produto,
                                                                                                                                                         decimal.Zero,
                                                                                                                                                         (bsFichaTec.Current as TRegistro_FichaTec).Quantidade,
                                                                                                                                                         ref vObsFiscal,
                                                                                                                                                         dt_emissao.Data,
                                                                                                                                                         (bsFichaTec.Current as TRegistro_FichaTec).Cd_produto,
                                                                                                                                                         "P",
                                                                                                                                                         (bsCFGPed.Current as CamadaDados.Faturamento.Cadastros.TRegistro_CadCFGPedidoFiscal).Nr_serie,
                                                                                                                                                         null);

                (bsFichaTec.Current as TRegistro_FichaTec).lImpostos.Concat(
                    CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento_Item.procuraCondicaoFiscalImpostos(clifor.Cd_condfiscal_clifor,
                                                                                                               prod.CD_CondFiscal_Produto,
                                                                                                               (bsCFGPed.Current as CamadaDados.Faturamento.Cadastros.TRegistro_CadCFGPedidoFiscal).Cd_movtostring,
                                                                                                               (bsCFGPed.Current as CamadaDados.Faturamento.Cadastros.TRegistro_CadCFGPedidoFiscal).Tp_movimento,
                                                                                                               clifor.Tp_pessoa,
                                                                                                               (bsOrcamento.Current as TRegistro_Orcamento).Cd_empresa,
                                                                                                               (bsCFGPed.Current as CamadaDados.Faturamento.Cadastros.TRegistro_CadCFGPedidoFiscal).Cfg_pedido,
                                                                                                               clifor.Cd_clifor,
                                                                                                               prod.CD_Unidade,
                                                                                                               dt_emissao.Data,
                                                                                                               (bsFichaTec.Current as TRegistro_FichaTec).Quantidade,
                                                                                                               decimal.Zero,
                                                                                                               "P",
                                                                                                               (bsOrcamento.Current as TRegistro_Orcamento).Cd_cidadeemp,
                                                                                                               null));
            }
            (bsFichaTec.Current as TRegistro_FichaTec).lImpostos.ForEach(p =>
            {
                p.Vl_basecalc = (bsFichaTec.Current as TRegistro_FichaTec).Vl_subtotal;
                CamadaNegocio.Faturamento.NotaFiscal.TCN_ImpostosNF.CalcValorImposto(p, p.Vl_basecalc, false);
            });
            bsFichaTec.ResetCurrentItem();
        }
Ejemplo n.º 17
0
 public static CamadaDados.Faturamento.Pedido.TRegistro_Pedido ProcessarPedido(List <CamadaDados.Faturamento.CompraAvulsa.TRegistro_CompraAvulsa> lCompra,
                                                                               string Cd_empresa,
                                                                               string Cd_clifor)
 {
     if ((lCompra != null) &&
         (!string.IsNullOrEmpty(Cd_empresa)) &&
         (!string.IsNullOrEmpty(Cd_clifor)))
     {
         //Buscar moeda padrao
         string moeda = CamadaNegocio.ConfigGer.TCN_CadParamGer.BuscaVL_String_Empresa("CD_MOEDA_PADRAO", Cd_empresa);
         if (string.IsNullOrEmpty(moeda))
         {
             throw new Exception("Não existe moeda padrão configurada para a empresa " + Cd_empresa);
         }
         //Buscar Endereco clifor
         object obj_end = new CamadaDados.Financeiro.Cadastros.TCD_CadEndereco().BuscarEscalar(
             new Utils.TpBusca[]
         {
             new Utils.TpBusca()
             {
                 vNM_Campo = "a.cd_clifor",
                 vOperador = "=",
                 vVL_Busca = "'" + Cd_clifor.Trim() + "'"
             }
         }, "a.cd_endereco");
         if (obj_end == null)
         {
             throw new Exception("Cliente " + Cd_clifor + " não possui endereço cadastrado.");
         }
         //Buscar config do romaneio de compra
         CamadaDados.Faturamento.Cadastros.TList_CfgCompraAvulsa lCfg =
             CamadaNegocio.Faturamento.Cadastros.TCN_CfgCompraAvulsa.Buscar(Cd_empresa, null);
         if (lCfg.Count < 1)
         {
             throw new Exception("Não existe configuração romaneio de compra para a empresa " + Cd_empresa);
         }
         //Criar objeto pedido
         CamadaDados.Faturamento.Pedido.TRegistro_Pedido rPed = new CamadaDados.Faturamento.Pedido.TRegistro_Pedido();
         rPed.CD_Empresa   = Cd_empresa;
         rPed.CD_Clifor    = Cd_clifor;
         rPed.CD_Endereco  = obj_end.ToString();
         rPed.Cd_moeda     = moeda;
         rPed.CFG_Pedido   = lCfg[0].Cfg_pedido;
         rPed.DT_Pedido    = CamadaDados.UtilData.Data_Servidor();
         rPed.TP_Movimento = "E"; //Pedido de saida
         rPed.ST_Pedido    = "F"; //Pedido fechado
         rPed.ST_Registro  = "F"; //Pedido fechado
         //Montar itens do pedido
         lCompra.ForEach(p =>
                         //Buscar itens da compra
                         CamadaNegocio.Faturamento.CompraAvulsa.TCN_Compra_Itens.Buscar(p.Cd_empresa,
                                                                                        p.Id_comprastr,
                                                                                        null).ForEach(v =>
         {
             //Verificar se existe item no pedido
             if (rPed.Pedido_Itens.Exists(x => x.Cd_produto.Trim().Equals(v.Cd_produto.Trim())))
             {
                 rPed.Pedido_Itens.Find(x => x.Cd_produto.Trim().Equals(v.Cd_produto.Trim())).Quantidade   += v.Quantidade;
                 rPed.Pedido_Itens.Find(x => x.Cd_produto.Trim().Equals(v.Cd_produto.Trim())).Vl_subtotal  += v.Vl_subtotal;
                 rPed.Pedido_Itens.Find(x => x.Cd_produto.Trim().Equals(v.Cd_produto.Trim())).Vl_descCupom += v.Vl_desconto;
                 rPed.Pedido_Itens.Find(x => x.Cd_produto.Trim().Equals(v.Cd_produto.Trim())).lItensCompra.Add(v);
             }
             else
             {
                 rPed.Pedido_Itens.Add(new CamadaDados.Faturamento.Pedido.TRegistro_LanPedido_Item()
                 {
                     Cd_Empresa       = v.Cd_empresa,
                     Cd_local         = v.Cd_local,
                     Cd_produto       = v.Cd_produto,
                     Ds_produto       = v.Ds_produto,
                     Cd_unidade_est   = v.Cd_unidade,
                     Cd_unidade_valor = string.Empty,
                     Quantidade       = v.Quantidade,
                     Vl_unitario      = v.Vl_unitario,
                     Vl_subtotal      = v.Vl_subtotal,
                     Vl_descCupom     = v.Vl_desconto,
                     lItensCompra     = new CamadaDados.Faturamento.CompraAvulsa.TList_Compra_Itens()
                     {
                         v
                     }
                 });
             }
         })
                         );
         rPed.Pedido_Itens.ForEach(p =>
         {
             p.Cd_unidade_valor = p.Cd_unidade_est;
             p.Vl_juro_fin      = p.Vl_juroCupom;
             p.Vl_desc          = p.Vl_descCupom;
         });
         return(rPed);
     }
     else
     {
         return(null);
     }
 }
Ejemplo n.º 18
0
        public static string AlterarUnidPagadora(TRegistro_CartaFrete val, TObjetoBanco banco)
        {
            bool           st_transacao = false;
            TCD_CartaFrete qtb_cf       = new TCD_CartaFrete();

            try
            {
                if (banco == null)
                {
                    st_transacao = qtb_cf.CriarBanco_Dados(true);
                }
                else
                {
                    qtb_cf.Banco_Dados = banco;
                }
                //Buscar Endereco CD.Unidade Pagadora
                object obj = new CamadaDados.Financeiro.Cadastros.TCD_CadEndereco(qtb_cf.Banco_Dados).BuscarEscalar(
                    new Utils.TpBusca[]
                {
                    new Utils.TpBusca()
                    {
                        vNM_Campo = "a.cd_clifor",
                        vOperador = "=",
                        vVL_Busca = "'" + val.Cd_unidpagadora.Trim() + "'"
                    }
                }, "a.cd_endereco");
                if (obj != null)
                {
                    val.Cd_endunidpagadora = obj.ToString();
                }
                //Verificar se DUPLICATA ESTA AGRUPADA
                if (new CamadaDados.Financeiro.Duplicata.TCD_LanParcela().BuscarEscalar(
                        new Utils.TpBusca[]
                {
                    new Utils.TpBusca()
                    {
                        vNM_Campo = "a.cd_empresa",
                        vOperador = "=",
                        vVL_Busca = "'" + val.Cd_empresa.Trim() + "'"
                    },
                    new Utils.TpBusca()
                    {
                        vNM_Campo = "a.nr_lancto",
                        vOperador = "=",
                        vVL_Busca = val.Nr_lanctostr
                    },
                    new Utils.TpBusca()
                    {
                        vNM_Campo = "a.vl_agrupado",
                        vOperador = ">",
                        vVL_Busca = "0"
                    }
                }, "1") != null)
                {
                    throw new Exception("Carta frete possui duplicata agrupada!");
                }
                //Verificar se PARCELA ESTA LIQUIDADA
                if (new CamadaDados.Financeiro.Duplicata.TCD_LanParcela().BuscarEscalar(
                        new Utils.TpBusca[]
                {
                    new Utils.TpBusca()
                    {
                        vNM_Campo = "a.cd_empresa",
                        vOperador = "=",
                        vVL_Busca = "'" + val.Cd_empresa.Trim() + "'"
                    },
                    new Utils.TpBusca()
                    {
                        vNM_Campo = "a.nr_lancto",
                        vOperador = "=",
                        vVL_Busca = val.Nr_lanctostr
                    },
                    new Utils.TpBusca()
                    {
                        vNM_Campo = "a.vl_liquidado",
                        vOperador = ">",
                        vVL_Busca = "0"
                    }
                }, "1") != null)
                {
                    throw new Exception("Carta frete possui parcela liquidada!");
                }
                qtb_cf.Gravar(val);
                //Buscar Duplicata
                qtb_cf.executarSql("update TB_FIN_Duplicata set CD_Clifor = '" + val.Cd_unidpagadora.Trim() + "', " +
                                   "CD_Endereco = '" + val.Cd_endunidpagadora.Trim() + "', DT_Alt = GETDATE() " +
                                   "where CD_Empresa = '" + val.Cd_empresa.Trim() + "' " +
                                   "and Nr_Lancto = " + val.Nr_lanctostr, null);
                if (st_transacao)
                {
                    qtb_cf.Banco_Dados.Commit_Tran();
                }
                return(val.Id_cartafretestr);
            }
            catch (Exception ex)
            {
                if (st_transacao)
                {
                    qtb_cf.Banco_Dados.RollBack_Tran();
                }
                throw new Exception("Erro gravar carta frete: " + ex.Message.Trim());
            }
            finally
            {
                if (st_transacao)
                {
                    qtb_cf.deletarBanco_Dados();
                }
            }
        }
Ejemplo n.º 19
0
 public static CamadaDados.Faturamento.Pedido.TRegistro_Pedido ProcessarPedido(List <CamadaDados.Faturamento.PDV.TRegistro_NFCe> lCupom,
                                                                               string Cd_empresa,
                                                                               string Cd_cliente)
 {
     if ((lCupom != null) &&
         (!string.IsNullOrEmpty(Cd_empresa)) &&
         (!string.IsNullOrEmpty(Cd_cliente)))
     {
         //Buscar moeda padrao
         string moeda = CamadaNegocio.ConfigGer.TCN_CadParamGer.BuscaVL_String_Empresa("CD_MOEDA_PADRAO", Cd_empresa);
         if (string.IsNullOrEmpty(moeda))
         {
             throw new Exception("Não existe moeda padrão configurada para a empresa " + Cd_empresa);
         }
         //Buscar Endereco clifor
         object obj_end = new CamadaDados.Financeiro.Cadastros.TCD_CadEndereco().BuscarEscalar(
             new Utils.TpBusca[]
         {
             new Utils.TpBusca()
             {
                 vNM_Campo = "a.cd_clifor",
                 vOperador = "=",
                 vVL_Busca = "'" + Cd_cliente.Trim() + "'"
             }
         }, "a.cd_endereco");
         if (obj_end == null)
         {
             throw new Exception("Cliente " + Cd_cliente + " não possui endereço cadastrado.");
         }
         //Buscar Configuracao cupom
         CamadaDados.Faturamento.Cadastros.TList_CFGCupomFiscal lCfgCupom =
             CamadaNegocio.Faturamento.Cadastros.TCN_CFGCupomFiscal.Buscar(Cd_empresa, null);
         if (lCfgCupom.Count < 1)
         {
             throw new Exception("Não existe configuração cupom fiscal para a empresa " + Cd_empresa);
         }
         if (string.IsNullOrEmpty(lCfgCupom[0].Cfg_pedidovinculado))
         {
             throw new Exception("Não existe tipo pedido vinculado configurado para a empresa " + Cd_empresa);
         }
         //Criar objeto pedido
         CamadaDados.Faturamento.Pedido.TRegistro_Pedido rPed = new CamadaDados.Faturamento.Pedido.TRegistro_Pedido();
         rPed.CD_Empresa   = Cd_empresa;
         rPed.CD_Clifor    = Cd_cliente;
         rPed.CD_Endereco  = obj_end.ToString();
         rPed.Cd_moeda     = moeda;
         rPed.CFG_Pedido   = lCfgCupom[0].Cfg_pedidovinculado;
         rPed.DT_Pedido    = CamadaDados.UtilData.Data_Servidor();
         rPed.TP_Movimento = "S"; //Pedido de saida
         rPed.ST_Pedido    = "F"; //Pedido fechado
         rPed.ST_Registro  = "F"; //Pedido fechado
         //Montar itens do pedido
         lCupom.ForEach(p =>
         {
             //Buscar itens do cupom
             p.lItem = CamadaNegocio.Faturamento.PDV.TCN_NFCe_Item.Buscar(p.Id_nfcestr, p.Cd_empresa, string.Empty, null);
             p.lItem.ForEach(v =>
             {
                 //Verificar se existe item no pedido
                 if (rPed.Pedido_Itens.Exists(x => x.Cd_produto.Trim().Equals(v.Cd_produto.Trim())) &&
                     (CamadaNegocio.ConfigGer.TCN_CadParamGer.BuscaVL_Bool("AGRUPAR_ITENS_IGUAIS_NF_DIRETA", p.Cd_empresa, null) == "S"))
                 {
                     rPed.Pedido_Itens.Find(x => x.Cd_produto.Trim().Equals(v.Cd_produto.Trim())).Quantidade   += v.Quantidade;
                     rPed.Pedido_Itens.Find(x => x.Cd_produto.Trim().Equals(v.Cd_produto.Trim())).Vl_subtotal  += v.Vl_subtotal;
                     rPed.Pedido_Itens.Find(x => x.Cd_produto.Trim().Equals(v.Cd_produto.Trim())).Vl_descCupom += v.Vl_desconto;
                     rPed.Pedido_Itens.Find(x => x.Cd_produto.Trim().Equals(v.Cd_produto.Trim())).Vl_juroCupom += v.Vl_acrescimo;
                     rPed.Pedido_Itens.Find(x => x.Cd_produto.Trim().Equals(v.Cd_produto.Trim())).Vl_unitario   =
                         Math.Round(rPed.Pedido_Itens.Find(x => x.Cd_produto.Trim().Equals(v.Cd_produto.Trim())).Vl_subtotal /
                                    rPed.Pedido_Itens.Find(x => x.Cd_produto.Trim().Equals(v.Cd_produto.Trim())).Quantidade, 7);
                 }
                 else
                 {
                     rPed.Pedido_Itens.Add(new CamadaDados.Faturamento.Pedido.TRegistro_LanPedido_Item()
                     {
                         Cd_Empresa            = p.Cd_empresa,
                         Cd_produto            = v.Cd_produto,
                         Ds_produto            = v.Ds_produto,
                         Cd_condfiscal_produto = v.Cd_condfiscal_produto,
                         Cd_unidade_est        = v.Cd_unidade,
                         Cd_unidade_valor      = string.Empty,
                         Quantidade            = v.Quantidade,
                         Vl_unitario           = v.Vl_unitario,
                         Vl_subtotal           = v.Vl_subtotal,
                         Vl_descCupom          = v.Vl_desconto,
                         Vl_juroCupom          = v.Vl_acrescimo
                     });
                 }
             });
         });
         rPed.Pedido_Itens.ForEach(p =>
         {
             p.Cd_unidade_valor = p.Cd_unidade_est;
             p.Vl_juro_fin      = p.Vl_juroCupom;
             p.Vl_desc          = p.Vl_descCupom;
         });
         return(rPed);
     }
     else
     {
         return(null);
     }
 }
Ejemplo n.º 20
0
        private void ImprimirReduzido(TRegistro_PreVenda val, string porta, string Tp_impressora)
        {
            //Buscar dados da empresa
            CamadaDados.Diversos.TList_CadEmpresa lEmpresa =
                CamadaNegocio.Diversos.TCN_CadEmpresa.Busca(val.Cd_empresa,
                                                            string.Empty,
                                                            string.Empty,
                                                            null);
            if (lEmpresa.Count < 1)
            {
                throw new Exception("Não foi possivel localizar empresa " + val.Cd_empresa);
            }
            if (!string.IsNullOrEmpty(Tp_impressora))
            {
                PDV.TGerenciarImpNaoFiscal.IniciarPorta(porta);
                try
                {
                    StringBuilder imp = new StringBuilder();
                    imp.AppendLine("  PRÉ-VENDA  N: " + val.Id_prevendastr + "  " + val.Dt_emissaostr);
                    imp.AppendLine(" =========================================");
                    imp.AppendLine("               DADOS EMPRESA              ");
                    imp.AppendLine(" =========================================");
                    imp.AppendLine("  " + lEmpresa[0].Nm_empresa.Trim().ToUpper());
                    imp.AppendLine("  " + lEmpresa[0].Ds_endereco.Trim().ToUpper() + "," + lEmpresa[0].rEndereco.Numero);
                    imp.AppendLine("  " + lEmpresa[0].rEndereco.Bairro.Trim().ToUpper());
                    imp.AppendLine(" -----------------------------------------");
                    imp.AppendLine("               DADOS CLIENTE              ");
                    imp.AppendLine(" -----------------------------------------");
                    imp.AppendLine("  " + val.Cd_clifor.Trim() + "-" + val.Nm_clifor.Trim().ToUpper());
                    //Buscar clifor config
                    object obj_clifor = new CamadaDados.Faturamento.Cadastros.TCD_CFGCupomFiscal().BuscarEscalar(
                        new TpBusca[]
                    {
                        new TpBusca()
                        {
                            vNM_Campo = "a.cd_empresa",
                            vOperador = "=",
                            vVL_Busca = "'" + val.Cd_empresa.Trim() + "'"
                        }
                    }, "a.cd_clifor");
                    if ((obj_clifor == null ? false : obj_clifor.ToString() != val.Cd_clifor) && (!string.IsNullOrEmpty(val.Cd_clifor)))
                    {
                        //Buscar dados cliente
                        CamadaDados.Financeiro.Cadastros.TRegistro_CadClifor rCliente =
                            CamadaNegocio.Financeiro.Cadastros.TCN_CadClifor.Busca_Clifor_Codigo(val.Cd_clifor, null);
                        if (!string.IsNullOrEmpty(rCliente.Nm_fantasia))
                        {
                            imp.Append("  " + rCliente.Nm_fantasia.Trim().ToUpper());
                        }
                        if (rCfg.St_impcpfcnpjbool)
                        {
                            if ((!string.IsNullOrEmpty(rCliente.Nr_cgc.SoNumero())) ||
                                (!string.IsNullOrEmpty(rCliente.Nr_cpf.SoNumero())))
                            {
                                imp.AppendLine("  CNPJ/CPF: " + (!string.IsNullOrEmpty(rCliente.Nr_cgc.SoNumero()) ? rCliente.Nr_cgc : rCliente.Nr_cpf));
                            }
                        }
                    }
                    imp.Append("  " + val.Ds_endereco.Trim().ToUpper());
                    if ((obj_clifor == null ? false : obj_clifor.ToString() != val.Cd_clifor) && (!string.IsNullOrEmpty(val.Cd_clifor)))
                    {
                        //Buscar Endereco do cliente
                        CamadaDados.Financeiro.Cadastros.TList_CadEndereco lEndereco =
                            new CamadaDados.Financeiro.Cadastros.TCD_CadEndereco().Select(
                                new TpBusca[]
                        {
                            new TpBusca()
                            {
                                vNM_Campo = "a.cd_clifor",
                                vOperador = "=",
                                vVL_Busca = "'" + val.Cd_clifor.Trim() + "'"
                            },
                            new TpBusca()
                            {
                                vNM_Campo = "a.cd_endereco",
                                vOperador = "=",
                                vVL_Busca = "'" + val.Cd_endereco.Trim() + "'"
                            }
                        }, 0, string.Empty);
                        if (lEndereco.Count > 0)
                        {
                            if (!string.IsNullOrEmpty(lEndereco[0].Numero))
                            {
                                imp.AppendLine(", " + lEndereco[0].Numero.Trim().ToUpper());
                            }
                            if (!string.IsNullOrEmpty(lEndereco[0].Bairro))
                            {
                                imp.AppendLine("  " + lEndereco[0].Bairro.Trim().ToUpper());
                            }
                            if (!string.IsNullOrEmpty(lEndereco[0].DS_Cidade))
                            {
                                imp.AppendLine("  " + lEndereco[0].DS_Cidade.Trim().ToUpper() + " - " + lEndereco[0].UF);
                            }
                            if (!string.IsNullOrEmpty(lEndereco[0].Fone.SoNumero()))
                            {
                                imp.AppendLine("  " + lEndereco[0].Fone.Trim().ToUpper() +
                                               (!string.IsNullOrEmpty(lEndereco[0].Celular.SoNumero()) ? "/" + lEndereco[0].Celular.Trim().ToUpper() : string.Empty));
                            }
                            if (!string.IsNullOrEmpty(lEndereco[0].Cep.SoNumero()))
                            {
                                imp.AppendLine("  CEP: " + lEndereco[0].Cep);
                            }
                            if (!string.IsNullOrEmpty(lEndereco[0].Proximo))
                            {
                                imp.AppendLine("  " + lEndereco[0].Proximo.Trim().ToUpper());
                            }
                        }
                    }
                    else
                    {
                        imp.AppendLine();
                        imp.AppendLine();
                    }
                    if (!string.IsNullOrEmpty(val.Nm_vendedor))
                    {
                        imp.AppendLine(("  VENDEDOR: " + val.Nm_vendedor.Trim()).FormatStringDireita(42, ' '));
                    }
                    imp.AppendLine(" -----------------------------------------");
                    imp.AppendLine("  PRODUTO  QTD      VAL.UNIT  SUBTOTAL");
                    imp.AppendLine(" -----------------------------------------");

                    val.lItens.ForEach(p =>
                    {
                        imp.AppendLine("  " + (p.Cd_produto.Trim() + "-" + p.Ds_produto.Trim().ToUpper()));
                        imp.Append(p.Quantidade.ToString("N3", new System.Globalization.CultureInfo("en-US", true)).FormatStringEsquerda(13, ' ') + "x");
                        imp.Append(p.Vl_unitario.ToString("N2", new System.Globalization.CultureInfo("en-US", true)).FormatStringEsquerda(14, ' '));
                        imp.Append(p.Vl_subtotal.ToString("N2", new System.Globalization.CultureInfo("en-US", true)).FormatStringEsquerda(10, ' '));
                        imp.AppendLine();
                        if (p.Vl_desconto > decimal.Zero)
                        {
                            imp.AppendLine(" DESCONTO: " + p.Vl_desconto.ToString("N2", new System.Globalization.CultureInfo("en-US", true)));
                        }
                        if (p.Vl_acrescimo > decimal.Zero)
                        {
                            imp.AppendLine(" ACRESCIMO: " + p.Vl_acrescimo.ToString("N2", new System.Globalization.CultureInfo("en-US", true)));
                        }
                        if (p.Vl_juro_fin > decimal.Zero)
                        {
                            imp.AppendLine(" JURO FIN.: " + p.Vl_juro_fin.ToString("N2", new System.Globalization.CultureInfo("en-US", true)));
                        }
                    });

                    imp.Append(" -----------------------------------------------");
                    imp.Append("  ACRESCIMOS JUROS FIN.  FRETE DESCONTO  LIQUIDO");
                    imp.Append(val.lItens.Sum(p => p.Vl_acrescimo).ToString("N2", new System.Globalization.CultureInfo("en-US", true)).FormatStringEsquerda(12, ' '));
                    imp.Append(val.lItens.Sum(p => p.Vl_juro_fin).ToString("N2", new System.Globalization.CultureInfo("en-US", true)).FormatStringEsquerda(11, ' '));
                    imp.Append(val.lItens.Sum(p => p.Vl_frete).ToString("N2", new System.Globalization.CultureInfo("en-US", true)).FormatStringEsquerda(7, ' '));
                    imp.Append(val.lItens.Sum(p => p.Vl_desconto).ToString("N2", new System.Globalization.CultureInfo("en-US", true)).FormatStringEsquerda(9, ' '));
                    imp.AppendLine(val.lItens.Sum(p => p.Vl_liquido).ToString("N2", new System.Globalization.CultureInfo("en-US", true)).FormatStringEsquerda(9, ' '));
                    imp.AppendLine(" -------------------------------------------");
                    if (!string.IsNullOrEmpty(val.Cd_portador))
                    {
                        imp.AppendLine("  FORMA PGTO : " + val.Cd_portador.Trim() + "-" + val.Ds_portador.Trim());
                    }
                    //Buscar Parcelas
                    TList_PreVenda_DT_Vencto lParc =
                        CamadaNegocio.Faturamento.PDV.TCN_PreVenda_DT_Vencto.Buscar(val.Id_prevendastr,
                                                                                    val.Cd_empresa,
                                                                                    null);
                    if (lParc.Count > 0)
                    {
                        imp.AppendLine("  COND.PGTO  : " + val.Cd_condPgto.Trim() + "-" + val.Ds_condPgto.Trim());
                        imp.AppendLine("  VENCIMENTO          VALOR ");
                        lParc.OrderBy(p => p.Dt_vencto).ToList().ForEach(p =>
                                                                         imp.AppendLine("  " + p.Dt_vencto.ToString("dd/MM/yyyy").FormatStringDireita(20, ' ') + p.Vl_parcela.ToString("C2", new System.Globalization.CultureInfo("pt-BR"))));
                        imp.AppendLine();
                        imp.AppendLine();
                    }
                    imp.AppendLine();
                    imp.AppendLine();
                    imp.AppendLine(" -----------------------------------------");
                    imp.AppendLine("                Cliente               ");
                    imp.AppendLine();
                    imp.AppendLine();
                    //Imprimir observacao cupom
                    if (!string.IsNullOrEmpty(val.Ds_observacao))
                    {
                        string obs = val.Ds_observacao.Trim();
                        imp.AppendLine(" -----------------------------------------");
                        imp.AppendLine("              OBSERVAÇÕES                 ");
                        imp.AppendLine(" -----------------------------------------");
                        while (true)
                        {
                            if (obs.Length <= 40)
                            {
                                imp.AppendLine("  " + obs);
                                break;
                            }
                            else
                            {
                                imp.AppendLine("  " + obs.Substring(0, 40));
                                obs = obs.Remove(0, 40);
                            }
                        }
                    }
                    imp.AppendLine(" -----------------------------------------");
                    imp.AppendLine("      Este recibo nao tem valor Fiscal    ");
                    imp.AppendLine();
                    imp.AppendLine();
                    imp.AppendLine();
                    imp.AppendLine();
                    imp.AppendLine();

                    PDV.TGerenciarImpNaoFiscal.Texto(imp.ToString());
                    PDV.TGerenciarImpNaoFiscal.Guilhotina();
                }
                catch (Exception ex)
                { MessageBox.Show("Erro: " + ex.Message.Trim()); }
                finally
                { PDV.TGerenciarImpNaoFiscal.FecharPorta(); }
            }
            else
            {
                System.IO.FileInfo     f = null;
                System.IO.StreamWriter w = null;
                f = new System.IO.FileInfo(System.IO.Path.GetTempPath() + System.IO.Path.DirectorySeparatorChar + "Orcamento.txt");
                w = f.CreateText();
                try
                {
                    w.WriteLine("  PRÉ-VENDA  N: " + val.Id_prevendastr + "  " + val.Dt_emissaostr);
                    w.WriteLine(" =========================================");
                    w.WriteLine("               DADOS EMPRESA              ");
                    w.WriteLine(" =========================================");
                    w.WriteLine("  " + lEmpresa[0].Nm_empresa.Trim().ToUpper());
                    w.WriteLine("  " + lEmpresa[0].Ds_endereco.Trim().ToUpper() + "," + lEmpresa[0].rEndereco.Numero);
                    w.WriteLine("  " + lEmpresa[0].rEndereco.Bairro.Trim().ToUpper());
                    w.WriteLine(" -----------------------------------------");
                    w.WriteLine("               DADOS CLIENTE              ");
                    w.WriteLine(" -----------------------------------------");
                    w.WriteLine("  " + val.Cd_clifor.Trim() + "-" + val.Nm_clifor.Trim().ToUpper());
                    object obj_clifor = new CamadaDados.Faturamento.Cadastros.TCD_CFGCupomFiscal().BuscarEscalar(
                        new TpBusca[]
                    {
                        new TpBusca()
                        {
                            vNM_Campo = "a.cd_empresa",
                            vOperador = "=",
                            vVL_Busca = "'" + val.Cd_empresa.Trim() + "'"
                        }
                    }, "a.cd_clifor");
                    if ((obj_clifor == null ? false : obj_clifor.ToString() != val.Cd_clifor) && (!string.IsNullOrEmpty(val.Cd_clifor)))
                    {
                        //Buscar dados cliente
                        CamadaDados.Financeiro.Cadastros.TRegistro_CadClifor rCliente =
                            CamadaNegocio.Financeiro.Cadastros.TCN_CadClifor.Busca_Clifor_Codigo(val.Cd_clifor, null);
                        if (!string.IsNullOrEmpty(rCliente.Nm_fantasia))
                        {
                            w.WriteLine("  " + rCliente.Nm_fantasia.Trim().ToUpper());
                        }
                        if (rCfg.St_impcpfcnpjbool)
                        {
                            if ((!string.IsNullOrEmpty(rCliente.Nr_cgc.SoNumero())) ||
                                (!string.IsNullOrEmpty(rCliente.Nr_cpf.SoNumero())))
                            {
                                w.WriteLine("  CNPJ/CPF: " + (!string.IsNullOrEmpty(rCliente.Nr_cgc.SoNumero()) ? rCliente.Nr_cgc : rCliente.Nr_cpf));
                            }
                        }
                    }
                    w.Write("  " + val.Ds_endereco.Trim().ToUpper());
                    if ((obj_clifor == null ? false : obj_clifor.ToString() != val.Cd_clifor) && (!string.IsNullOrEmpty(val.Cd_clifor)))
                    {
                        //Buscar Endereco do cliente
                        CamadaDados.Financeiro.Cadastros.TList_CadEndereco lEndereco =
                            new CamadaDados.Financeiro.Cadastros.TCD_CadEndereco().Select(
                                new TpBusca[]
                        {
                            new TpBusca()
                            {
                                vNM_Campo = "a.cd_clifor",
                                vOperador = "=",
                                vVL_Busca = "'" + val.Cd_clifor.Trim() + "'"
                            },
                            new TpBusca()
                            {
                                vNM_Campo = "a.cd_endereco",
                                vOperador = "=",
                                vVL_Busca = "'" + val.Cd_endereco.Trim() + "'"
                            }
                        }, 0, string.Empty);
                        if (lEndereco.Count > 0)
                        {
                            if (!string.IsNullOrEmpty(lEndereco[0].Numero))
                            {
                                w.WriteLine(", " + lEndereco[0].Numero.Trim().ToUpper());
                            }
                            if (!string.IsNullOrEmpty(lEndereco[0].Bairro))
                            {
                                w.WriteLine("  " + lEndereco[0].Bairro.Trim().ToUpper());
                            }
                            if (!string.IsNullOrEmpty(lEndereco[0].DS_Cidade))
                            {
                                w.WriteLine("  " + lEndereco[0].DS_Cidade.Trim().ToUpper() + " - " + lEndereco[0].UF);
                            }
                            if (!string.IsNullOrEmpty(lEndereco[0].Fone.SoNumero()))
                            {
                                w.WriteLine("  " + lEndereco[0].Fone.Trim().ToUpper() +
                                            (!string.IsNullOrEmpty(lEndereco[0].Celular.SoNumero()) ? "/" + lEndereco[0].Celular.Trim().ToUpper() : string.Empty));
                            }
                            if (!string.IsNullOrEmpty(lEndereco[0].Cep.SoNumero()))
                            {
                                w.WriteLine("  CEP: " + lEndereco[0].Cep);
                            }
                            if (!string.IsNullOrEmpty(lEndereco[0].Proximo))
                            {
                                w.WriteLine("  " + lEndereco[0].Proximo.Trim().ToUpper());
                            }
                        }
                    }
                    else
                    {
                        w.WriteLine();
                        w.WriteLine();
                    }
                    if (!string.IsNullOrEmpty(val.Nm_vendedor))
                    {
                        w.WriteLine(("  VENDEDOR: " + val.Nm_vendedor.Trim()).FormatStringDireita(42, ' '));
                    }
                    w.WriteLine(" -----------------------------------------");
                    w.WriteLine("  PRODUTO  QTD      VAL.UNIT  SUBTOTAL");
                    w.WriteLine(" -----------------------------------------");

                    val.lItens.ForEach(p =>
                    {
                        w.WriteLine("  " + (p.Cd_produto.Trim() + "-" + p.Ds_produto.Trim().ToUpper()));
                        w.Write(p.Quantidade.ToString("N3", new System.Globalization.CultureInfo("en-US", true)).FormatStringEsquerda(13, ' ') + "x");
                        w.Write(p.Vl_unitario.ToString("N2", new System.Globalization.CultureInfo("en-US", true)).FormatStringEsquerda(14, ' '));
                        w.Write(p.Vl_subtotal.ToString("N2", new System.Globalization.CultureInfo("en-US", true)).FormatStringEsquerda(10, ' '));
                        w.WriteLine();
                        if (p.Vl_desconto > decimal.Zero)
                        {
                            w.WriteLine(" DESCONTO: " + p.Vl_desconto.ToString("N2", new System.Globalization.CultureInfo("en-US", true)));
                        }
                        if (p.Vl_acrescimo > decimal.Zero)
                        {
                            w.WriteLine(" ACRESCIMO: " + p.Vl_acrescimo.ToString("N2", new System.Globalization.CultureInfo("en-US", true)));
                        }
                        if (p.Vl_juro_fin > decimal.Zero)
                        {
                            w.WriteLine(" JURO FIN.: " + p.Vl_juro_fin.ToString("N2", new System.Globalization.CultureInfo("en-US", true)));
                        }
                    });

                    w.WriteLine(" -----------------------------------------");
                    w.WriteLine("  ACRESCIMOS JUROS FIN. DESCONTO  LIQUIDO ");
                    w.Write(val.lItens.Sum(p => p.Vl_acrescimo).ToString("N2", new System.Globalization.CultureInfo("en-US", true)).FormatStringEsquerda(12, ' '));
                    w.Write(val.lItens.Sum(p => p.Vl_juro_fin).ToString("N2", new System.Globalization.CultureInfo("en-US", true)).FormatStringEsquerda(11, ' '));
                    w.Write(val.lItens.Sum(p => p.Vl_desconto).ToString("N2", new System.Globalization.CultureInfo("en-US", true)).FormatStringEsquerda(9, ' '));
                    w.WriteLine(val.lItens.Sum(p => p.Vl_liquido).ToString("N2", new System.Globalization.CultureInfo("en-US", true)).FormatStringEsquerda(9, ' '));
                    w.WriteLine(" -----------------------------------------");
                    if (!string.IsNullOrEmpty(val.Cd_portador))
                    {
                        w.WriteLine("  FORMA PGTO : " + val.Cd_portador.Trim() + "-" + val.Ds_portador.Trim());
                    }
                    //Buscar Parcelas
                    TList_PreVenda_DT_Vencto lParc =
                        CamadaNegocio.Faturamento.PDV.TCN_PreVenda_DT_Vencto.Buscar(val.Id_prevendastr,
                                                                                    val.Cd_empresa,
                                                                                    null);
                    if (lParc.Count > 0)
                    {
                        w.WriteLine("  COND.PGTO  : " + val.Cd_condPgto.Trim() + "-" + val.Ds_condPgto.Trim());
                        w.WriteLine("  VENCIMENTO          VALOR ");
                        lParc.OrderBy(p => p.Dt_vencto).ToList().ForEach(p =>
                                                                         w.WriteLine("  " + p.Dt_vencto.ToString("dd/MM/yyyy").FormatStringDireita(20, ' ') + p.Vl_parcela.ToString("C2", new System.Globalization.CultureInfo("pt-BR"))));
                        w.WriteLine();
                        w.WriteLine();
                    }
                    w.WriteLine();
                    w.WriteLine();
                    w.WriteLine(" -----------------------------------------");
                    w.WriteLine("                Cliente               ");
                    w.WriteLine();
                    w.WriteLine();
                    //Imprimir observacao cupom
                    if (!string.IsNullOrEmpty(val.Ds_observacao))
                    {
                        string obs = val.Ds_observacao.Trim();
                        w.WriteLine("Observacoes".FormatStringDireita(42, '-'));
                        while (true)
                        {
                            if (obs.Length <= 40)
                            {
                                w.WriteLine("  " + obs);
                                break;
                            }
                            else
                            {
                                w.WriteLine("  " + obs.Substring(0, 40));
                                obs = obs.Remove(0, 40);
                            }
                        }
                    }
                    w.WriteLine(" -----------------------------------------");
                    w.WriteLine("      Este recibo nao tem valor Fiscal    ");

                    w.Write(Convert.ToChar(27));
                    w.Write(Convert.ToChar(109));
                    w.Flush();

                    decimal copias = CamadaNegocio.ConfigGer.TCN_CadParamGer.VlNumericoEmpresa("QTD_VIA_REC_ECF", val.Cd_empresa, null);
                    if (copias.Equals(decimal.Zero))
                    {
                        copias = 1;
                    }
                    for (int i = 0; i < copias; i++)
                    {
                        f.CopyTo(porta);
                    }
                }

                catch (Exception ex)
                { throw new Exception("Erro na impressao: " + ex.Message.Trim()); }
                finally
                {
                    w.Dispose();
                    f = null;
                }
            }
        }
Ejemplo n.º 21
0
        private void InserirDespesas()
        {
            using (TFDespesasViagem fDesp = new TFDespesasViagem())
            {
                if (fDesp.ShowDialog() == DialogResult.OK)
                {
                    if (fDesp.rDespesas != null)
                    {
                        if (fDesp.rDespesas.Tp_pagamento.Trim().ToUpper().Equals("1"))
                        {
                            using (TFLanDuplicata fDup = new TFLanDuplicata())
                            {
                                fDup.vCd_empresa = (bsViagem.Current as CamadaDados.Financeiro.Viagem.TRegistro_Viagem).Cd_empresa;
                                fDup.vNm_empresa = (bsViagem.Current as CamadaDados.Financeiro.Viagem.TRegistro_Viagem).Nm_empresa;
                                fDup.vCd_clifor  = fDesp.vCD_Clifor;
                                fDup.vNm_clifor  = fDesp.rDespesas.Nm_fornecedor;

                                //Buscar Endereço
                                CamadaDados.Financeiro.Cadastros.TList_CadEndereco lEnd =
                                    new CamadaDados.Financeiro.Cadastros.TCD_CadEndereco().Select(
                                        new Utils.TpBusca[]
                                {
                                    new Utils.TpBusca()
                                    {
                                        vNM_Campo = "a.cd_clifor",
                                        vOperador = "=",
                                        vVL_Busca = "'" + fDesp.vCD_Clifor.Trim() + "'"
                                    }
                                }, 1, string.Empty);
                                if (lEnd.Count > 0)
                                {
                                    fDup.vCd_endereco = lEnd[0].Cd_endereco;
                                    fDup.vDs_endereco = lEnd[0].Ds_endereco;
                                }
                                //fDup.vTp_docto = lCfg[0].Tp_doctostr;
                                //fDup.vDs_tpdocto = lCfg[0].Ds_tpdocto;
                                //fDup.vTp_duplicata = lCfg[0].Tp_duplicata;
                                //fDup.vDs_tpduplicata = lCfg[0].Ds_tpduplicata;
                                fDup.vTp_mov = "P";
                                //fDup.vCd_historico = lCfg[0].Cd_historico;
                                //fDup.vDs_historico = lCfg[0].Ds_historico;
                                fDup.vDt_emissao       = fDesp.rDespesas.Dt_despesastr;
                                fDup.vVl_documento     = fDesp.rDespesas.Vl_subtotal;
                                fDup.vNr_docto         = fDesp.rDespesas.Nr_notafiscal;
                                fDup.vSt_finPed        = true;
                                fDup.St_bloquearccusto = true;//Centro Resultado sera lancado pela despesa da viagem
                                if (fDup.ShowDialog() == DialogResult.OK)
                                {
                                    if (fDup.dsDuplicata.Count > 0)
                                    {
                                        fDesp.rDespesas.rDup = fDup.dsDuplicata.Current as CamadaDados.Financeiro.Duplicata.TRegistro_LanDuplicata;
                                    }
                                    else
                                    {
                                        MessageBox.Show("Obrigatório gerar duplicata para incluir despesa!", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                        return;
                                    }
                                }
                                else
                                {
                                    MessageBox.Show("Obrigatório gerar duplicata para incluir despesa!", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                    return;
                                }
                            }
                        }
                        if (CamadaNegocio.ConfigGer.TCN_CadParamGer.BuscaVL_Bool("CRESULTADO_EMPRESA",
                                                                                 (bsViagem.Current as CamadaDados.Financeiro.Viagem.TRegistro_Viagem).Cd_empresa,
                                                                                 null).Trim().ToUpper().Equals("S"))
                        {
                            using (TFRateioCResultado fRateio = new TFRateioCResultado())
                            {
                                fRateio.vVl_Documento = fDesp.rDespesas.Vl_subtotal;
                                fRateio.Tp_mov        = "P";
                                fRateio.Dt_movimento  = fDesp.rDespesas.Dt_despesa;
                                fRateio.ShowDialog();
                                fDesp.rDespesas.lCCusto = fRateio.lCResultado;
                            }
                        }
                        (bsViagem.Current as CamadaDados.Financeiro.Viagem.TRegistro_Viagem).lDespesas.Add(fDesp.rDespesas);
                        bsViagem.ResetCurrentItem();
                    }
                }
            }
        }