Example #1
0
        private void PAF_Preenche_D()
        {
            #region D1

            var registroD1Rec = new ACBrPAFInterop.RegistroHD1Rec()
            {
                RAZAOSOCIAL = ToUTF8(PafD.RegistroD1.RazaoSocial),
                CNPJ        = ToUTF8(PafD.RegistroD1.CNPJ),
                UF          = ToUTF8(PafD.RegistroD1.UF),
                IE          = ToUTF8(PafD.RegistroD1.IE),
                IM          = ToUTF8(PafD.RegistroD1.IM)
            };

            #endregion D1

            #region D2

            var registrosD2Rec = (from x in PafD.RegistroD2
                                  select new ACBrPAFInterop.RegistroD2Rec
            {
                QTD_D3 = x.RegistroD3.Count,
                QTD_D4 = x.RegistroD4.Count,
                NUM_FAB = ToUTF8(x.NUM_FAB),
                MF_ADICIONAL = ToUTF8(x.MF_ADICIONAL),
                TIPO_ECF = ToUTF8(x.TIPO_ECF),
                MARCA_ECF = ToUTF8(x.MARCA_ECF),
                MODELO_ECF = ToUTF8(x.MODELO_ECF),
                COO = ToUTF8(x.COO),
                NUM_DAV = ToUTF8(x.NUM_DAV),
                DT_DAV = x.DT_DAV.ToOADate(),
                TIT_DAV = ToUTF8(x.TIT_DAV),
                VLT_DAV = Convert.ToDouble(x.VLT_DAV),
                COO_DFV = ToUTF8(x.COO_DFV),
                NUMERO_ECF = ToUTF8(x.NUMERO_ECF),
                NOME_CLIENTE = ToUTF8(x.NOME_CLIENTE),
                CPF_CNPJ = ToUTF8(x.CPF_CNPJ),
                RegistroValido = x.RegistroValido
            }).ToArray();

            #endregion

            #region D3

            var d3Count        = PafD.RegistroD2.Sum(x => x.RegistroD3.Count);
            var registrosD3Rec = new ACBrPAFInterop.RegistroD3Rec[0];
            if (d3Count > 0)
            {
                registrosD3Rec = (((from x in PafD.RegistroD2
                                    where x.RegistroD3.Any()
                                    select x.RegistroD3.AsEnumerable())
                                   .Aggregate((pafRegistroD3S, registroD3S) =>
                {
                    if (pafRegistroD3S != null && registroD3S != null)
                    {
                        return(pafRegistroD3S.Concat(registroD3S));
                    }

                    return(new List <ACBrPAFRegistroD3>().AsEnumerable());
                })).Select(s => new ACBrPAFInterop.RegistroD3Rec
                {
                    DT_INCLUSAO = s.DT_INCLUSAO.ToOADate(),
                    NUM_ITEM = s.NUM_ITEM,
                    COD_ITEM = ToUTF8(s.COD_ITEM),
                    DESC_ITEM = ToUTF8(s.DESC_ITEM),
                    QTDE_ITEM = Convert.ToDouble(s.QTDE_ITEM),
                    UNI_ITEM = ToUTF8(s.UNI_ITEM),
                    VL_UNIT = Convert.ToDouble(s.VL_UNIT),
                    VL_DESCTO = Convert.ToDouble(s.VL_DESCTO),
                    VL_ACRES = Convert.ToDouble(s.VL_ACRES),
                    VL_TOTAL = Convert.ToDouble(s.VL_TOTAL),
                    DEC_VL_UNIT = s.DEC_VL_UNIT,
                    DEC_QTDE_ITEM = s.DEC_QTDE_ITEM,
                    SIT_TRIB = ToUTF8(s.SIT_TRIB),
                    ALIQ = Convert.ToDouble(s.ALIQ),
                    IND_CANC = ToUTF8(s.IND_CANC),
                    RegistroValido = s.RegistroValido
                })).ToArray();
            }

            #endregion D3

            #region D4

            var d4Count        = PafD.RegistroD2.Sum(x => x.RegistroD4.Count);
            var registrosD4Rec = new ACBrPAFInterop.RegistroD4Rec[0];
            if (d4Count > 0)
            {
                registrosD4Rec = (from s in
                                  ((from x in PafD.RegistroD2 where x.RegistroD4.Any() select x.RegistroD4.AsEnumerable())
                                   .Where(i => i.Any()).Aggregate((i, j) => i.Concat(j)))
                                  select new ACBrPAFInterop.RegistroD4Rec
                {
                    NumeroDAV = s.NumeroDAV,
                    DataAlteracao = s.DataAlteracao.ToOADate(),
                    CodigoProdutoServico = s.CodigoProdutoServico,
                    Descricao = s.Descricao,
                    Quantidade = (double)s.Quantidade,
                    Unidade = s.Unidade,
                    ValorUnitario = (double)s.ValorUnitario,
                    DescontoSobreItem = (double)s.DescontoSobreItem,
                    AcrescimoSobreItem = (double)s.AcrescimoSobreItem,
                    ValorTotalLiquido = (double)s.ValorTotalLiquido,
                    SituacaoTributaria = s.SituacaoTributaria,
                    Aliquota = (double)s.Aliquota,
                    IndicadorCancelamento = s.IndicadorCancelamento,
                    CasasDecimaisQtd = s.CasasDecimaisQtd,
                    CasasDecimaisVlUn = s.CasasDecimaisVlUn,
                    TipoAlteracao = s.TipoAlteracao
                }).ToArray();
            }

            #endregion D4

            var ret = ACBrPAFInterop.PAF_Preenche_D(Handle, registroD1Rec, registrosD2Rec, PafD.RegistroD2.Count,
                                                    registrosD3Rec, registrosD4Rec, registrosD4Rec.Count());
            CheckResult(ret);
        }
Example #2
0
	    private void PAF_Preenche_D()
	    {
	        #region D1

	        var registroD1Rec = new ACBrPAFInterop.RegistroHD1Rec()
	        {
	            RAZAOSOCIAL = ToUTF8(PafD.RegistroD1.RazaoSocial),
	            CNPJ = ToUTF8(PafD.RegistroD1.CNPJ),
	            UF = ToUTF8(PafD.RegistroD1.UF),
	            IE = ToUTF8(PafD.RegistroD1.IE),
	            IM = ToUTF8(PafD.RegistroD1.IM)
	        };

	        #endregion D1

	        #region D2

	        var registrosD2Rec = (from x in PafD.RegistroD2
	            select new ACBrPAFInterop.RegistroD2Rec
	            {
	                QTD_D3 = x.RegistroD3.Count,
	                QTD_D4 = x.RegistroD4.Count,
	                NUM_FAB = ToUTF8(x.NUM_FAB),
	                MF_ADICIONAL = ToUTF8(x.MF_ADICIONAL),
	                TIPO_ECF = ToUTF8(x.TIPO_ECF),
	                MARCA_ECF = ToUTF8(x.MARCA_ECF),
	                MODELO_ECF = ToUTF8(x.MODELO_ECF),
	                COO = ToUTF8(x.COO),
	                NUM_DAV = ToUTF8(x.NUM_DAV),
	                DT_DAV = x.DT_DAV.ToOADate(),
	                TIT_DAV = ToUTF8(x.TIT_DAV),
	                VLT_DAV = Convert.ToDouble(x.VLT_DAV),
	                COO_DFV = ToUTF8(x.COO_DFV),
	                NUMERO_ECF = ToUTF8(x.NUMERO_ECF),
	                NOME_CLIENTE = ToUTF8(x.NOME_CLIENTE),
	                CPF_CNPJ = ToUTF8(x.CPF_CNPJ),
	                RegistroValido = x.RegistroValido
	            }).ToArray();

	        #endregion

	        #region D3

	        var d3Count = PafD.RegistroD2.Sum(x => x.RegistroD3.Count);
	        var registrosD3Rec = new ACBrPAFInterop.RegistroD3Rec[0];
	        if (d3Count > 0)
	        {
	            registrosD3Rec = (((from x in PafD.RegistroD2
	                where x.RegistroD3.Any()
	                select x.RegistroD3.AsEnumerable())
	                .Aggregate((pafRegistroD3S, registroD3S) =>
	                {
	                    if (pafRegistroD3S != null && registroD3S != null)
	                        return pafRegistroD3S.Concat(registroD3S);

	                    return new List<ACBrPAFRegistroD3>().AsEnumerable();
	                })).Select(s => new ACBrPAFInterop.RegistroD3Rec
	                {
	                    DT_INCLUSAO = s.DT_INCLUSAO.ToOADate(),
	                    NUM_ITEM = s.NUM_ITEM,
	                    COD_ITEM = ToUTF8(s.COD_ITEM),
	                    DESC_ITEM = ToUTF8(s.DESC_ITEM),
	                    QTDE_ITEM = Convert.ToDouble(s.QTDE_ITEM),
	                    UNI_ITEM = ToUTF8(s.UNI_ITEM),
	                    VL_UNIT = Convert.ToDouble(s.VL_UNIT),
	                    VL_DESCTO = Convert.ToDouble(s.VL_DESCTO),
	                    VL_ACRES = Convert.ToDouble(s.VL_ACRES),
	                    VL_TOTAL = Convert.ToDouble(s.VL_TOTAL),
	                    DEC_VL_UNIT = s.DEC_VL_UNIT,
	                    DEC_QTDE_ITEM = s.DEC_QTDE_ITEM,
	                    SIT_TRIB = ToUTF8(s.SIT_TRIB),
	                    ALIQ = Convert.ToDouble(s.ALIQ),
	                    IND_CANC = ToUTF8(s.IND_CANC),
	                    RegistroValido = s.RegistroValido
	                })).ToArray();
	        }

	        #endregion D3

	        #region D4

	        var d4Count = PafD.RegistroD2.Sum(x => x.RegistroD4.Count);
	        var registrosD4Rec = new ACBrPAFInterop.RegistroD4Rec[0];
	        if (d4Count > 0)
	        {
	            registrosD4Rec = (from s in
	                ((from x in PafD.RegistroD2 where x.RegistroD4.Any() select x.RegistroD4.AsEnumerable())
	                    .Where(i => i.Any()).Aggregate((i, j) => i.Concat(j)))
	                select new ACBrPAFInterop.RegistroD4Rec
	                {
	                    NumeroDAV = s.NumeroDAV,
	                    DataAlteracao = s.DataAlteracao.ToOADate(),
	                    CodigoProdutoServico = s.CodigoProdutoServico,
	                    Descricao = s.Descricao,
	                    Quantidade = (double) s.Quantidade,
	                    Unidade = s.Unidade,
	                    ValorUnitario = (double) s.ValorUnitario,
	                    DescontoSobreItem = (double) s.DescontoSobreItem,
	                    AcrescimoSobreItem = (double) s.AcrescimoSobreItem,
	                    ValorTotalLiquido = (double) s.ValorTotalLiquido,
	                    SituacaoTributaria = s.SituacaoTributaria,
	                    Aliquota = (double) s.Aliquota,
	                    IndicadorCancelamento = s.IndicadorCancelamento,
	                    CasasDecimaisQtd = s.CasasDecimaisQtd,
	                    CasasDecimaisVlUn = s.CasasDecimaisVlUn,
	                    TipoAlteracao = s.TipoAlteracao
	                }).ToArray();
	        }

	        #endregion D4			

	        var ret = ACBrPAFInterop.PAF_Preenche_D(Handle, registroD1Rec, registrosD2Rec, PafD.RegistroD2.Count,
	            registrosD3Rec, registrosD4Rec, registrosD4Rec.Count());
	        CheckResult(ret);
	    }