コード例 #1
0
ファイル: AddendaController.cs プロジェクト: njmube/CFDI-3
        public static bool AdendaMetalsa(string sNombreDB, int NumeroRegistro, int Tipo, int NumeroEmpresa, string sNombreArchivo, ref string xml)
        {
            //CfdiBLL ctrl = new CfdiBLL();
            //HP objHP = new HP();
            METALSA objMetal = new METALSA();

            try
            {
                DataTable dt = new DataTable();
                SQLConection context = new SQLConection();
                context.Parametros.Clear();
                context.Parametros.Add(new SqlParameter("@Numero_Empresa", NumeroEmpresa));
                context.Parametros.Add(new SqlParameter("@Numero_Factura", NumeroRegistro));
                dt = context.ExecuteProcedure("[" + sNombreDB + "].[dbo].[sp_AdendaMetalda_Encabezado]", true).Copy();

                objMetal.factura_fecha = DateTime.Parse(dt.Rows[0][0].ToString());
                objMetal.factura_version = dt.Rows[0][1].ToString();
                objMetal.factura_folioFiscal = dt.Rows[0][2].ToString();
                objMetal.factura_tipoDocumentoFiscal = dt.Rows[0][3].ToString();
                objMetal.factura_tipoDocumento = dt.Rows[0][4].ToString();
                objMetal.moneda_tipoMoneda = dt.Rows[0][6].ToString();
                objMetal.proveedor_nombre = dt.Rows[0][7].ToString();
                objMetal.proveedor_codigo = dt.Rows[0][8].ToString();
                objMetal.destino_nombre = dt.Rows[0][9].ToString();
                objMetal.destino_codigo = dt.Rows[0][10].ToString();
                objMetal.archivo_tipoArchivo = dt.Rows[0][11].ToString();
                //objMetal.archivo_archivo = Base64Encode(sNombreArchivo);
                objMetal.archivo_archivo = Base64Encode(Path.GetFileNameWithoutExtension(sNombreArchivo));
                objMetal.cuentaCorreo_cuentaCorreo = dt.Rows[0][12].ToString();
                return lfCreaAdendaMETALSA(sNombreDB, objMetal, ref xml, NumeroEmpresa, NumeroRegistro);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                return false;
            }

        }
コード例 #2
0
ファイル: AddendaController.cs プロジェクト: njmube/CFDI-3
        private static string lfConsultaPartidasAdenda(string sNombreDB, int iNumeroEmpresa, int iNumeroFactura, XNamespace xMPNP)
        {
            string sResultado = string.Empty;
            string sResultadoEncode = string.Empty;
            DataTable dt = new DataTable();
            SQLConection context = new SQLConection();
            try
            {
                switch (sNombreDB.ToUpper())
                {
                    case "INTEGRA_ZAMBRANO_GASERA":
                        context.Parametros.Clear();
                        context.Parametros.Add(new SqlParameter("@Numero_Empresa ", iNumeroEmpresa));
                        context.Parametros.Add(new SqlParameter("@Numero_Factura", iNumeroFactura));
                        dt = context.ExecuteProcedure("[" + sNombreDB + "].[dbo].[sp_AdendaMetalda_Partidas_Gasera]", true).Copy();
                        break;
                    case "INTEGRA_ZAMBRANO_DIST":
                        context.Parametros.Add(new SqlParameter("@Numero_Empresa ", iNumeroEmpresa));
                        context.Parametros.Add(new SqlParameter("@Numero_Factura", iNumeroFactura));
                        dt = context.ExecuteProcedure("[" + sNombreDB + "].[dbo].[sp_AdendaMetalda_Partidas_Distribuidora]", true).Copy();
                        break;
                    case "INTEGRA_ZAMBRANO":
                        context.Parametros.Add(new SqlParameter("@Numero_Empresa ", iNumeroEmpresa));
                        context.Parametros.Add(new SqlParameter("@Numero_Factura", iNumeroFactura));
                        dt = context.ExecuteProcedure("[" + sNombreDB + "].[dbo].[sp_AdendaMetalda_Partidas_Estaciones]", true).Copy();
                        break;
                    default:
                        context.Parametros.Add(new SqlParameter("@Numero_Empresa ", iNumeroEmpresa));
                        context.Parametros.Add(new SqlParameter("@Numero_Factura", iNumeroFactura));
                        dt = context.ExecuteProcedure("[" + sNombreDB + "].[dbo].[sp_AdendaMetalda_Partidas_General]", true).Copy();
                        break;
                }


                int iLinea = 1;
                foreach (DataRow item in dt.Rows)
                {
                    METALSA objMetal = new METALSA();
                    objMetal.part_descripcion = item[0].ToString();
                    objMetal.part_cantidad = item[1].ToString();
                    objMetal.part_ordencompra = item[2].ToString();
                    objMetal.part_numeroRecibo = item[3].ToString();
                    objMetal.part_fechaRecibo = DateTime.Parse(item[4].ToString());
                    objMetal.part_precioUnitario = item[5].ToString();
                    objMetal.part_unidadMedida = item[6].ToString();
                    objMetal.part_numeroLinea = iLinea++.ToString();
                    objMetal.part_numeroParte = item[8].ToString();
                    //XElement xePart = new XElement(xMPNP + "part", new XAttribute(XNamespace.Xmlns + "", xMPNP)
                    XElement xePart = new XElement(xMPNP + "part", new XAttribute(XNamespace.Xmlns + "MPNP", xMPNP)
                                                               //XElement xePart = new XElement(xMPNP + "part", new XAttribute("descripcion", objMetal.part_descripcion)
                                                               , new XAttribute("descripcion", objMetal.part_descripcion)
                                                               , new XAttribute("cantidad", objMetal.part_cantidad)
                                                               , new XAttribute("ordencompra", objMetal.part_ordencompra)
                                                               , new XAttribute("numeroRecibo", objMetal.part_numeroRecibo)
                                                               , new XAttribute("fechaRecibo", objMetal.part_fechaRecibo.ToString("yyyy-MM-dd"))
                                                               , new XAttribute("precioUnitario", objMetal.part_precioUnitario)
                                                               , new XAttribute("unidadMedida", objMetal.part_unidadMedida)
                                                               , new XAttribute("numeroLinea", objMetal.part_numeroLinea)
                                                               , new XAttribute("numeroParte", objMetal.part_numeroParte));

                    sResultado += @xePart.ToString();
                }
                sResultado = sResultado.Replace("xmlns:MPNP=\"http://www.metalsa.com.mx/Addenda/MPNP\"", string.Empty);
                return sResultado;
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                return sResultado;
            }
        }
コード例 #3
0
ファイル: AddendaController.cs プロジェクト: njmube/CFDI-3
        private static bool lfCreaAdendaMETALSA(string sNombreDB, METALSA objMetal, ref string sBody_XML, int iNumeroEmpresa, int iNumeroFactura)
        {
            XDocument xd = XDocument.Parse(sBody_XML);
            XNamespace xcfdi = @"http://www.sat.gob.mx/cfd/3";
            XNamespace xMPNP = @"http://www.metalsa.com.mx/Addenda/MPNP";
            try
            {

                // Construcción de adenda
                XElement xeAdenda = new XElement(xcfdi + "Addenda",
                                    new XElement(xMPNP + "factura", new XAttribute(XNamespace.Xmlns + "MPNP", xMPNP),
                                                                    new XAttribute("fecha", objMetal.factura_fecha.ToString("yyyy-MM-dd")),
                                                                    new XAttribute("version", objMetal.factura_version),
                                                                    new XAttribute("folioFiscal", objMetal.factura_folioFiscal),
                                                                    new XAttribute("tipoDocumentoFiscal", objMetal.factura_tipoDocumentoFiscal),
                                                                    new XAttribute("tipoDocumento", objMetal.factura_tipoDocumento),
                                    new XElement(xMPNP + "moneda", new XAttribute("tipoMoneda", objMetal.moneda_tipoMoneda)),
                                    new XElement(xMPNP + "proveedor", new XAttribute("nombre", objMetal.proveedor_nombre), new XAttribute("codigo", objMetal.proveedor_codigo)),
                                    new XElement(xMPNP + "destino", new XAttribute("nombre", objMetal.destino_nombre), new XAttribute("codigo", objMetal.destino_codigo)),
                                    new XElement(xMPNP + "archivo", new XAttribute("tipoArchivo", objMetal.archivo_tipoArchivo), new XAttribute("archivo", objMetal.archivo_archivo)),
                                    new XElement(xMPNP + "cuentaCorreo", new XAttribute("cuentaCorreo", objMetal.cuentaCorreo_cuentaCorreo)),
                                    new XElement(xMPNP + "partes", lfConsultaPartidasAdenda(sNombreDB, iNumeroEmpresa, iNumeroFactura, xMPNP))));
                xd.Root.Add(xeAdenda);
                sBody_XML = xd.ToString();
                sBody_XML = sBody_XML.Replace("&lt;", "<");
                sBody_XML = sBody_XML.Replace("&gt;", ">");
                return true;
            }
            catch
            {
                return false;
            }
        }