Ejemplo n.º 1
0
        public bool SaveFileTXT_RegistrosECF(string arquivo)
        {
            #region Preenche os registros

            PAF_Preenche_A();
            PAF_Preenche_B();
            PAF_Preenche_C();
            PAF_Preenche_D();
            PAF_Preenche_E();
            PAF_Preenche_H();
            PAF_Preenche_N();
            PAF_Preenche_P();
            PAF_Preenche_R();
            PAF_Preenche_T();
            PAF_Preenche_S();
            PAF_Preenche_U();

            #endregion

            var ret = ACBrPAFInterop.PAF_SaveFileTXT_RegistrosPAF(Handle, arquivo.ToUTF8());

            CheckResult(ret);
            LimparRegistros();
            return(Convert.ToBoolean(ret));
        }
Ejemplo n.º 2
0
        private void PAF_Preenche_P()
        {
            var registroP1Rec = new ACBrPAFInterop.RegistroHD1Rec
            {
                CNPJ        = PafP.RegistroP1.CNPJ,
                IE          = PafP.RegistroP1.IE,
                IM          = PafP.RegistroP1.IM,
                RAZAOSOCIAL = PafP.RegistroP1.RazaoSocial,
                UF          = PafP.RegistroP1.UF
            };

            var registrosP2Rec = (from x in PafP.RegistroP2
                                  select new ACBrPAFInterop.RegistroP2Rec
            {
                ALIQ = (double)x.ALIQ,
                COD_MERC_SERV = x.COD_MERC_SERV,
                DESC_MERC_SERV = x.DESC_MERC_SERV,
                IAT = x.IAT,
                IPPT = x.IPPT,
                RegistroValido = x.RegistroValido,
                ST = x.ST,
                UN_MED = x.UN_MED,
                VL_UNIT = (double)x.VL_UNIT
            }).ToArray();

            var ret = ACBrPAFInterop.PAF_Preenche_P(Handle, registroP1Rec, registrosP2Rec, registrosP2Rec.Count());

            CheckResult(ret);
        }
Ejemplo n.º 3
0
        private void PAF_Preenche_N()
        {
            int i;

            var registroN1Rec = new ACBrPAFInterop.RegistroHD1Rec();
            var registroN2Rec = new ACBrPAFInterop.RegistroN2Rec();
            var registroN3Rec = new ACBrPAFInterop.RegistroN3Rec[PafN.RegistroN3.Count];

            registroN1Rec.RAZAOSOCIAL = ToUTF8(PafN.RegistroN1.RazaoSocial);
            registroN1Rec.CNPJ        = ToUTF8(PafN.RegistroN1.CNPJ);
            registroN1Rec.UF          = ToUTF8(PafN.RegistroN1.UF);
            registroN1Rec.IE          = ToUTF8(PafN.RegistroN1.IE);
            registroN1Rec.IM          = ToUTF8(PafN.RegistroN1.IM);

            registroN2Rec.NOME   = ToUTF8(PafN.RegistroN2.NOME);
            registroN2Rec.LAUDO  = ToUTF8(PafN.RegistroN2.LAUDO);
            registroN2Rec.VERSAO = ToUTF8(PafN.RegistroN2.VERSAO);

            for (i = 0; i < PafN.RegistroN3.Count; i++)
            {
                registroN3Rec[i].NOME_ARQUIVO = ToUTF8(PafN.RegistroN3[i].NOME_ARQUIVO);
                registroN3Rec[i].MD5          = ToUTF8(PafN.RegistroN3[i].MD5);
            }

            var ret = ACBrPAFInterop.PAF_Preenche_N(Handle, registroN1Rec, registroN2Rec, registroN3Rec, PafN.RegistroN3.Count);

            CheckResult(ret);
        }
Ejemplo n.º 4
0
        private void PAF_Preenche_B()
        {
            #region B1
            var registroB1Rec = new ACBrPAFInterop.RegistroHD1Rec
            {
                RAZAOSOCIAL = ToUTF8(PafB.RegistroB1.RazaoSocial),
                CNPJ        = ToUTF8(PafB.RegistroB1.CNPJ),
                UF          = ToUTF8(PafB.RegistroB1.UF),
                IE          = ToUTF8(PafB.RegistroB1.IE),
                IM          = ToUTF8(PafB.RegistroB1.IM)
            };
            #endregion

            #region B2
            var registrosB2Rec = (from x in PafB.RegistroB2
                                  select new ACBrPAFInterop.RegistroB2Rec
            {
                BOMBA = ToUTF8(x.BOMBA),
                BICO = ToUTF8(x.BICO),
                DATA = x.DATA.ToOADate(),
                HORA = x.HORA.ToOADate(),
                MOTIVO = ToUTF8(x.MOTIVO),
                CNPJ_EMPRESA = ToUTF8(x.CNPJ_EMPRESA),
                CPF_TECNICO = ToUTF8(x.CPF_TECNICO),
                NRO_LACRE_ANTES = ToUTF8(x.NRO_LACRE_ANTES),
                NRO_LACRE_APOS = ToUTF8(x.NRO_LACRE_ANTES),
                ENCERRANTE_ANTES = Convert.ToDouble(x.ENCERRANTE_ANTES),
                ENCERRANTE_APOS = Convert.ToDouble(x.ENCERRANTE_APOS),
                RegistroValido = x.RegistroValido
            }).ToArray();
            #endregion

            var ret = ACBrPAFInterop.PAF_Preenche_B(Handle, registroB1Rec, registrosB2Rec, PafB.RegistroB2.Count);
            CheckResult(ret);
        }
Ejemplo n.º 5
0
        private void PAF_Preenche_T()
        {
            int i;
            var registroT1Rec = new ACBrPAFInterop.RegistroHD1Rec();
            var registroT2Rec = new ACBrPAFInterop.RegistroT2Rec[PafT.RegistroT2.Count];

            registroT1Rec.RAZAOSOCIAL = ToUTF8(PafT.RegistroT1.RazaoSocial);
            registroT1Rec.CNPJ        = ToUTF8(PafT.RegistroT1.CNPJ);
            registroT1Rec.UF          = ToUTF8(PafT.RegistroT1.UF);
            registroT1Rec.IE          = ToUTF8(PafT.RegistroT1.IE);
            registroT1Rec.IM          = ToUTF8(PafT.RegistroT1.IM);

            for (i = 0; i < PafT.RegistroT2.Count; i++)
            {
                registroT2Rec[i].DT_MOV         = PafT.RegistroT2[i].DT_MOV.ToOADate();
                registroT2Rec[i].TP_DOCTO       = ToUTF8(PafT.RegistroT2[i].TP_DOCTO);
                registroT2Rec[i].SERIE          = ToUTF8(PafT.RegistroT2[i].SERIE);
                registroT2Rec[i].NUM_BILH_I     = PafT.RegistroT2[i].NUM_BILH_I;
                registroT2Rec[i].NUM_BILH_F     = PafT.RegistroT2[i].NUM_BILH_F;
                registroT2Rec[i].NUM_ECF        = ToUTF8(PafT.RegistroT2[i].NUM_ECF);
                registroT2Rec[i].CRZ            = PafT.RegistroT2[i].CRZ;
                registroT2Rec[i].CFOP           = ToUTF8(PafT.RegistroT2[i].CFOP);
                registroT2Rec[i].VL_CONT        = PafT.RegistroT2[i].VL_CONT;
                registroT2Rec[i].VL_BASECALC    = PafT.RegistroT2[i].VL_BASECALC;
                registroT2Rec[i].ALIQ           = PafT.RegistroT2[i].ALIQ;
                registroT2Rec[i].VL_IMPOSTO     = PafT.RegistroT2[i].VL_IMPOSTO;
                registroT2Rec[i].VL_ISENTAS     = PafT.RegistroT2[i].VL_ISENTAS;
                registroT2Rec[i].VL_OUTRAS      = PafT.RegistroT2[i].VL_OUTRAS;
                registroT2Rec[i].RegistroValido = PafT.RegistroT2[i].RegistroValido;
            }

            var ret = ACBrPAFInterop.PAF_Preenche_T(Handle, registroT1Rec, registroT2Rec, PafT.RegistroT2.Count);

            CheckResult(ret);
        }
Ejemplo n.º 6
0
        public bool AssinarArquivoComEad(string arquivo)
        {
            var ret = ACBrPAFInterop.PAF_AssinarArquivoComEAD(this.Handle, arquivo);

            CheckResult(ret);

            return(Convert.ToBoolean(ret));
        }
Ejemplo n.º 7
0
        public bool SaveFileTXT_R(string arquivo)
        {
            PAF_Preenche_R();
            var ret = ACBrPAFInterop.PAF_SaveFileTXT_R(Handle, ToUTF8(arquivo));

            CheckResult(ret);
            PafR.LimparRegistros();
            return(Convert.ToBoolean(ret));
        }
Ejemplo n.º 8
0
        public bool SaveFileTXT_TITP(string arquivo)
        {
            PAF_Preenche_TITP();

            var ret = ACBrPAFInterop.PAF_SaveFileTXT_TITP(this.Handle, arquivo.ToUTF8());

            CheckResult(ret);
            PafTitp.LimparRegistros();

            return(Convert.ToBoolean(ret));
        }
Ejemplo n.º 9
0
        private void PAF_Preenche_E()
        {
            #region E1
            var registroE1Rec = new ACBrPAFInterop.RegistroHD2Rec
            {
                RAZAOSOCIAL      = ToUTF8(PafE.RegistroE1.RazaoSocial),
                CNPJ             = ToUTF8(PafE.RegistroE1.CNPJ),
                UF               = ToUTF8(PafE.RegistroE1.UF),
                IE               = ToUTF8(PafE.RegistroE1.IE),
                IM               = ToUTF8(PafE.RegistroE1.IM),
                TIPO_ECF         = ToUTF8(PafE.RegistroE1.TIPO_ECF),
                MARCA_ECF        = ToUTF8(PafE.RegistroE1.MARCA_ECF),
                MODELO_ECF       = ToUTF8(PafE.RegistroE1.MODELO_ECF),
                NUM_FAB          = ToUTF8(PafE.RegistroE1.NUM_FAB),
                MF_ADICIONAL     = ToUTF8(PafE.RegistroE1.MF_ADICIONAL),
                DT_EST           = PafE.RegistroE1.DT_EST.ToOADate(),
                RegistroValido   = PafE.RegistroE1.RegistroValido,
                InclusaoExclusao = PafE.RegistroE1.InclusaoExclusao
            };
            #endregion

            #region E2
            var registrosE2Rec = (from x in PafE.RegistroE2
                                  select new ACBrPAFInterop.RegistroE2Rec
            {
                COD_MERC = ToUTF8(x.COD_MERC),
                DESC_MERC = ToUTF8(x.DESC_MERC),
                UN_MED = ToUTF8(x.UN_MED),
                QTDE_EST = Convert.ToDouble(x.QTDE_EST),
                RegistroValido = x.RegistroValido,
            }).ToArray();
            #endregion

            #region E3
            var registroE3Rec = new ACBrPAFInterop.RegistroE3Rec
            {
                DataEstoque      = PafE.RegistroE3.DataEstoque.ToOADate(),
                MarcaECF         = PafE.RegistroE3.MarcaECF,
                MFAdicional      = PafE.RegistroE3.MFAdicional,
                ModeloECF        = PafE.RegistroE3.ModeloECF,
                NumeroFabricacao = PafE.RegistroE3.NumeroFabricacao,
                RegistroValido   = PafE.RegistroE3.RegistroValido,
                TipoECF          = PafE.RegistroE3.TipoECF,
            };
            #endregion

            var ret = ACBrPAFInterop.PAF_Preenche_E(Handle, registroE1Rec, registrosE2Rec, registroE3Rec, PafE.RegistroE2.Count);
            CheckResult(ret);
        }
Ejemplo n.º 10
0
        private void PAF_Preenche_S()
        {
            if (PafS.RegistroS2.Count == 0)
            {
                return;
            }

            var registrosS2Rec = new List <ACBrPAFInterop.RegistroS2Rec>();
            var registrosS3Rec = new List <ACBrPAFInterop.RegistroS3Rec>();

            foreach (ACBrPAFRegistroS2 s2 in PafS.RegistroS2)
            {
                var registroS2Rec = new ACBrPAFInterop.RegistroS2Rec
                {
                    QTD_S3         = s2.RegistroS3.Count,
                    CNPJ           = ToUTF8(s2.CNPJ),
                    DT_ABER        = s2.DT_ABER.ToOADate(),
                    NUM_MESA       = s2.NUM_MESA,
                    SITU           = ToUTF8(s2.SITU),
                    VL_TOT         = (double)s2.VL_TOT,
                    COO_CM         = ToUTF8(s2.COO_CM),
                    NUM_FAB_CM     = ToUTF8(s2.NUM_FAB_CM),
                    COO            = ToUTF8(s2.COO),
                    NUM_FAB        = ToUTF8(s2.NUM_FAB),
                    RegistroValido = s2.RegistroValido
                };

                registrosS2Rec.Add(registroS2Rec);

                foreach (ACBrPAFRegistroS3 s3 in s2.RegistroS3)
                {
                    var registroS3Rec = new ACBrPAFInterop.RegistroS3Rec
                    {
                        COD_ITEM       = ToUTF8(s3.COD_ITEM),
                        DESC_ITEM      = ToUTF8(s3.DESC_ITEM),
                        QTDE_ITEM      = (double)s3.QTDE_ITEM,
                        UNI_ITEM       = ToUTF8(s3.UNI_ITEM),
                        VL_UNIT        = (double)s3.VL_UNIT,
                        RegistroValido = s3.RegistroValido,
                    };

                    registrosS3Rec.Add(registroS3Rec);
                }
            }

            var ret = ACBrPAFInterop.PAF_Preenche_S(Handle, registrosS2Rec.Count, registrosS2Rec.ToArray(), registrosS3Rec.ToArray());

            CheckResult(ret);
        }
Ejemplo n.º 11
0
        private void PAF_Preenche_U()
        {
            var registroU1Rec = new ACBrPAFInterop.RegistroHD1Rec
            {
                CNPJ             = PafU.RegistroU1.CNPJ,
                IE               = PafU.RegistroU1.IE,
                IM               = PafU.RegistroU1.IM,
                RAZAOSOCIAL      = PafU.RegistroU1.RazaoSocial,
                InclusaoExclusao = PafU.RegistroU1.InclusaoExclusao
            };

            var ret = ACBrPAFInterop.PAF_Preenche_U(Handle, registroU1Rec);

            CheckResult(ret);
        }
Ejemplo n.º 12
0
        private void PAF_Preenche_H()
        {
            #region H1

            var registroH1Rec = new ACBrPAFInterop.RegistroHD2Rec()
            {
                RAZAOSOCIAL      = ToUTF8(PafH.RegistroH1.RazaoSocial),
                CNPJ             = ToUTF8(PafH.RegistroH1.CNPJ),
                UF               = ToUTF8(PafH.RegistroH1.UF),
                IE               = ToUTF8(PafH.RegistroH1.IE),
                IM               = ToUTF8(PafH.RegistroH1.IM),
                TIPO_ECF         = ToUTF8(PafH.RegistroH1.TIPO_ECF),
                MARCA_ECF        = ToUTF8(PafH.RegistroH1.MARCA_ECF),
                MODELO_ECF       = ToUTF8(PafH.RegistroH1.MODELO_ECF),
                NUM_FAB          = ToUTF8(PafH.RegistroH1.NUM_FAB),
                MF_ADICIONAL     = ToUTF8(PafH.RegistroH1.MF_ADICIONAL),
                DT_EST           = PafH.RegistroH1.DT_EST.ToOADate(),
                RegistroValido   = PafH.RegistroH1.RegistroValido,
                InclusaoExclusao = PafH.RegistroH1.InclusaoExclusao
            };

            #endregion

            #region H2

            var registroH2Rec = (from x in PafH.RegistroH2
                                 select new ACBrPAFInterop.RegistroH2Rec
            {
                NUM_FAB = x.NUM_FAB,
                MF_ADICIONAL = x.MF_ADICIONAL,
                TIPO_ECF = x.TIPO_ECF,
                MARCA_ECF = x.MARCA_ECF,
                MODELO_ECF = x.MODELO_ECF,
                CNPJ_CRED_CARTAO = x.CNPJ_CRED_CARTAO,
                COO = x.COO,
                CCF = x.CCF,
                VLR_TROCO = (double)x.VLR_TROCO,
                DT_TROCO = x.DT_TROCO.ToOADate(),
                CPF = x.CPF,
                Titulo = x.Titulo,
                RegistroValido = x.RegistroValido
            }).ToArray();

            #endregion

            var ret = ACBrPAFInterop.PAF_Preenche_H(Handle, registroH1Rec, registroH2Rec, PafH.RegistroH2.Count);
            CheckResult(ret);
        }
Ejemplo n.º 13
0
        private void PAF_Preenche_A()
        {
            var registrosA2Rec = (from x in PafA.RegistroA2
                                  select new ACBrPAFInterop.RegistroA2Rec
            {
                CodigoTipoDocumento = ((int)x.CodigoTipoDocumento).ToString(),
                Data = x.Data.ToOADate(),
                MeioDePagamento = x.MeioPagamento,
                RegistroValido = x.RegistroValido,
                Valor = (double)x.Valor
            }).ToArray();

            var ret = ACBrPAFInterop.PAF_Preenche_A(Handle, registrosA2Rec, PafA.RegistroA2.Count);

            CheckResult(ret);
        }
Ejemplo n.º 14
0
        private void PAF_Preenche_C()
        {
            #region C1
            var registroC1Rec = new ACBrPAFInterop.RegistroHD1Rec
            {
                RAZAOSOCIAL = ToUTF8(PafC.RegistroC1.RazaoSocial),
                CNPJ        = ToUTF8(PafC.RegistroC1.CNPJ),
                UF          = ToUTF8(PafC.RegistroC1.UF),
                IE          = ToUTF8(PafC.RegistroC1.IE),
                IM          = ToUTF8(PafC.RegistroC1.IM)
            };
            #endregion

            #region C2
            var registrosC2Rec = (from x in PafC.RegistroC2
                                  select new ACBrPAFInterop.RegistroC2Rec
            {
                ID_ABASTECIMENTO = ToUTF8(x.ID_ABASTECIMENTO),
                TANQUE = ToUTF8(x.TANQUE),
                BOMBA = ToUTF8(x.BOMBA),
                COMBUSTIVEL = ToUTF8(x.COMBUSTIVEL),
                DATA_ABASTECIMENTO = x.DATA_ABASTECIMENTO.ToOADate(),
                HORA_ABASTECIMENTO = x.HORA_ABASTECIMENTO.ToOADate(),
                ENCERRANTE_INICIAL = Convert.ToDouble(x.ENCERRANTE_INICIAL),
                ENCERRANTE_FINAL = Convert.ToDouble(x.ENCERRANTE_FINAL),
                STATUS_ABASTECIMENTO = ToUTF8(x.STATUS_ABASTECIMENTO),
                NRO_SERIE_ECF = ToUTF8(x.NRO_SERIE_ECF),
                DATA = x.DATA.ToOADate(),
                HORA = x.HORA.ToOADate(),
                COO = x.COO,
                NRO_NOTA_FISCAL = x.NRO_NOTA_FISCAL,
                VOLUME = Convert.ToDouble(x.VOLUME),
                RegistroValido = x.RegistroValido
            }).ToArray();

            #endregion

            var ret = ACBrPAFInterop.PAF_Preenche_C(Handle, registroC1Rec, registrosC2Rec, PafC.RegistroC2.Count);
            CheckResult(ret);
        }
Ejemplo n.º 15
0
        private void PAF_Preenche_TITP()
        {
            var itemIndex    = 0;
            var insumosCount = PafTitp.Mercadorias.Sum(s => s.Insumos.Count);

            var mercadoriasRec = new ACBrPAFInterop.RegistroMercadoriasRec[PafTitp.Mercadorias.Count];
            var insumosRec     = new ACBrPAFInterop.RegistroInsumosRec[insumosCount];

            for (var i = 0; i < PafTitp.Mercadorias.Count; i++)
            {
                mercadoriasRec[i].Descricao   = ToUTF8(PafTitp.Mercadorias[i].Descricao);
                mercadoriasRec[i].Codigo      = ToUTF8(PafTitp.Mercadorias[i].Codigo);
                mercadoriasRec[i].Aliquota    = Convert.ToDouble(PafTitp.Mercadorias[i].Aliquota);
                mercadoriasRec[i].Unidade     = ToUTF8(PafTitp.Mercadorias[i].Unidade);
                mercadoriasRec[i].Quantidade  = Convert.ToDouble(PafTitp.Mercadorias[i].Quantidade);
                mercadoriasRec[i].Ean         = ToUTF8(PafTitp.Mercadorias[i].Ean);
                mercadoriasRec[i].CST         = ToUTF8(PafTitp.Mercadorias[i].CST);
                mercadoriasRec[i].VlrUnitario = Convert.ToDouble(PafTitp.Mercadorias[i].VlrUnitario);
                mercadoriasRec[i].QTD_Insumos = PafTitp.Mercadorias[i].Insumos.Count;

                foreach (ACBrPAFRegistroInsumo insumo in PafTitp.Mercadorias[i].Insumos)
                {
                    insumosRec[itemIndex].Descricao   = ToUTF8(insumo.Descricao);
                    insumosRec[itemIndex].Codigo      = ToUTF8(insumo.Codigo);
                    insumosRec[itemIndex].Aliquota    = Convert.ToDouble(insumo.Aliquota);
                    insumosRec[itemIndex].Unidade     = ToUTF8(insumo.Unidade);
                    insumosRec[itemIndex].Quantidade  = Convert.ToDouble(insumo.Quantidade);
                    insumosRec[itemIndex].Ean         = ToUTF8(insumo.Ean);
                    insumosRec[itemIndex].CST         = ToUTF8(insumo.CST);
                    insumosRec[itemIndex].VlrUnitario = Convert.ToDouble(insumo.VlrUnitario);
                    itemIndex++;
                }
            }

            var ret = ACBrPAFInterop.PAF_Preenche_TITP(this.Handle, mercadoriasRec, PafTitp.Mercadorias.Count, insumosRec, PafTitp.Titulo.ToUTF8(),
                                                       PafTitp.Data.ToOADate());

            CheckResult(ret);
        }
Ejemplo n.º 16
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);
        }
Ejemplo n.º 17
0
        private void PAF_Preenche_R()
        {
            #region Contadores

            int itemR1 = 0, itemR2 = 0, itemR3 = 0, itemR4 = 0, itemR5 = 0, itemR6 = 0, itemR7 = 0;
            var cr2 = PafR.RegistroR1.Sum(s => s.RegistroR2.Count);
            var cr3 = PafR.RegistroR1.Sum(s => s.RegistroR2.Sum(c => c.RegistroR3.Count));
            var cr4 = PafR.RegistroR1.Sum(s => s.RegistroR4.Count);
            var cr5 = PafR.RegistroR1.Sum(s => s.RegistroR4.Sum(c => c.RegistroR5.Count));
            var cr6 = PafR.RegistroR1.Sum(s => s.RegistroR6.Count);
            var cr7 = PafR.RegistroR1.Sum(s => s.RegistroR4.Sum(c => c.RegistroR7.Count) +
                                          s.RegistroR6.Sum(c => c.RegistroR7.Count));

            #endregion Contadores

            #region Arrays

            var registrosR1Rec = new ACBrPAFInterop.RegistroR1Rec[PafR.RegistroR1.Count];
            var registrosR2Rec = new ACBrPAFInterop.RegistroR2Rec[cr2];
            var registrosR3Rec = new ACBrPAFInterop.RegistroR3Rec[cr3];
            var registrosR4Rec = new ACBrPAFInterop.RegistroR4Rec[cr4];
            var registrosR5Rec = new ACBrPAFInterop.RegistroR5Rec[cr5];
            var registrosR6Rec = new ACBrPAFInterop.RegistroR6Rec[cr6];
            var registrosR7Rec = new ACBrPAFInterop.RegistroR7Rec[cr7];

            #endregion

            foreach (ACBrPAFRegistroR1 r1 in PafR.RegistroR1)
            {
                #region R1

                registrosR1Rec[itemR1].QTD_R2           = r1.RegistroR2.Count;
                registrosR1Rec[itemR1].QTD_R4           = r1.RegistroR4.Count;
                registrosR1Rec[itemR1].QTD_R6           = r1.RegistroR6.Count;
                registrosR1Rec[itemR1].NUM_FAB          = ToUTF8(r1.NUM_FAB);
                registrosR1Rec[itemR1].MF_ADICIONAL     = ToUTF8(r1.MF_ADICIONAL);
                registrosR1Rec[itemR1].TIPO_ECF         = ToUTF8(r1.TIPO_ECF);
                registrosR1Rec[itemR1].MARCA_ECF        = ToUTF8(r1.MARCA_ECF);
                registrosR1Rec[itemR1].MODELO_ECF       = ToUTF8(r1.MODELO_ECF);
                registrosR1Rec[itemR1].VERSAO_SB        = ToUTF8(r1.VERSAO_SB);
                registrosR1Rec[itemR1].DT_INST_SB       = r1.DT_INST_SB.ToOADate();
                registrosR1Rec[itemR1].HR_INST_SB       = r1.HR_INST_SB.ToOADate();
                registrosR1Rec[itemR1].NUM_SEQ_ECF      = r1.NUM_SEQ_ECF;
                registrosR1Rec[itemR1].CNPJ             = ToUTF8(r1.CNPJ);
                registrosR1Rec[itemR1].IE               = ToUTF8(r1.IE);
                registrosR1Rec[itemR1].CNPJ_SH          = ToUTF8(r1.CNPJ_SH);
                registrosR1Rec[itemR1].IE_SH            = ToUTF8(r1.IE_SH);
                registrosR1Rec[itemR1].IM_SH            = ToUTF8(r1.IM_SH);
                registrosR1Rec[itemR1].NOME_SH          = ToUTF8(r1.NOME_SH);
                registrosR1Rec[itemR1].NOME_PAF         = ToUTF8(r1.NOME_PAF);
                registrosR1Rec[itemR1].VER_PAF          = ToUTF8(r1.VER_PAF);
                registrosR1Rec[itemR1].COD_MD5          = ToUTF8(r1.COD_MD5);
                registrosR1Rec[itemR1].DT_INI           = r1.DT_INI.ToOADate();
                registrosR1Rec[itemR1].DT_FIN           = r1.DT_FIN.ToOADate();
                registrosR1Rec[itemR1].ER_PAF_ECF       = ToUTF8(r1.ER_PAF_ECF);
                registrosR1Rec[itemR1].InclusaoExclusao = r1.InclusaoExclusao;
                registrosR1Rec[itemR1].RegistroValido   = r1.RegistroValido;

                #endregion

                #region R2 e R3

                foreach (ACBrPAFRegistroR2 r2 in r1.RegistroR2)
                {
                    registrosR2Rec[itemR2].QTD_R3         = r2.RegistroR3.Count;
                    registrosR2Rec[itemR2].NUM_USU        = r2.NUM_USU;
                    registrosR2Rec[itemR2].CRZ            = r2.CRZ;
                    registrosR2Rec[itemR2].COO            = r2.COO;
                    registrosR2Rec[itemR2].CRO            = r2.CRO;
                    registrosR2Rec[itemR2].DT_MOV         = r2.DT_MOV.ToOADate();
                    registrosR2Rec[itemR2].DT_EMI         = r2.DT_EMI.ToOADate();
                    registrosR2Rec[itemR2].HR_EMI         = r2.HR_EMI.ToOADate();
                    registrosR2Rec[itemR2].VL_VBD         = Convert.ToDouble(r2.VL_VBD);
                    registrosR2Rec[itemR2].PAR_ECF        = ToUTF8(r2.PAR_ECF);
                    registrosR2Rec[itemR2].RegistroValido = r2.RegistroValido;

                    foreach (ACBrPAFRegistroR3 registroR3 in r2.RegistroR3)
                    {
                        registrosR3Rec[itemR3].TOT_PARCIAL    = ToUTF8(registroR3.TOT_PARCIAL);
                        registrosR3Rec[itemR3].VL_ACUM        = Convert.ToDouble(registroR3.VL_ACUM);
                        registrosR3Rec[itemR3].RegistroValido = registroR3.RegistroValido;
                        itemR3++;
                    }

                    itemR2++;
                }

                #endregion

                #region R4, R5 e R7
                foreach (ACBrPAFRegistroR4 r4 in r1.RegistroR4)
                {
                    registrosR4Rec[itemR4].QTD_R5         = r4.RegistroR5.Count;
                    registrosR4Rec[itemR4].QTD_R7         = r4.RegistroR7.Count;
                    registrosR4Rec[itemR4].NUM_USU        = r4.NUM_USU;
                    registrosR4Rec[itemR4].NUM_CONT       = r4.NUM_CONT;
                    registrosR4Rec[itemR4].COO            = r4.COO;
                    registrosR4Rec[itemR4].DT_INI         = r4.DT_INI.ToOADate();
                    registrosR4Rec[itemR4].SUB_DOCTO      = Convert.ToDouble(r4.SUB_DOCTO);
                    registrosR4Rec[itemR4].SUB_DESCTO     = Convert.ToDouble(r4.SUB_DESCTO);
                    registrosR4Rec[itemR4].TP_DESCTO      = ToUTF8(r4.TP_DESCTO);
                    registrosR4Rec[itemR4].SUB_ACRES      = Convert.ToDouble(r4.SUB_ACRES);
                    registrosR4Rec[itemR4].TP_ACRES       = ToUTF8(r4.TP_ACRES);
                    registrosR4Rec[itemR4].VL_TOT         = Convert.ToDouble(r4.VL_TOT);
                    registrosR4Rec[itemR4].CANC           = ToUTF8(r4.CANC);
                    registrosR4Rec[itemR4].VL_CA          = Convert.ToDouble(r4.VL_CA);
                    registrosR4Rec[itemR4].ORDEM_DA       = ToUTF8(r4.ORDEM_DA);
                    registrosR4Rec[itemR4].NOME_CLI       = ToUTF8(r4.NOME_CLI);
                    registrosR4Rec[itemR4].CNPJ_CPF       = ToUTF8(r4.CNPJ_CPF);
                    registrosR4Rec[itemR4].RegistroValido = r4.RegistroValido;

                    foreach (ACBrPAFRegistroR5 registroR5 in r4.RegistroR5)
                    {
                        registrosR5Rec[itemR5].NUM_CONT       = registroR5.NUM_CONT;
                        registrosR5Rec[itemR5].NUM_ITEM       = registroR5.NUM_ITEM;
                        registrosR5Rec[itemR5].COD_ITEM       = ToUTF8(registroR5.COD_ITEM);
                        registrosR5Rec[itemR5].DESC_ITEM      = ToUTF8(registroR5.DESC_ITEM);
                        registrosR5Rec[itemR5].QTDE_ITEM      = Convert.ToDouble(registroR5.QTDE_ITEM);
                        registrosR5Rec[itemR5].UN_MED         = ToUTF8(registroR5.UN_MED);
                        registrosR5Rec[itemR5].VL_UNIT        = Convert.ToDouble(registroR5.VL_UNIT);
                        registrosR5Rec[itemR5].DESCTO_ITEM    = Convert.ToDouble(registroR5.DESCTO_ITEM);
                        registrosR5Rec[itemR5].ACRES_ITEM     = Convert.ToDouble(registroR5.ACRES_ITEM);
                        registrosR5Rec[itemR5].VL_TOT_ITEM    = Convert.ToDouble(registroR5.VL_TOT_ITEM);
                        registrosR5Rec[itemR5].COD_TOT_PARC   = ToUTF8(registroR5.COD_TOT_PARC);
                        registrosR5Rec[itemR5].IND_CANC       = ToUTF8(registroR5.IND_CANC);
                        registrosR5Rec[itemR5].QTDE_CANC      = Convert.ToDouble(registroR5.QTDE_CANC);
                        registrosR5Rec[itemR5].VL_CANC        = Convert.ToDouble(registroR5.VL_CANC);
                        registrosR5Rec[itemR5].VL_CANC_ACRES  = Convert.ToDouble(registroR5.VL_CANC_ACRES);
                        registrosR5Rec[itemR5].IAT            = ToUTF8(registroR5.IAT);
                        registrosR5Rec[itemR5].IPPT           = ToUTF8(registroR5.IPPT);
                        registrosR5Rec[itemR5].QTDE_DECIMAL   = registroR5.QTDE_DECIMAL;
                        registrosR5Rec[itemR5].VL_DECIMAL     = registroR5.VL_DECIMAL;
                        registrosR5Rec[itemR5].RegistroValido = registroR5.RegistroValido;
                        itemR5++;
                    }

                    foreach (ACBrPAFRegistroR7 registroR7 in r4.RegistroR7)
                    {
                        registrosR7Rec[itemR7].COO            = registroR7.COO;
                        registrosR7Rec[itemR7].CCF            = registroR7.CCF;
                        registrosR7Rec[itemR7].GNF            = registroR7.GNF;
                        registrosR7Rec[itemR7].MP             = ToUTF8(registroR7.MP);
                        registrosR7Rec[itemR7].VL_PAGTO       = Convert.ToDouble(registroR7.VL_PAGTO);
                        registrosR7Rec[itemR7].IND_EST        = ToUTF8(registroR7.IND_EST);
                        registrosR7Rec[itemR7].VL_EST         = Convert.ToDouble(registroR7.VL_EST);
                        registrosR7Rec[itemR7].RegistroValido = registroR7.RegistroValido;
                        itemR7++;
                    }

                    itemR4++;
                }
                #endregion

                #region R6 e R7

                foreach (ACBrPAFRegistroR6 r6 in r1.RegistroR6)
                {
                    registrosR6Rec[itemR6].QTD_R7         = r6.RegistroR7.Count;
                    registrosR6Rec[itemR6].NUM_USU        = r6.NUM_USU;
                    registrosR6Rec[itemR6].COO            = r6.COO;
                    registrosR6Rec[itemR6].GNF            = r6.GNF;
                    registrosR6Rec[itemR6].GRG            = r6.GRG;
                    registrosR6Rec[itemR6].CDC            = r6.CDC;
                    registrosR6Rec[itemR6].DENOM          = ToUTF8(r6.DENOM);
                    registrosR6Rec[itemR6].DT_FIN         = r6.DT_FIN.ToOADate();
                    registrosR6Rec[itemR6].HR_FIN         = r6.HR_FIN.ToOADate();
                    registrosR6Rec[itemR6].RegistroValido = r6.RegistroValido;

                    foreach (ACBrPAFRegistroR7 registroR7 in r6.RegistroR7)
                    {
                        registrosR7Rec[itemR7].COO            = registroR7.COO;
                        registrosR7Rec[itemR7].CCF            = registroR7.CCF;
                        registrosR7Rec[itemR7].GNF            = registroR7.GNF;
                        registrosR7Rec[itemR7].MP             = ToUTF8(registroR7.MP);
                        registrosR7Rec[itemR7].VL_PAGTO       = Convert.ToDouble(registroR7.VL_PAGTO);
                        registrosR7Rec[itemR7].IND_EST        = ToUTF8(registroR7.IND_EST);
                        registrosR7Rec[itemR7].VL_EST         = Convert.ToDouble(registroR7.VL_EST);
                        registrosR7Rec[itemR7].RegistroValido = registroR7.RegistroValido;
                        itemR7++;
                    }

                    itemR6++;
                }

                #endregion

                itemR1++;
            }

            var ret = ACBrPAFInterop.PAF_Preenche_R(Handle, PafR.RegistroR1.Count,
                                                    registrosR1Rec,
                                                    registrosR2Rec,
                                                    registrosR3Rec,
                                                    registrosR4Rec,
                                                    registrosR5Rec,
                                                    registrosR6Rec,
                                                    registrosR7Rec);
            CheckResult(ret);
        }