예제 #1
0
 void btnCrear_Click(object sender, EventArgs e)
 {
     completo = 0;
     for (int i = 0; i < orden.Rows.Count; i++)
     {
         if (0 < Convert.ToInt32(orden.Rows[i]["quantity"]))
         {
             miss     = i;
             faltante = orden.Rows[miss]["itemcode"].ToString();
             if (MessageBox.Show("Orden incompleta falta " + faltante + " ¿Desea continuar con el registro?", "Scaneo", MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2) == DialogResult.Yes)
             {
                 orden.Rows[miss]["quantity"] = 0;
             }
         }
         completo = completo + Convert.ToInt32(orden.Rows[i]["quantity"]);
     }
     if (completo == 0)
     {
         if (tbOrdencompra.Text == orden.Rows[0]["docentry"].ToString())
         {
             DataTable      diapi  = new DataTable();
             SqlDataAdapter ordenc = new SqlDataAdapter("Select Orden from ContadorDIAPI WHERE Orden = '" + tbOrdencompra.Text + "'", cn);
             ordenc.Fill(diapi);
             if (diapi.Rows.Count == 1)
             {
                 MessageBox.Show("La orden de compra ya esta registrada", "Scaneo", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
             }
             else
             {
                 DataTable      contador = new DataTable();
                 int            conta;
                 SqlDataAdapter datos = new SqlDataAdapter("Select * from ContadorDIAPI", cn);
                 datos.Fill(contador);
                 conta = 100 + contador.Rows.Count;
                 CompanyService    companyservice = ClaseCompartida.company.GetCompanyService();
                 GeneralService    generalservice = companyservice.GetGeneralService("SCAN");
                 GeneralDataParams dataparams     = null;
                 dataparams = (GeneralDataParams)generalservice.GetDataInterface(GeneralServiceDataInterfaces.gsGeneralDataParams);
                 //Create data for new row in main UDO
                 GeneralData           DATA     = (GeneralData)generalservice.GetDataInterface(GeneralServiceDataInterfaces.gsGeneralData);
                 GeneralDataCollection children = DATA.Child("SCAN_DET");
                 // Add
                 DATA.SetProperty("Code", conta.ToString());
                 DATA.SetProperty("U_ALM", tbOrdencompra.Text);
                 DATA.SetProperty("U_Fecha", DateTime.Now);
                 for (int i = 0; i < final.Rows.Count; i++)
                 {
                     GeneralData child = children.Add();
                     child.SetProperty("U_CBB", final.Rows[i][0].ToString());
                     child.SetProperty("U_QTY", final.Rows[i][3].ToString());
                     child.SetProperty("U_ITEMCODE", final.Rows[i][1].ToString());
                 }
                 generalservice.Add(DATA);
                 sql.Contador(conta, Convert.ToInt32(tbOrdencompra.Text));
                 MessageBox.Show("Producto Registrado", "Scaneo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                 dataGridView1.DataSource = null;
                 tbOrdencompra.Text       = "";
             }
         }
         else
         {
             MessageBox.Show("Los productos no pertenecen a esta orden", "Scaneo", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
         }
     }
     //Update
     //oUDO_Name.SetProperty("Code", sCode);
     //oUDO_Name.SetProperty("Name", sName);
     //oUDO_Name.SetProperty("U_Remark", sRemark);
     //oUDO_Name.SetProperty("U_ActiveYN", sActiveYN);
     //generalservice.Update(oUDO_Name);
     ////Delete
     //dataparams.SetProperty("Code", sCode);
     //generalservice.Delete(dataparams);
 }
예제 #2
0
        /// <summary>
        /// Ingresa un nuevo registro a la tabla @TFESOB y su hija
        /// @TFESOBDET.
        /// </summary>
        /// <param name="comp"></param>
        /// <param name="maestro"></param>
        /// <returns></returns>
        public bool AlmacenarMaestro(SobreReporte sobre)
        {
            bool resultado = false;

            GeneralService        servicioGeneral = null;
            GeneralData           dataGeneral     = null;
            GeneralData           dataDetalle     = null;
            GeneralDataCollection detalle         = null;

            try
            {
                //Obtener el servicio general de la compañia
                servicioGeneral = ProcConexion.Comp.GetCompanyService().GetGeneralService("TTFESOB");

                //Apuntar a la cabecera del udo
                dataGeneral = servicioGeneral.GetDataInterface(GeneralServiceDataInterfaces.gsGeneralData);

                //Establecer los valores para cada una de las propiedades del udo
                dataGeneral.SetProperty("U_VerSobre", sobre.Version);
                dataGeneral.SetProperty("U_RucRec", sobre.RucReceptor.ToString());
                dataGeneral.SetProperty("U_RucEmi", sobre.RucEmisor.ToString());
                dataGeneral.SetProperty("U_IdResp", sobre.IdRespuesta.ToString());
                dataGeneral.SetProperty("U_NomArc", sobre.NombreArchivo);
                dataGeneral.SetProperty("U_FeHoEnRe", sobre.FechaHoraRecepcion);
                dataGeneral.SetProperty("U_IdEmi", sobre.IdEmisor.ToString());
                dataGeneral.SetProperty("U_IdRec", sobre.IdReceptor.ToString());
                dataGeneral.SetProperty("U_CantComp", sobre.CantidadComprobantes);
                dataGeneral.SetProperty("U_FeHoFiEl", sobre.FechaHoraFirma);

                if (sobre.DetalleSobre != null)
                {
                    detalle = dataGeneral.Child("TFESOBDET");

                    foreach (DetSobre detalleSobre in sobre.DetalleSobre)
                    {
                        dataDetalle = detalle.Add();
                        dataDetalle.SetProperty("U_EstRecEnv", detalleSobre.EstadoRecepcion);
                        dataDetalle.SetProperty("U_CodMotRec", detalleSobre.CodigoMotivoRechazo);
                        dataDetalle.SetProperty("U_GloMotRec", detalleSobre.GlosaMotivoRechazo);
                        dataDetalle.SetProperty("U_DetRec", detalleSobre.DetalleRechazo);
                    }
                }

                //Agregar el nuevo registro a la base de dato utilizando el servicio general de la compañia
                servicioGeneral.Add(dataGeneral);

                resultado = true;
            }
            catch (Exception ex)
            {
                AdminEventosUI.mostrarMensaje("Error: Al guardar información del Sobre" + ex.ToString(), AdminEventosUI.tipoMensajes.error);
            }
            finally
            {
                if (dataGeneral != null)
                {
                    //Liberar memoria utlizada por el objeto dataGeneral
                    System.Runtime.InteropServices.Marshal.ReleaseComObject(dataGeneral);
                    System.GC.Collect();
                }
                if (dataDetalle != null)
                {
                    //Liberar memoria utlizada por el objeto dataDetalle
                    System.Runtime.InteropServices.Marshal.ReleaseComObject(dataDetalle);
                    System.GC.Collect();
                }
                if (detalle != null)
                {
                    //Liberar memoria utlizada por el objeto detalle
                    System.Runtime.InteropServices.Marshal.ReleaseComObject(detalle);
                    System.GC.Collect();
                }
                if (servicioGeneral != null)
                {
                    ////Liberar memoria utlizada por el objeto servicioGeneral
                    System.Runtime.InteropServices.Marshal.ReleaseComObject(servicioGeneral);
                    System.GC.Collect();
                }
            }
            return(resultado);
        }
예제 #3
0
        /// <summary>
        /// Ingresa un nuevo registro a la tabla @TFECEANU y su hija
        /// @TFECEANUDET.
        /// </summary>
        /// <param name="comp"></param>
        /// <param name="maestro"></param>
        /// <returns></returns>
        public bool AlmacenarMaestro(Anulado certRechazado)
        {
            bool resultado = false;

            GeneralService        servicioGeneral = null;
            GeneralData           dataGeneral     = null;
            GeneralData           dataDetalle     = null;
            GeneralDataCollection detalle         = null;

            try
            {
                //Obtener el servicio general de la compañia
                servicioGeneral = ProcConexion.Comp.GetCompanyService().GetGeneralService("TTFECEANU");

                //Apuntar a la cabecera del udo
                dataGeneral = servicioGeneral.GetDataInterface(GeneralServiceDataInterfaces.gsGeneralData);

                //Establecer los valores para cada una de las propiedades del udo
                dataGeneral.SetProperty("U_SerieCert", certRechazado.SerieCertificado);
                dataGeneral.SetProperty("U_NumDoc", certRechazado.NumeroDocumento);
                dataGeneral.SetProperty("U_Version", certRechazado.Version);
                dataGeneral.SetProperty("U_RucEmisor", certRechazado.RucEmisor);
                dataGeneral.SetProperty("U_RucRecep", certRechazado.RucReceptor);
                dataGeneral.SetProperty("U_CantComp", certRechazado.CantidadComprobantes);
                dataGeneral.SetProperty("U_FeHoFir", certRechazado.FechaHoraFirma);

                detalle = dataGeneral.Child("TFECEANUDET");

                foreach (DetAnulado razonRechazo in certRechazado.DetalleRechazo)
                {
                    dataDetalle = detalle.Add();
                    dataDetalle.SetProperty("U_TipoCFE", razonRechazo.TipoCFE);
                    dataDetalle.SetProperty("U_SerieComp", razonRechazo.SerieComprobante);
                    dataDetalle.SetProperty("U_NumComp", razonRechazo.NumeroComprobante);
                    dataDetalle.SetProperty("U_FecComp", razonRechazo.FechaComprobante);
                    dataDetalle.SetProperty("U_CodAnu", razonRechazo.CodigoAnulacion);
                    dataDetalle.SetProperty("U_GlosaDoc", razonRechazo.GlosaRechazo);
                }

                ////Agregar el nuevo registro a la base de dato utilizando el servicio general de la compañia
                servicioGeneral.Add(dataGeneral);

                resultado = true;
            }
            catch (Exception)
            {
            }
            finally
            {
                if (servicioGeneral != null)
                {
                    ////Liberar memoria utlizada por el objeto servicioGeneral
                    System.Runtime.InteropServices.Marshal.ReleaseComObject(servicioGeneral);
                    System.GC.Collect();
                }
                if (dataGeneral != null)
                {
                    ////Liberar memoria utlizada por el objeto dataGeneral
                    System.Runtime.InteropServices.Marshal.ReleaseComObject(dataGeneral);
                    System.GC.Collect();
                }
                if (dataDetalle != null)
                {
                    ////Liberar memoria utlizada por el objeto dataDetalle
                    System.Runtime.InteropServices.Marshal.ReleaseComObject(dataDetalle);
                    System.GC.Collect();
                }
                if (detalle != null)
                {
                    ////Liberar memoria utlizada por el objeto detalle
                    System.Runtime.InteropServices.Marshal.ReleaseComObject(detalle);
                    System.GC.Collect();
                }
            }
            return(resultado);
        }
예제 #4
0
파일: ManteUdoRPTD.cs 프로젝트: ahazan/FE21
        /// <summary>
        /// Ingresa un nuevo registro a la tabla @TFERPTD.
        /// </summary>
        /// <param name="comp"></param>
        /// <param name="fechaReporte"></param>
        /// <param name="secuenciaEnvio"></param>
        /// <param name="fechaResumen"></param>
        /// <returns></returns>
        public bool Almacenar(MonitorRPTD rptd)
        {
            bool resultado = false;

            GeneralService        servicioGeneral = null;
            GeneralData           dataGeneral     = null;
            GeneralData           dataDetalle     = null;
            GeneralDataCollection detalle         = null;

            try
            {
                //Obtener el servicio general de la compañia
                servicioGeneral = ProcConexion.Comp.GetCompanyService().GetGeneralService("TTFERPTD");

                //Apuntar a la cabecera del udo
                dataGeneral = servicioGeneral.GetDataInterface(GeneralServiceDataInterfaces.gsGeneralData);

                //Establecer los valores a las propiedades del udo
                dataGeneral.SetProperty("U_Version", rptd.Version);
                dataGeneral.SetProperty("U_RucRec", rptd.RucReceptor);
                dataGeneral.SetProperty("U_RucEmi", rptd.RucEmisor);
                dataGeneral.SetProperty("U_NomArc", rptd.NombreArchivo);
                dataGeneral.SetProperty("U_FecRPTD", rptd.FechaRptd);
                dataGeneral.SetProperty("U_IdEmi", rptd.IdEmisor);
                dataGeneral.SetProperty("U_IdRec", rptd.IdReceptor);
                dataGeneral.SetProperty("U_SecEnvio", rptd.SecuenciaEnvio);
                dataGeneral.SetProperty("U_FecResum", rptd.FechaResumen);
                dataGeneral.SetProperty("U_Estado", rptd.Estado);

                detalle = dataGeneral.Child("TFERPTDDET");

                foreach (MonitorRPTDDET detalleRptd in rptd.Detalle)
                {
                    dataDetalle = detalle.Add();
                    dataDetalle.SetProperty("U_CodRec", detalleRptd.CodigoRechazo);
                    dataDetalle.SetProperty("U_GloRec", detalleRptd.GlosaRechazo);
                    dataDetalle.SetProperty("U_DetRec", detalleRptd.DetalleRechazo);
                }

                //Agregar el nuevo registro a la base de datos mediante el servicio general de la compañia
                servicioGeneral.Add(dataGeneral);

                resultado = true;
            }
            catch (Exception)
            {
            }
            finally
            {
                if (dataGeneral != null)
                {
                    //Liberar memoria utlizada por el objeto dataGeneral
                    System.Runtime.InteropServices.Marshal.ReleaseComObject(dataGeneral);
                    System.GC.Collect();
                }
                if (servicioGeneral != null)
                {
                    //Liberar la memoria utilizada por el objeto servicioGeneral
                    System.Runtime.InteropServices.Marshal.ReleaseComObject(servicioGeneral);
                    System.GC.Collect();
                }
                if (detalle != null)
                {
                    //Liberar la memoria utilizada por el objeto servicioGeneral
                    System.Runtime.InteropServices.Marshal.ReleaseComObject(detalle);
                    System.GC.Collect();
                }
                if (dataDetalle != null)
                {
                    //Liberar la memoria utilizada por el objeto servicioGeneral
                    System.Runtime.InteropServices.Marshal.ReleaseComObject(dataDetalle);
                    System.GC.Collect();
                }
            }
            return(resultado);
        }
예제 #5
0
        /// <summary>
        /// Ingresa un nuevo registro a la tabla @TFESOBREC y su hija
        /// @TFESOBRECDET.
        /// </summary>
        /// <param name="comp"></param>
        /// <param name="maestro"></param>
        /// <returns></returns>
        public bool AlmacenarMaestro(CertificadoRecibido certificado, string correo, string nombreSobre)
        {
            bool resultado = false;

            GeneralService        servicioGeneral = null;
            GeneralData           dataGeneral     = null;
            GeneralData           dataDetalle     = null;
            GeneralDataCollection detalle         = null;

            try
            {
                //Obtener el servicio general de la compañia
                servicioGeneral = ProcConexion.Comp.GetCompanyService().GetGeneralService("TTFESOBREC");

                //Apuntar a la cabecera del udo
                dataGeneral = servicioGeneral.GetDataInterface(GeneralServiceDataInterfaces.gsGeneralData);

                //Establecer los valores para cada una de las propiedades del udo
                dataGeneral.SetProperty("U_RucEmi", certificado.RucEmisor);
                dataGeneral.SetProperty("U_RucRec", certificado.RucReceptor);
                dataGeneral.SetProperty("U_FeSob", certificado.FechaSobre);
                dataGeneral.SetProperty("U_FeFir", certificado.FechaFirma);
                dataGeneral.SetProperty("U_TipoCFE", certificado.TipoCFE);
                dataGeneral.SetProperty("U_NumCom", certificado.NumeroComprobante);
                dataGeneral.SetProperty("U_SerCom", certificado.SerieComprobante);
                dataGeneral.SetProperty("U_DNroCAE", certificado.DNroCAE);
                dataGeneral.SetProperty("U_HNroCAE", certificado.HNroCAE);
                dataGeneral.SetProperty("U_FVenCAE", certificado.FVenCAE);
                dataGeneral.SetProperty("U_IdCons", certificado.IdConsecutio);
                dataGeneral.SetProperty("U_IdEmisor", certificado.IdEmisor);
                dataGeneral.SetProperty("U_NomSob", nombreSobre);
                dataGeneral.SetProperty("U_CorEmi", correo);
                dataGeneral.SetProperty("U_CanCfe", certificado.CantCFE);
                dataGeneral.SetProperty("U_RazSoc", certificado.RazonSocial);

                detalle = dataGeneral.Child("TFESOBRECDET");

                foreach (DetCertificadoRecibido certificadoDetalle in certificado.DetalleCertificadoRecibido)
                {
                    dataDetalle = detalle.Add();
                    dataDetalle.SetProperty("U_NumCom", certificadoDetalle.NumeroComprobante);
                    dataDetalle.SetProperty("U_SerCom", certificadoDetalle.SerieComprobante);
                    dataDetalle.SetProperty("U_TipCFE", certificadoDetalle.TipoCFE);
                    dataDetalle.SetProperty("U_NomItem", certificadoDetalle.NombreItem);
                    string temp = certificadoDetalle.Cantidad.ToString();
                    temp = temp.Replace(".", ",");
                    dataDetalle.SetProperty("U_Cant", temp);//
                    dataDetalle.SetProperty("U_PreUni", certificadoDetalle.PrecioUnitario);
                    dataDetalle.SetProperty("U_MonIte", certificadoDetalle.MontoItem);
                    dataDetalle.SetProperty("U_TpoMon", certificadoDetalle.TipoMoneda);
                }

                ////Agregar el nuevo registro a la base de dato utilizando el servicio general de la compañia
                servicioGeneral.Add(dataGeneral);

                resultado = true;
            }
            catch (Exception ex)
            {
                //SAPbouiCOM.Framework.Application.SBO_Application.MessageBox("ManteUdoCertificadoRecibido/Error: " + ex.ToString());
            }
            finally
            {
                if (dataGeneral != null)
                {
                    //Liberar memoria utlizada por el objeto dataGeneral
                    System.Runtime.InteropServices.Marshal.ReleaseComObject(dataGeneral);
                    System.GC.Collect();
                }
                if (dataDetalle != null)
                {
                    //Liberar memoria utlizada por el objeto dataDetalle
                    System.Runtime.InteropServices.Marshal.ReleaseComObject(dataDetalle);
                    System.GC.Collect();
                }
                if (detalle != null)
                {
                    //Liberar memoria utlizada por el objeto detalle
                    System.Runtime.InteropServices.Marshal.ReleaseComObject(detalle);
                    System.GC.Collect();
                }
                if (servicioGeneral != null)
                {
                    //Liberar memoria utlizada por el objeto servicioGeneral
                    System.Runtime.InteropServices.Marshal.ReleaseComObject(servicioGeneral);
                    System.GC.Collect();
                }
            }

            return(resultado);
        }
예제 #6
0
        /// <summary>
        /// Ingresa un nuevo registro a la tabla @TFECOMP y sus tablas de detalle
        /// @TFECOMPDET y @TFECOMPDET2.
        /// </summary>
        /// <param name="comp"></param>
        /// <param name="maestro"></param>
        /// <returns></returns>
        public bool AlmacenarMaestro(Comprobantes comprobante)
        {
            bool resultado = false;

            GeneralService        servicioGeneral = null;
            GeneralData           dataGeneral     = null;
            GeneralData           dataDetalle     = null;
            GeneralDataCollection detalle         = null;
            GeneralDataCollection detalle2        = null;

            try
            {
                //Obtener el servicio general de la compañia
                servicioGeneral = ProcConexion.Comp.GetCompanyService().GetGeneralService("TTFECOMP");

                //Apuntar a la cabecera del udo
                dataGeneral = servicioGeneral.GetDataInterface(GeneralServiceDataInterfaces.gsGeneralData);

                //Establecer los valores para cada una de las propiedades del udo
                dataGeneral.SetProperty("U_VerComp", comprobante.Version);
                dataGeneral.SetProperty("U_RucRec", comprobante.RucReceptor.ToString());
                dataGeneral.SetProperty("U_RucEmi", comprobante.RucEmisor.ToString());
                dataGeneral.SetProperty("U_IdResp", comprobante.IdRespuesta.ToString());
                dataGeneral.SetProperty("U_NomArc", comprobante.NombreArchivo);
                dataGeneral.SetProperty("U_FeHoEnRe", comprobante.FechaHoraRecepcion);
                dataGeneral.SetProperty("U_IdEmi", comprobante.IdEmisor.ToString());
                dataGeneral.SetProperty("U_IdRec", comprobante.IdReceptor.ToString());
                dataGeneral.SetProperty("U_CanComSob", comprobante.CantidadComprobantesSobre.ToString());
                dataGeneral.SetProperty("U_CanComRes", comprobante.CantidadComprobantesResponden.ToString());
                dataGeneral.SetProperty("U_CanCFEAce", comprobante.CantidadCFEAceptados.ToString());
                dataGeneral.SetProperty("U_CanCFERec", comprobante.CantidadCFERechazados.ToString());
                dataGeneral.SetProperty("U_CanCFCAce", comprobante.CantidadCFCAceptados.ToString());
                dataGeneral.SetProperty("U_CanCFCObs", comprobante.CantidadCFCObservados.ToString());
                dataGeneral.SetProperty("U_CanOTRRec", comprobante.CantidadOtrosRechazados.ToString());
                dataGeneral.SetProperty("U_FeHoFiEl", comprobante.FechaHoraFirma);

                detalle2 = dataGeneral.Child("TFECOMPDET2");

                //Agregar datos a la tabla de detalle
                foreach (DetComprobanteGlosa detalleGlosa in comprobante.DetalleGlosa)
                {
                    dataDetalle = detalle2.Add();
                    dataDetalle.SetProperty("U_CodMotRec", detalleGlosa.CodigoMotivoRechazo);
                    dataDetalle.SetProperty("U_GloMotRec", detalleGlosa.GlosaMotivo);
                    dataDetalle.SetProperty("U_DetRec", detalleGlosa.DetalleRechazo);
                }

                detalle = dataGeneral.Child("TFECOMPDET");

                //Agregar datos a la tabla de detalle
                foreach (DetComprobante detalleComprobante in comprobante.DetalleComprobante)
                {
                    dataDetalle = detalle.Add();
                    dataDetalle.SetProperty("U_NroOrd", detalleComprobante.NumeroOrdinal.ToString());
                    dataDetalle.SetProperty("U_TipoCFE", detalleComprobante.TipoCFE.ToString());
                    dataDetalle.SetProperty("U_SerComp", detalleComprobante.SerieComprobante);
                    dataDetalle.SetProperty("U_NumComp", detalleComprobante.NumeroComprobante.ToString());
                    dataDetalle.SetProperty("U_FecComp", detalleComprobante.FechaComprobante);
                    dataDetalle.SetProperty("U_FecFirEle", detalleComprobante.FechaHoraFirma);
                    dataDetalle.SetProperty("U_EstRec", detalleComprobante.EstadoRecepcion);
                    dataDetalle.SetProperty("U_TipoRec", detalleComprobante.TipoReceptor.ToString());
                }

                //Agregar el nuevo registro a la base de dato utilizando el servicio general de la compañia
                servicioGeneral.Add(dataGeneral);

                resultado = true;
            }
            catch (Exception ex)
            {
                // SAPbouiCOM.Framework.Application.SBO_Application.MessageBox("Error almacenar maestro " + ex.ToString());
            }
            finally
            {
                if (servicioGeneral != null)
                {
                    //Liberar memoria utlizada por el objeto servicioGeneral
                    System.Runtime.InteropServices.Marshal.ReleaseComObject(servicioGeneral);
                    System.GC.Collect();
                }
                if (dataGeneral != null)
                {
                    //Liberar memoria utlizada por el objeto dataGeneral
                    System.Runtime.InteropServices.Marshal.ReleaseComObject(dataGeneral);
                    System.GC.Collect();
                }
                if (dataDetalle != null)
                {
                    //Liberar memoria utlizada por el objeto dataDetalle
                    System.Runtime.InteropServices.Marshal.ReleaseComObject(dataDetalle);
                    System.GC.Collect();
                }
                if (detalle != null)
                {
                    //Liberar memoria utlizada por el objeto detalle
                    System.Runtime.InteropServices.Marshal.ReleaseComObject(detalle);
                    System.GC.Collect();
                }
                if (detalle2 != null)
                {
                    //Liberar memoria utlizada por el objeto detalle2
                    System.Runtime.InteropServices.Marshal.ReleaseComObject(detalle2);
                    System.GC.Collect();
                }
            }
            return(resultado);
        }
예제 #7
0
        /// <summary>
        /// 가져온 선수금 리스트를 선수금 GeneralDataCollection 에 설정하고 광고수금정산의 선수금 잔액을 갱신합니다.
        /// </summary>
        /// <param name="oChildren"></param>
        private void SetGeneralDataToChildrenForKIS_SD00502_HRD(ref GeneralDataCollection oChildren)
        {
            SAPbobsCOM.GeneralData oChild = null;
            try
            {
                //광고수금정산 엔트리번호
                string U_TENTRY = string.Empty;
                //적용된 선수금 금액
                string U_APPLAMT = "0";

                XDocument root = XDocument.Parse(oForm.DataSources.DataTables.Item("i_dt").SerializeAsXML(BoDataTableXmlSelect.dxs_DataOnly));

                var query =
                           from
                               c in root.Descendants("Row")
                           where c.Elements("Cells").Elements("Cell").Any(o => o.Element("ColumnUid").Value == "U_CHK" && o.Element("Value").Value == "Y")
                           select c;

                foreach (XElement r in query)
                {
                    oChild = oChildren.Add();

                    foreach (XElement c in r.Descendants("Cell"))
                    {
                        switch (c.Element("ColumnUid").Value)
                        {
                            case "OBJECT":
                                oChild.SetProperty("U_TTYPE", c.Element("Value").Value);
                                break;
                            case "DOCENTRY":
                                oChild.SetProperty("U_TENTRY", c.Element("Value").Value);
                                U_TENTRY = c.Element("Value").Value;
                                break;
                            case "U_APPLAMT":
                                oChild.SetProperty("U_APPLAMT", c.Element("Value").Value);
                                U_APPLAMT = c.Element("Value").Value;
                                break;
                            default:
                                break;
                        }
                    }

                    //광고수금 정산 문서에 처리된 선수금액 갱신
                    FN.GetRecordsetValue(string.Format("UPDATE T SET U_APPLAMT = U_APPLAMT + CONVERT(NUMERIC(19,6),'{0}') FROM [dbo].[@KIS_SD00802_HRD]T WHERE DocEntry = {1}", U_APPLAMT, U_TENTRY));

                    oChild = null;
                }
            }
            catch (Exception)
            {

                throw;
            }
            finally
            {
                oChild = null;
            }

        }
        public void CreateModelList(object parentCode)
        {
            Recordset rstExistsParent = (Recordset)SBOApp.Company.GetBusinessObject(BoObjectTypes.BoRecordset);
            string    sql             = "SELECT TOP 1 1 FROM [{0}] WHERE Code = '{1}'";

            sql = String.Format(sql, ParentTableName, parentCode);

            try
            {
                rstExistsParent.DoQuery(sql);

                if (rstExistsParent.RecordCount == 0)
                {
                    throw new Exception(String.Format("Código {0} do item pai não encontrado", parentCode));
                }
            }
            finally
            {
                Marshal.ReleaseComObject(rstExistsParent);
                rstExistsParent = null;
            }

            CompanyService oCompanyService = SBOApp.Company.GetCompanyService();
            GeneralService oGeneralService = oCompanyService.GetGeneralService(ParentTableName.Replace("@", ""));

            GeneralDataParams oGeneralParams = (GeneralDataParams)oGeneralService.GetDataInterface(SAPbobsCOM.GeneralServiceDataInterfaces.gsGeneralDataParams);

            oGeneralParams.SetProperty("Code", parentCode);

            GeneralData           oGeneralData = oGeneralService.GetByParams(oGeneralParams);
            GeneralDataCollection oChildren    = oGeneralData.Child(TableName.Replace("@", ""));
            GeneralData           oChild       = null;

            try
            {
                foreach (object model in ModelList)
                {
                    Model  = model;
                    oChild = oChildren.Add();

                    ModelControllerAttribute modelController;
                    object value;
                    // Percorre as propriedades do Model
                    foreach (PropertyInfo property in Model.GetType().GetProperties())
                    {
                        // Busca os Custom Attributes
                        foreach (Attribute attribute in property.GetCustomAttributes(true))
                        {
                            modelController = attribute as ModelControllerAttribute;
                            if (property.GetType() != typeof(DateTime))
                            {
                                value = property.GetValue(Model, null);
                            }
                            else
                            {
                                value = ((DateTime)property.GetValue(Model, null)).ToString("yyyy-MM-dd HH:mm:ss");
                            }

                            if (modelController != null)
                            {
                                // Se não for DataBaseField não seta nas properties
                                if (!modelController.DataBaseFieldYN)
                                {
                                    break;
                                }
                                if (String.IsNullOrEmpty(modelController.ColumnName))
                                {
                                    modelController.ColumnName = property.Name;
                                }
                                if (modelController.ColumnName == "Code" || modelController.ColumnName == "LineId")
                                {
                                    continue;
                                }

                                if (value == null)
                                {
                                    if (property.PropertyType == typeof(string))
                                    {
                                        value = String.Empty;
                                    }
                                    else if (property.PropertyType != typeof(DateTime) && property.PropertyType != typeof(Nullable <DateTime>))
                                    {
                                        value = 0;
                                    }
                                    else
                                    {
                                        value = new DateTime();
                                    }
                                }

                                if (property.PropertyType != typeof(decimal) && property.PropertyType != typeof(Nullable <decimal>))
                                {
                                    oChild.SetProperty(modelController.ColumnName, value);
                                }
                                else
                                {
                                    oChild.SetProperty(modelController.ColumnName, Convert.ToDouble(value));
                                }
                                break;
                            }
                        }
                    }
                }

                oGeneralService.Update(oGeneralData);
            }
            catch (Exception e)
            {
                throw e;
            }
            finally
            {
                Marshal.ReleaseComObject(oGeneralService);
                Marshal.ReleaseComObject(oGeneralData);
                Marshal.ReleaseComObject(oCompanyService);

                oGeneralService = null;
                oGeneralData    = null;
                oCompanyService = null;

                if (oChildren != null)
                {
                    Marshal.ReleaseComObject(oChildren);
                    oChildren = null;
                }
                if (oChild != null)
                {
                    Marshal.ReleaseComObject(oChild);
                    oChild = null;
                }
            }
        }