void ucGe_Menu_Mantenimiento_x_usuario_event_btnModificar_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { try { Info_OrdenGiro = (cp_orden_giro_Info)UltraGrid_OrdenGiro.GetFocusedRow(); if (Info_OrdenGiro == null) { MessageBox.Show("Seleccione una fila", "Sistemas", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } else { if (Info_OrdenGiro.Estado == "I") { MessageBox.Show("La Factura #: " + Info_OrdenGiro.co_serie + "-" + Info_OrdenGiro.co_factura + "/" + Info_OrdenGiro.IdCbteCble_Ogiro + " está anulada, solo puede consultar.", "Sistemas", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); llamaFRM(Cl_Enumeradores.eTipo_action.consultar, Info_OrdenGiro); } else { cp_orden_pago_det_Bus bus_opDet = new cp_orden_pago_det_Bus(); List <cp_orden_pago_det_Info> lista_opDet = new List <cp_orden_pago_det_Info>(); string mensaje = ""; lista_opDet = bus_opDet.Get_List_OrdenPagoDetalle(Info_OrdenGiro.IdEmpresa, Info_OrdenGiro.IdCbteCble_Ogiro, Info_OrdenGiro.IdTipoCbte_Ogiro, ref mensaje); if (lista_opDet.Count != 0) { MessageBox.Show("La Factura #: " + Info_OrdenGiro.co_serie + "-" + Info_OrdenGiro.co_factura + "/" + Info_OrdenGiro.IdCbteCble_Ogiro + " tiene asociadas Ordenes de Pago. No se puede modificar completamente", "Sistemas", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); llamaFRM(Cl_Enumeradores.eTipo_action.actualizar_proceso_cerrado, Info_OrdenGiro); return; } cp_retencion_Bus bus_Retencion = new cp_retencion_Bus(); cp_retencion_Info info = new cp_retencion_Info(); info = bus_Retencion.Get_Info_retencion(Info_OrdenGiro.IdEmpresa, Info_OrdenGiro.IdCbteCble_Ogiro, Info_OrdenGiro.IdTipoCbte_Ogiro); if (info != null) { llamaFRM(Cl_Enumeradores.eTipo_action.actualizar, Info_OrdenGiro); } } } } catch (Exception ex) { Log_Error_bus.Log_Error(ex.ToString()); MessageBox.Show(ex.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
public bool GrabarDB() { try { Get_OrdenPago(); Get_Comprobante_contable(); Get_Historico_cancelacion(); bool bandera_sigrabo = false; decimal id_OP = 0; decimal id_detalle_OP = 0; string mensajeError = ""; int idliquidacion = 0; decimal IdCbteCble = 0; if (Bus_Orden_pago.GuardaDB(Info_Orden_Pago, ref id_OP, ref mensajeError)) { int sec = 0; if (Bus_comprobante_contable.GrabarDB(Info_comprobante_Contable, ref IdCbteCble, ref mensajeError)) { cp_orden_pago_det_Bus detalle = new cp_orden_pago_det_Bus(); foreach (var item in Info_Orden_Pago.Detalle) { item.IdOrdenPago = id_OP; item.IdEmpresa = Info_comprobante_Contable.IdEmpresa; item.IdEmpresa_cxp = param.IdEmpresa; item.IdCbteCble_cxp = IdCbteCble; item.IdTipoCbte_cxp = Info_comprobante_Contable.IdTipoCbte; if (detalle.ModificarDB(item, ref id_detalle_OP, ref mensajeError)) { Info_historico_cancelacion.IdEmpresa = param.IdEmpresa; Info_historico_cancelacion.IdOrdenPago = id_OP; Info_historico_cancelacion.IdEmpresa_OP = Info_Orden_Pago.IdEmpresa; if (Bus_liquidacion_vacaciones.GrabarBD(Info_historico_cancelacion)) { bandera_sigrabo = true; if (bandera_sigrabo) { foreach (var item_ in Info_historico_cancelacion.detalle) { sec = sec + 1; if (sec == 1) { bus_detalle.Eliminar(item_); } item_.Sec = sec; item_.IdEmpresa = Info_historico_cancelacion.IdEmpresa; item_.IdEmpleado = Convert.ToInt32(Info_historico_cancelacion.IdEmpleado); item_.IdSolicitud_Vacaciones = Info_historico_cancelacion.IdSolicitud_Vacaciones; item_.IdNominatipo = Info_historico_cancelacion.IdNomina_Tipo; bandera_sigrabo = bus_detalle.Guardar_DB(item_); } if (MessageBox.Show("¿Desea imprimir la novedad?", "REMPLAZO POR EMPLEADO " + param.Nombre_sistema, MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { Imprimir(Info_historico_cancelacion.IdEmpresa, Info_historico_cancelacion.IdEmpleado, Info_historico_cancelacion.IdSolicitud_Vacaciones); } } } } } } } return(bandera_sigrabo); } catch (Exception ex) { MessageBox.Show(ex.Message); Log_Error_bus.Log_Error(ex.ToString()); return(false); } }
public bool GrabarDB() { try { Get_OrdenPago(); Get_Comprobante_contable(); Get_Historico_cancelacion(); bool bandera_sigrabo = false; decimal id_OP = 0; decimal id_detalle_OP = 0; string mensajeError = ""; int IdSolicitud = 0; decimal IdCbteCble = 0; if (Bus_Orden_pago.GuardaDB(Info_Orden_Pago, ref id_OP, ref mensajeError)) { int sec = 0; if (Bus_comprobante_contable.GrabarDB(Info_comprobante_Contable, ref IdCbteCble, ref mensajeError)) { cp_orden_pago_det_Bus detalle = new cp_orden_pago_det_Bus(); foreach (var item in Info_Orden_Pago.Detalle) { item.IdOrdenPago = id_OP; item.IdEmpresa = Info_comprobante_Contable.IdEmpresa; item.IdEmpresa_cxp = param.IdEmpresa; item.IdCbteCble_cxp = IdCbteCble; item.IdTipoCbte_cxp = Info_comprobante_Contable.IdTipoCbte; if (detalle.ModificarDB(item, ref id_detalle_OP, ref mensajeError)) { Info_historico_cancelacion.IdEmpresa = param.IdEmpresa; Info_historico_cancelacion.IdOrdenPago = id_OP; Info_historico_cancelacion.IdEmpresa_OP = Info_Orden_Pago.IdEmpresa; if (Bus_liquidacion_vacaciones.GrabarBD(Info_historico_cancelacion)) { bandera_sigrabo = true; if (bandera_sigrabo) { foreach (var item_ in Info_historico_cancelacion.detalle) { item_.IdSolicitud_Vacaciones = IdSolicitud; sec = sec + 1; if (sec == 1) { bus_detalle.Eliminar(item_); } item_.Sec = sec; item_.IdEmpresa = Info_historico_cancelacion.IdEmpresa; item_.IdEmpleado = Convert.ToInt32(Info_historico_cancelacion.IdEmpleado); item_.IdNominatipo = Info_historico_cancelacion.IdNomina_Tipo; bandera_sigrabo = bus_detalle.Guardar_DB(item_); } foreach (var item_nov in lista_novedas) { if (item_nov.check == true) { ro_Historico_Liquidacion_Vacaciones_Det_DescNovedad_Info info_ = new ro_Historico_Liquidacion_Vacaciones_Det_DescNovedad_Info(); info_.IdEmpresa = item_nov.IdEmpresa; info_.IdNomina_tipo = item_nov.IdNomina; info_.IdEmpleado = item_nov.IdEmpleado; info_.IdNomina_Tipo_Liq = item_nov.IdNominaLiqui; info_.IdSolicitud_Vacaciones = IdSolicitud; info_.IdNovedad = item_nov.IdNovedad; info_.Secuencia = item_nov.Secuencia; info_.IdRubro = item_nov.IdRubro; info_.Valor = item_nov.Valor; bus_detalle_nov.Guardar_DB(info_); } } } } } } } } return(bandera_sigrabo); } catch (Exception ex) { MessageBox.Show(ex.Message); Log_Error_bus.Log_Error(ex.ToString()); return(false); } }
public bool Contabilizar_proceso(ba_Archivo_Transferencia_Info info_archivo, tb_banco_procesos_bancarios_x_empresa_Info info_procesos_x_empresa, string Origen) { try { bool res = false; if (info_archivo.Contabilizado != true) { decimal IdCbteCble = 0; decimal Valor_total = 0; string Observacion = ""; int cont = 0; info_Cbtecble_ban = new ba_Cbte_Ban_Info(); info_cbte_ban_tipo_x_cbtecble = bus_cbte_ban_tipo_x_cbtecble.Get_info_Cbte_Ban_tipo_x_ct_CbteCble_tipo(info_archivo.IdEmpresa, "NDBA"); info_banco_cta = bus_banco_cta.Get_Info_Banco_Cuenta(info_archivo.IdEmpresa, info_archivo.IdBanco); List <cp_orden_pago_cancelaciones_Info> list_op_cancelaciones = new List <cp_orden_pago_cancelaciones_Info>(); List <ba_Archivo_Transferencia_Det> list_archivo_detalle_act = new List <ba_Archivo_Transferencia_Det>(); switch (info_archivo.IdProceso_bancario) { case "PAGO_PROVEEDORES_BOL": #region Pago a proveedores del bolivariano var list_secuenciales = (from q in info_archivo.Lst_Archivo_Transferencia_Det group q by new { q.Secuencial_reg_x_proceso } into secuenciales select new { secuencial = secuenciales.Key.Secuencial_reg_x_proceso == null ? 0 : Convert.ToDecimal(secuenciales.Key.Secuencial_reg_x_proceso) }); foreach (var item in list_secuenciales.OrderBy(q => q.secuencial)) { //OBTENGO LA LISTA DE OP PARA HACER DIARIOS POR PROVEEDOR list_op_cancelaciones = new List <cp_orden_pago_cancelaciones_Info>(); List <decimal> list_op = new List <decimal>(); foreach (var det_archivo in info_archivo.Lst_Archivo_Transferencia_Det.Where(q => q.Secuencial_reg_x_proceso == item.secuencial).ToList()) { list_op.Add(det_archivo.IdOrdenPago == null ? 0 : (decimal)det_archivo.IdOrdenPago); } List <cp_orden_pago_det_Info> list_op_det = new List <cp_orden_pago_det_Info>(); cp_orden_pago_det_Bus bus_op_det = new cp_orden_pago_det_Bus(); //OBTENGO LA LISTA DE LAS OP PARA MATAR CON LA NDBA list_op_det = bus_op_det.Get_list_orden_pago_con_cta_acreedora(info_archivo.IdEmpresa, list_op); #region Armo cabecera diario info_Cbtecble_ban.info_Cbtecble = new ct_Cbtecble_Info(); info_Cbtecble_ban.IdEmpresa = info_Cbtecble_ban.info_Cbtecble.IdEmpresa = info_archivo.IdEmpresa; info_Cbtecble_ban.IdTipocbte = info_Cbtecble_ban.info_Cbtecble.IdTipoCbte = info_cbte_ban_tipo_x_cbtecble.IdTipoCbteCble; info_Cbtecble_ban.IdCbteCble = info_Cbtecble_ban.info_Cbtecble.IdCbteCble = 0; info_Cbtecble_ban.IdPeriodo = info_Cbtecble_ban.info_Cbtecble.IdPeriodo = (info_archivo.Fecha.Year * 100) + info_archivo.Fecha.Month; info_Cbtecble_ban.cb_Fecha = info_Cbtecble_ban.info_Cbtecble.cb_Fecha = info_archivo.Fecha; info_Cbtecble_ban.cb_secuencia = info_Cbtecble_ban.info_Cbtecble.Secuencia = 0; info_Cbtecble_ban.info_Cbtecble.Anio = info_archivo.Fecha.Year; info_Cbtecble_ban.info_Cbtecble.Mes = info_archivo.Fecha.Month; info_Cbtecble_ban.IdUsuario = info_Cbtecble_ban.info_Cbtecble.IdUsuario = info_archivo.IdUsuario; info_Cbtecble_ban.Fecha_Transac = info_Cbtecble_ban.info_Cbtecble.cb_FechaTransac = DateTime.Now; info_Cbtecble_ban.IdSucursal = info_Cbtecble_ban.info_Cbtecble.IdSucursal = 1; info_Cbtecble_ban.cb_ChequeImpreso = "N"; info_Cbtecble_ban.info_Cbtecble.Mayorizado = "N"; info_Cbtecble_ban.info_Cbtecble._cbteCble_det_lista_info = new List <ct_Cbtecble_det_Info>(); info_Cbtecble_ban.Estado = info_Cbtecble_ban.info_Cbtecble.Estado = "A"; #endregion #region Armo detalle diario Valor_total = 0; Observacion = "OB# " + item.secuencial + " NDBA x " + info_archivo.IdProceso_bancario + " # " + info_archivo.IdArchivo.ToString(); cont = 0; foreach (var det_op in list_op_det) { if (cont == 0) { Observacion += " " + det_op.IdTipo_Persona + ": [" + det_op.IdEntidad.ToString() + "] " + det_op.pr_nombre.Trim(); cont++; } //validacion si llega una op para adjuntar como referencia if (det_op.Referencia == null) { Observacion += ", OP#" + det_op.IdOrdenPago; } else { Observacion += ", " + det_op.Referencia; } Valor_total += Convert.ToDecimal(Math.Round(det_op.Valor_a_pagar, 2, MidpointRounding.AwayFromZero)); ct_Cbtecble_det_Info Debe = new ct_Cbtecble_det_Info(); Debe.IdEmpresa = info_Cbtecble_ban.info_Cbtecble.IdEmpresa; Debe.IdTipoCbte = info_Cbtecble_ban.info_Cbtecble.IdTipoCbte; Debe.IdCbteCble = 0; Debe.secuencia = 0; Debe.IdCtaCble = det_op.IdCtaCble_Acreedora; Debe.dc_Valor = Convert.ToDouble(Math.Round(Convert.ToDecimal(det_op.Valor_a_pagar), 2, MidpointRounding.AwayFromZero)); Debe.dc_Observacion = "OB# " + item.secuencial + " NDBA x " + info_archivo.IdProceso_bancario + " # " + info_archivo.IdArchivo.ToString() + " " + det_op.IdTipo_Persona + ": [" + det_op.IdEntidad.ToString() + "] " + det_op.pr_nombre.Trim() + " " + det_op.Referencia; info_Cbtecble_ban.info_Cbtecble._cbteCble_det_lista_info.Add(Debe); //Cabecera de cbte bancario necesita id proveedor info_Cbtecble_ban.IdProveedor = det_op.IdEntidad; #region Cancelaciones x op cp_orden_pago_cancelaciones_Info info_op_cancelaciones = new cp_orden_pago_cancelaciones_Info(); info_op_cancelaciones.IdEmpresa = info_archivo.IdEmpresa; info_op_cancelaciones.Idcancelacion = 0; info_op_cancelaciones.Secuencia = 0; info_op_cancelaciones.IdEmpresa_op = det_op.IdEmpresa; info_op_cancelaciones.IdOrdenPago_op = det_op.IdOrdenPago; info_op_cancelaciones.Secuencia_op = det_op.Secuencia; info_op_cancelaciones.IdEmpresa_cxp = det_op.IdEmpresa_cxp; info_op_cancelaciones.IdTipoCbte_cxp = det_op.IdTipoCbte_cxp; info_op_cancelaciones.IdCbteCble_cxp = det_op.IdCbteCble_cxp; info_op_cancelaciones.MontoAplicado = det_op.Valor_a_pagar; info_op_cancelaciones.SaldoActual = 0; info_op_cancelaciones.SaldoAnterior = 0; info_op_cancelaciones.Observacion = "Canc./ de OP con Archivo bancario x " + info_archivo.IdProceso_bancario + " #" + info_archivo.IdArchivo.ToString(); info_op_cancelaciones.fechaTransaccion = info_archivo.Fecha; list_op_cancelaciones.Add(info_op_cancelaciones); #endregion } ct_Cbtecble_det_Info Haber = new ct_Cbtecble_det_Info(); Haber.IdEmpresa = info_Cbtecble_ban.info_Cbtecble.IdEmpresa; Haber.IdTipoCbte = info_Cbtecble_ban.info_Cbtecble.IdTipoCbte; Haber.IdCbteCble = 0; Haber.secuencia = 0; Haber.IdCtaCble = info_banco_cta.IdCtaCble; Haber.dc_Valor = Convert.ToDouble(Math.Round(Valor_total, 2, MidpointRounding.AwayFromZero)) * -1; Haber.dc_Observacion = Observacion; Haber.dc_para_conciliar = true; info_Cbtecble_ban.info_Cbtecble._cbteCble_det_lista_info.Add(Haber); #endregion info_Cbtecble_ban.cb_Valor = info_Cbtecble_ban.info_Cbtecble.cb_Valor = Convert.ToDouble(Math.Round(Valor_total, 2, MidpointRounding.AwayFromZero)); info_Cbtecble_ban.cb_Observacion = info_Cbtecble_ban.info_Cbtecble.cb_Observacion = Observacion; IdCbteCble = 0; #region Grabar if (bus_Cbtecble_conta.GrabarDB(info_Cbtecble_ban.info_Cbtecble, ref IdCbteCble, ref mensaje_error)) { info_Cbtecble_ban.IdBanco = info_archivo.IdBanco; info_Cbtecble_ban.IdCbteCble = IdCbteCble; info_Cbtecble_ban.IdTipoNota = info_procesos_x_empresa.IdTipoNota; bus_Cbtecble_ban.GrabarDB(info_Cbtecble_ban, ref mensaje_error); var list_agrup = (from q in list_op_cancelaciones group q by new { q.IdEmpresa, q.Idcancelacion, q.Secuencia, q.IdEmpresa_op, q.IdOrdenPago_op, q.Secuencia_op, q.IdEmpresa_cxp, q.IdTipoCbte_cxp, q.IdCbteCble_cxp, q.MontoAplicado, q.SaldoActual, q.SaldoAnterior, q.Observacion, q.fechaTransaccion } into Lista_agrupada select new { Lista_agrupada.Key.IdEmpresa, Lista_agrupada.Key.Idcancelacion, Lista_agrupada.Key.Secuencia, Lista_agrupada.Key.IdEmpresa_op, Lista_agrupada.Key.IdOrdenPago_op, Lista_agrupada.Key.Secuencia_op, Lista_agrupada.Key.IdEmpresa_cxp, Lista_agrupada.Key.IdTipoCbte_cxp, Lista_agrupada.Key.IdCbteCble_cxp, Lista_agrupada.Key.MontoAplicado, Lista_agrupada.Key.SaldoActual, Lista_agrupada.Key.SaldoAnterior, Lista_agrupada.Key.Observacion, Lista_agrupada.Key.fechaTransaccion }); list_op_cancelaciones = new List <cp_orden_pago_cancelaciones_Info>(); foreach (var cancelacion in list_agrup) { cp_orden_pago_cancelaciones_Info info_can = new cp_orden_pago_cancelaciones_Info(); info_can.IdEmpresa = cancelacion.IdEmpresa; info_can.Idcancelacion = cancelacion.Idcancelacion; info_can.Secuencia = cancelacion.Secuencia; info_can.IdEmpresa_op = cancelacion.IdEmpresa_op; info_can.IdOrdenPago_op = cancelacion.IdOrdenPago_op; info_can.Secuencia_op = cancelacion.Secuencia_op; info_can.IdEmpresa_cxp = cancelacion.IdEmpresa_cxp; info_can.IdTipoCbte_cxp = cancelacion.IdTipoCbte_cxp; info_can.IdCbteCble_cxp = cancelacion.IdCbteCble_cxp; info_can.MontoAplicado = cancelacion.MontoAplicado; info_can.SaldoActual = cancelacion.SaldoActual; info_can.SaldoAnterior = cancelacion.SaldoAnterior; info_can.Observacion = cancelacion.Observacion; info_can.fechaTransaccion = cancelacion.fechaTransaccion; info_can.IdEmpresa_pago = info_Cbtecble_ban.info_Cbtecble.IdEmpresa; info_can.IdTipoCbte_pago = info_Cbtecble_ban.info_Cbtecble.IdTipoCbte; info_can.IdCbteCble_pago = IdCbteCble; list_op_cancelaciones.Add(info_can); } bus_op_cancelaciones.GuardarDB(list_op_cancelaciones, info_archivo.IdEmpresa, ref mensaje_error); } #endregion } res = true; info_archivo.Contabilizado = true; #endregion break; default: if (info_archivo.Origen_Archivo != "RRHH") { #region Pago a proveedores que tengan op //OBTENGO LA LISTA DE OP PARA HACER DIARIOS POR PROVEEDOR List <decimal> list_op_x_canc = new List <decimal>(); foreach (var det_archivo in info_archivo.Lst_Archivo_Transferencia_Det) { list_op_x_canc.Add(det_archivo.IdOrdenPago == null ? 0 : (decimal)det_archivo.IdOrdenPago); } List <cp_orden_pago_det_Info> list_op_det_x_cancelar = new List <cp_orden_pago_det_Info>(); cp_orden_pago_det_Bus bus_op_det_x_cancelar = new cp_orden_pago_det_Bus(); //OBTENGO LA LISTA DE LAS OP PARA MATAR CON LA NDBA list_op_det_x_cancelar = bus_op_det_x_cancelar.Get_list_orden_pago_con_cta_acreedora(info_archivo.IdEmpresa, list_op_x_canc); foreach (var det_op in list_op_det_x_cancelar) { list_op_cancelaciones = new List <cp_orden_pago_cancelaciones_Info>(); #region Armo cabecera diario info_Cbtecble_ban.info_Cbtecble = new ct_Cbtecble_Info(); info_Cbtecble_ban.IdEmpresa = info_Cbtecble_ban.info_Cbtecble.IdEmpresa = info_archivo.IdEmpresa; info_Cbtecble_ban.IdTipocbte = info_Cbtecble_ban.info_Cbtecble.IdTipoCbte = info_cbte_ban_tipo_x_cbtecble.IdTipoCbteCble; info_Cbtecble_ban.IdCbteCble = info_Cbtecble_ban.info_Cbtecble.IdCbteCble = 0; info_Cbtecble_ban.IdPeriodo = info_Cbtecble_ban.info_Cbtecble.IdPeriodo = (info_archivo.Fecha.Year * 100) + info_archivo.Fecha.Month; info_Cbtecble_ban.cb_Fecha = info_Cbtecble_ban.info_Cbtecble.cb_Fecha = info_archivo.Fecha; info_Cbtecble_ban.cb_secuencia = info_Cbtecble_ban.info_Cbtecble.Secuencia = 0; info_Cbtecble_ban.info_Cbtecble.Anio = info_archivo.Fecha.Year; info_Cbtecble_ban.info_Cbtecble.Mes = info_archivo.Fecha.Month; info_Cbtecble_ban.IdUsuario = info_Cbtecble_ban.info_Cbtecble.IdUsuario = info_archivo.IdUsuario; info_Cbtecble_ban.Fecha_Transac = info_Cbtecble_ban.info_Cbtecble.cb_FechaTransac = DateTime.Now; info_Cbtecble_ban.IdSucursal = info_Cbtecble_ban.info_Cbtecble.IdSucursal = 1; info_Cbtecble_ban.cb_ChequeImpreso = "N"; info_Cbtecble_ban.info_Cbtecble.Mayorizado = "N"; info_Cbtecble_ban.info_Cbtecble._cbteCble_det_lista_info = new List <ct_Cbtecble_det_Info>(); info_Cbtecble_ban.Estado = info_Cbtecble_ban.info_Cbtecble.Estado = "A"; #endregion #region Armo detalle diario Valor_total = 0; Observacion = info_archivo.IdProceso_bancario + " # " + info_archivo.IdArchivo.ToString(); cont = 0; if (cont == 0) { Observacion += " " + det_op.IdTipo_Persona + ": [" + det_op.IdEntidad.ToString() + "] " + det_op.pr_nombre.Trim(); cont++; } Observacion += ", " + det_op.Referencia; Valor_total += Convert.ToDecimal(Math.Round(det_op.Valor_a_pagar, 2, MidpointRounding.AwayFromZero)); ct_Cbtecble_det_Info Debe = new ct_Cbtecble_det_Info(); Debe.IdEmpresa = info_Cbtecble_ban.info_Cbtecble.IdEmpresa; Debe.IdTipoCbte = info_Cbtecble_ban.info_Cbtecble.IdTipoCbte; Debe.IdCbteCble = 0; Debe.secuencia = 0; Debe.IdCtaCble = det_op.IdCtaCble_Acreedora; Debe.dc_Valor = Convert.ToDouble(Math.Round(Convert.ToDecimal(det_op.Valor_a_pagar), 2, MidpointRounding.AwayFromZero)); Debe.dc_Observacion = info_archivo.IdProceso_bancario + " # " + info_archivo.IdArchivo.ToString() + " " + det_op.IdTipo_Persona + ": [" + det_op.IdEntidad.ToString() + "] " + det_op.pr_nombre.Trim() + " " + det_op.Referencia; info_Cbtecble_ban.info_Cbtecble._cbteCble_det_lista_info.Add(Debe); //Cabecera de cbte bancario necesita id proveedor info_Cbtecble_ban.IdProveedor = det_op.IdEntidad; #region Cancelaciones x op cp_orden_pago_cancelaciones_Info info_op_cancelaciones = new cp_orden_pago_cancelaciones_Info(); info_op_cancelaciones.IdEmpresa = info_archivo.IdEmpresa; info_op_cancelaciones.Idcancelacion = 0; info_op_cancelaciones.Secuencia = 0; info_op_cancelaciones.IdEmpresa_op = det_op.IdEmpresa; info_op_cancelaciones.IdOrdenPago_op = det_op.IdOrdenPago; info_op_cancelaciones.Secuencia_op = det_op.Secuencia; info_op_cancelaciones.IdEmpresa_cxp = det_op.IdEmpresa_cxp; info_op_cancelaciones.IdTipoCbte_cxp = det_op.IdTipoCbte_cxp; info_op_cancelaciones.IdCbteCble_cxp = det_op.IdCbteCble_cxp; info_op_cancelaciones.MontoAplicado = det_op.Valor_a_pagar; info_op_cancelaciones.SaldoActual = 0; info_op_cancelaciones.SaldoAnterior = 0; info_op_cancelaciones.Observacion = "Canc./ de OP con Archivo bancario x " + info_archivo.IdProceso_bancario + " #" + info_archivo.IdArchivo.ToString(); info_op_cancelaciones.fechaTransaccion = info_archivo.Fecha; list_op_cancelaciones.Add(info_op_cancelaciones); #endregion ct_Cbtecble_det_Info Haber_op = new ct_Cbtecble_det_Info(); Haber_op.IdEmpresa = info_Cbtecble_ban.info_Cbtecble.IdEmpresa; Haber_op.IdTipoCbte = info_Cbtecble_ban.info_Cbtecble.IdTipoCbte; Haber_op.IdCbteCble = 0; Haber_op.secuencia = 0; Haber_op.IdCtaCble = info_banco_cta.IdCtaCble; Haber_op.dc_Valor = Convert.ToDouble(Math.Round(Valor_total, 2, MidpointRounding.AwayFromZero)) * -1; Haber_op.dc_Observacion = Observacion; Haber_op.dc_para_conciliar = true; info_Cbtecble_ban.info_Cbtecble._cbteCble_det_lista_info.Add(Haber_op); #endregion info_Cbtecble_ban.cb_Valor = info_Cbtecble_ban.info_Cbtecble.cb_Valor = Convert.ToDouble(Math.Round(Valor_total, 2, MidpointRounding.AwayFromZero)); info_Cbtecble_ban.cb_Observacion = info_Cbtecble_ban.info_Cbtecble.cb_Observacion = Observacion; IdCbteCble = 0; #region Grabar if (bus_Cbtecble_conta.GrabarDB(info_Cbtecble_ban.info_Cbtecble, ref IdCbteCble, ref mensaje_error)) { info_Cbtecble_ban.IdBanco = info_archivo.IdBanco; info_Cbtecble_ban.IdCbteCble = IdCbteCble; info_Cbtecble_ban.IdTipoNota = info_procesos_x_empresa.IdTipoNota; bus_Cbtecble_ban.GrabarDB(info_Cbtecble_ban, ref mensaje_error); ba_Archivo_Transferencia_Det_Info info_archivo_det = new ba_Archivo_Transferencia_Det_Info(); info_archivo_det = info_archivo.Lst_Archivo_Transferencia_Det.FirstOrDefault(q => q.IdEmpresa_OP == det_op.IdEmpresa && q.IdOrdenPago == det_op.IdOrdenPago && q.Secuencia_OP == det_op.Secuencia); if (info_archivo_det != null) { info_archivo_det.IdEmpresa_pago = info_Cbtecble_ban.IdEmpresa; info_archivo_det.IdTipoCbte_pago = info_Cbtecble_ban.IdTipocbte; info_archivo_det.IdCbteCble_pago = info_Cbtecble_ban.IdCbteCble; bus_archivo_det.ModificarDB(info_archivo_det); } var list_agrup = (from q in list_op_cancelaciones group q by new { q.IdEmpresa, q.Idcancelacion, q.Secuencia, q.IdEmpresa_op, q.IdOrdenPago_op, q.Secuencia_op, q.IdEmpresa_cxp, q.IdTipoCbte_cxp, q.IdCbteCble_cxp, q.MontoAplicado, q.SaldoActual, q.SaldoAnterior, q.Observacion, q.fechaTransaccion } into Lista_agrupada select new { Lista_agrupada.Key.IdEmpresa, Lista_agrupada.Key.Idcancelacion, Lista_agrupada.Key.Secuencia, Lista_agrupada.Key.IdEmpresa_op, Lista_agrupada.Key.IdOrdenPago_op, Lista_agrupada.Key.Secuencia_op, Lista_agrupada.Key.IdEmpresa_cxp, Lista_agrupada.Key.IdTipoCbte_cxp, Lista_agrupada.Key.IdCbteCble_cxp, Lista_agrupada.Key.MontoAplicado, Lista_agrupada.Key.SaldoActual, Lista_agrupada.Key.SaldoAnterior, Lista_agrupada.Key.Observacion, Lista_agrupada.Key.fechaTransaccion }); list_op_cancelaciones = new List <cp_orden_pago_cancelaciones_Info>(); foreach (var cancelacion in list_agrup) { cp_orden_pago_cancelaciones_Info info_can = new cp_orden_pago_cancelaciones_Info(); info_can.IdEmpresa = cancelacion.IdEmpresa; info_can.Idcancelacion = cancelacion.Idcancelacion; info_can.Secuencia = cancelacion.Secuencia; info_can.IdEmpresa_op = cancelacion.IdEmpresa_op; info_can.IdOrdenPago_op = cancelacion.IdOrdenPago_op; info_can.Secuencia_op = cancelacion.Secuencia_op; info_can.IdEmpresa_cxp = cancelacion.IdEmpresa_cxp; info_can.IdTipoCbte_cxp = cancelacion.IdTipoCbte_cxp; info_can.IdCbteCble_cxp = cancelacion.IdCbteCble_cxp; info_can.MontoAplicado = cancelacion.MontoAplicado; info_can.SaldoActual = cancelacion.SaldoActual; info_can.SaldoAnterior = cancelacion.SaldoAnterior; info_can.Observacion = cancelacion.Observacion; info_can.fechaTransaccion = cancelacion.fechaTransaccion; info_can.IdEmpresa_pago = info_Cbtecble_ban.info_Cbtecble.IdEmpresa; info_can.IdTipoCbte_pago = info_Cbtecble_ban.info_Cbtecble.IdTipoCbte; info_can.IdCbteCble_pago = IdCbteCble; list_op_cancelaciones.Add(info_can); } bus_op_cancelaciones.GuardarDB(list_op_cancelaciones, info_archivo.IdEmpresa, ref mensaje_error); } } #endregion res = true; info_archivo.Contabilizado = true; #endregion } break; } Actualizar_estado_contabilizacion(info_archivo); } return(res); } catch (Exception ex) { Core.Erp.Info.Log_Exception.LoggingManager.Logger.Log(Core.Erp.Info.Log_Exception.LoggingCategory.Error, ex.Message); throw new Core.Erp.Info.Log_Exception.DalException(string.Format("", "Get_List_Archivo_transferencia", ex.Message), ex) { EntityType = typeof(ba_Archivo_Transferencia_Bus) }; } }