public Boolean Eliminar_OrdenPagoCancelaciones(cp_orden_pago_cancelaciones_Info Info, ref string mensaje)
 {
     try
     {
         using (EntitiesCuentasxPagar CxP = new EntitiesCuentasxPagar())
         {
             var eliminar = CxP.cp_orden_pago_cancelaciones.FirstOrDefault(v => v.IdEmpresa == Info.IdEmpresa && v.Idcancelacion == Info.Idcancelacion);
             if (eliminar != null)
             {
                 CxP.cp_orden_pago_cancelaciones.Remove(eliminar);
                 CxP.SaveChanges();
             }
         }
         return(true);
     }
     catch (Exception ex)
     {
         string arreglo = ToString();
         tb_sis_Log_Error_Vzen_Data oDataLog      = new tb_sis_Log_Error_Vzen_Data();
         tb_sis_Log_Error_Vzen_Info Log_Error_sis = new tb_sis_Log_Error_Vzen_Info(ex.ToString(), "", arreglo, "",
                                                                                   "", "", "", "", DateTime.Now);
         oDataLog.Guardar_Log_Error(Log_Error_sis, ref mensaje);
         mensaje = ex.ToString() + " " + ex.Message;
         throw new Exception(ex.ToString());
     }
 }
        public ActionResult EditingUpdateFactura([ModelBinder(typeof(DevExpressEditorsBinder))] cp_orden_pago_cancelaciones_Info info_det)
        {
            List_op.UpdateRow(info_det, Convert.ToDecimal(SessionFixed.IdTransaccionSessionActual));
            var model = List_op.get_list(Convert.ToDecimal(SessionFixed.IdTransaccionSessionActual));

            return(PartialView("_GridViewPartial_cheque_op", model));
        }
        public Boolean GuardarDB(cp_orden_pago_cancelaciones_Info Info, int Id, ref string mensaje)
        {
            try
            {
                decimal IdCancelacion = GetIdcancelacion(Id);

                using (EntitiesCuentasxPagar Context = new EntitiesCuentasxPagar())
                {
                    cp_orden_pago_cancelaciones Cabe = new cp_orden_pago_cancelaciones();

                    Cabe.IdEmpresa            = Info.IdEmpresa;
                    Cabe.Idcancelacion        = IdCancelacion;
                    Cabe.Secuencia            = Info.Secuencia;
                    Cabe.IdEmpresa_op         = Info.IdEmpresa_op;
                    Cabe.IdOrdenPago_op       = (Info.IdOrdenPago_op == null) ? 0 : Convert.ToDecimal(Info.IdOrdenPago_op);
                    Cabe.Secuencia_op         = (Info.Secuencia_op == null) ? 0 : Convert.ToInt32(Info.Secuencia_op);
                    Cabe.IdEmpresa_op_padre   = Info.IdEmpresa_op_padre;
                    Cabe.IdOrdenPago_op_padre = Info.IdOrdenPago_op_padre;
                    Cabe.Secuencia_op_padre   = Info.Secuencia_op_padre;
                    Cabe.IdEmpresa_cxp        = Info.IdEmpresa_cxp;
                    Cabe.IdTipoCbte_cxp       = Info.IdTipoCbte_cxp;
                    Cabe.IdCbteCble_cxp       = Info.IdCbteCble_cxp;
                    Cabe.IdEmpresa_pago       = Convert.ToInt32(Info.IdEmpresa_pago);
                    Cabe.IdTipoCbte_pago      = Convert.ToInt32(Info.IdTipoCbte_pago);
                    Cabe.IdCbteCble_pago      = Convert.ToDecimal(Info.IdCbteCble_pago);
                    Cabe.MontoAplicado        = Info.MontoAplicado;
                    Cabe.SaldoAnterior        = Info.SaldoAnterior;
                    Cabe.SaldoActual          = Info.SaldoActual;
                    Cabe.Observacion          = Info.Observacion;
                    Cabe.fechaTransaccion     = DateTime.Now;
                    Context.cp_orden_pago_cancelaciones.Add(Cabe);

                    var op = Context.cp_orden_pago.Where(q => q.IdEmpresa == Info.IdEmpresa && q.IdOrdenPago == Info.IdOrdenPago_op).FirstOrDefault();
                    if (op != null)
                    {
                        op.IdEstadoAprobacion = "APRO";
                        var op_det = Context.cp_orden_pago_det.Where(q => q.IdEmpresa == Info.IdEmpresa && q.IdOrdenPago == Info.IdOrdenPago_op).ToList();
                        foreach (var item in op_det)
                        {
                            item.IdEstadoAprobacion = "APRO";
                        }
                    }

                    Context.SaveChanges();
                }
                return(true);
            }
            catch (Exception ex)
            {
                string arreglo = ToString();
                tb_sis_Log_Error_Vzen_Data oDataLog      = new tb_sis_Log_Error_Vzen_Data();
                tb_sis_Log_Error_Vzen_Info Log_Error_sis = new tb_sis_Log_Error_Vzen_Info(ex.ToString(), "", arreglo, "",
                                                                                          "", "", "", "", DateTime.Now);
                oDataLog.Guardar_Log_Error(Log_Error_sis, ref mensaje);
                mensaje = ex.ToString() + " " + ex.Message;
                throw new Exception(ex.ToString());
            }
        }
        public void UpdateRow(cp_orden_pago_cancelaciones_Info info_det, decimal IdTransaccionSession)
        {
            cp_orden_pago_cancelaciones_Info info = get_list(IdTransaccionSession).Where(q => q.IdOrdenPago_op == info_det.IdOrdenPago_op).FirstOrDefault();

            if (info != null)
            {
                info.MontoAplicado = info_det.MontoAplicado;
            }
        }
        public void AddRow(cp_orden_pago_cancelaciones_Info info_det)
        {
            List <cp_orden_pago_cancelaciones_Info> list = get_list();

            info_det.Secuencia = list.Count == 0 ? 1 : list.Max(q => q.Secuencia) + 1;
            if (list.Where(q => q.IdOrdenPago_op == info_det.IdOrdenPago_op).Count() == 0)
            {
                list.Add(info_det);
            }
        }
        public List <cp_orden_pago_cancelaciones_Info> Get_List_Cancelacion_x_Pagos_Anticipos(int IdEmpresa_pago, int IdTipoCbte_pago, decimal IdCbteCble_pago, ref string mensaje)
        {
            try
            {
                List <cp_orden_pago_cancelaciones_Info> Lst = new List <cp_orden_pago_cancelaciones_Info>();
                using (EntitiesCuentasxPagar cxp = new EntitiesCuentasxPagar())
                {
                    var consulta = from q in cxp.cp_orden_pago_cancelaciones
                                   where q.IdEmpresa_pago == IdEmpresa_pago &&
                                   q.IdTipoCbte_pago == IdTipoCbte_pago &&
                                   q.IdCbteCble_pago == IdCbteCble_pago
                                   select q;

                    foreach (var item in consulta)
                    {
                        cp_orden_pago_cancelaciones_Info info = new cp_orden_pago_cancelaciones_Info();

                        info.IdEmpresa            = item.IdEmpresa;
                        info.Idcancelacion        = item.Idcancelacion;
                        info.Secuencia            = item.Secuencia;
                        info.IdEmpresa_op         = item.IdEmpresa_op;
                        info.IdOrdenPago_op       = item.IdOrdenPago_op;
                        info.Secuencia_op         = item.Secuencia_op;
                        info.IdEmpresa_op_padre   = item.IdEmpresa_op_padre;
                        info.IdOrdenPago_op_padre = item.IdOrdenPago_op_padre;
                        info.Secuencia_op_padre   = item.Secuencia_op_padre;
                        info.IdEmpresa_cxp        = item.IdEmpresa_cxp;
                        info.IdTipoCbte_cxp       = item.IdTipoCbte_cxp;
                        info.IdCbteCble_cxp       = item.IdCbteCble_cxp;
                        info.IdEmpresa_pago       = item.IdEmpresa_pago;
                        info.IdTipoCbte_pago      = item.IdTipoCbte_pago;
                        info.IdCbteCble_pago      = item.IdCbteCble_pago;
                        info.MontoAplicado        = item.MontoAplicado;
                        info.SaldoAnterior        = item.SaldoAnterior;
                        info.SaldoActual          = item.SaldoActual;
                        info.Observacion          = item.Observacion;
                        info.fechaTransaccion     = item.fechaTransaccion;


                        Lst.Add(info);
                    }
                }
                return(Lst);
            }
            catch (Exception ex)
            {
                string arreglo = ToString();
                tb_sis_Log_Error_Vzen_Data oDataLog      = new tb_sis_Log_Error_Vzen_Data();
                tb_sis_Log_Error_Vzen_Info Log_Error_sis = new tb_sis_Log_Error_Vzen_Info(ex.ToString(), "", arreglo, "",
                                                                                          "", "", "", "", DateTime.Now);
                oDataLog.Guardar_Log_Error(Log_Error_sis, ref mensaje);
                mensaje = ex.ToString() + " " + ex.Message;
                throw new Exception(ex.ToString());
            }
        }
 public Boolean guardarDB(cp_orden_pago_cancelaciones_Info Info)
 {
     try
     {
         return(odata.guardarDB(Info));
     }
     catch (Exception)
     {
         throw;
     }
 }
 public Boolean GuardarDB(cp_orden_pago_cancelaciones_Info Info, int Id, ref string mensaje)
 {
     try
     {
         return(oData.GuardarDB(Info, Id, ref mensaje));
     }
     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("", "Guardar_OrdenPagoCancelacion", ex.Message), ex)
               {
                   EntityType = typeof(cp_orden_pago_cancelaciones_Bus)
               };
     }
 }
        public List <cp_orden_pago_cancelaciones_Info> Get_list_Cancelacion_x_CXP(int IdEmpresa_cxp, int IdTipoCbte_cxp, decimal IdCbteCble_cxp)
        {
            try
            {
                List <cp_orden_pago_cancelaciones_Info> Lst = new List <cp_orden_pago_cancelaciones_Info>();

                using (EntitiesCuentasxPagar cxp = new EntitiesCuentasxPagar())
                {
                    var consulta = from q in cxp.cp_orden_pago_cancelaciones
                                   where q.IdEmpresa_cxp == IdEmpresa_cxp &&
                                   q.IdTipoCbte_cxp == IdTipoCbte_cxp &&
                                   q.IdCbteCble_cxp == IdCbteCble_cxp
                                   select q;

                    foreach (var item in consulta)
                    {
                        cp_orden_pago_cancelaciones_Info info = new cp_orden_pago_cancelaciones_Info();

                        info.IdEmpresa       = item.IdEmpresa;
                        info.Idcancelacion   = item.Idcancelacion;
                        info.Secuencia       = item.Secuencia;
                        info.IdEmpresa_cxp   = item.IdEmpresa_cxp;
                        info.IdTipoCbte_cxp  = item.IdTipoCbte_cxp;
                        info.IdCbteCble_cxp  = item.IdCbteCble_cxp;
                        info.IdEmpresa_pago  = item.IdEmpresa_pago;
                        info.IdTipoCbte_pago = item.IdTipoCbte_pago;
                        info.IdCbteCble_pago = item.IdCbteCble_pago;
                        info.MontoAplicado   = Convert.ToDouble(item.MontoAplicado);
                        info.SaldoAnterior   = Convert.ToDouble(item.SaldoAnterior);
                        info.SaldoActual     = Convert.ToDouble(item.SaldoActual);

                        Lst.Add(info);
                    }
                }

                return(Lst);
            }
            catch (Exception ex)
            {
                string arreglo = ToString();
                tb_sis_Log_Error_Vzen_Data oDataLog      = new tb_sis_Log_Error_Vzen_Data();
                tb_sis_Log_Error_Vzen_Info Log_Error_sis = new tb_sis_Log_Error_Vzen_Info(ex.ToString(), "", arreglo, "",
                                                                                          "", "", "", "", DateTime.Now);
                oDataLog.Guardar_Log_Error(Log_Error_sis, ref mensaje);
                mensaje = ex.ToString() + " " + ex.Message;
                throw new Exception(ex.ToString());
            }
        }
        public List <cp_orden_pago_cancelaciones_Info> Get_List_OP_x_CbteCtble(int IdEmpresa_pago, int IdTipoCbte_pago, decimal IdCbteCble_pago, ref string mensaje)
        {
            try
            {
                List <cp_orden_pago_cancelaciones_Info> Lst = new List <cp_orden_pago_cancelaciones_Info>();
                using (EntitiesCuentasxPagar cxp = new EntitiesCuentasxPagar())
                {
                    var consulta = from q in cxp.cp_orden_pago_cancelaciones
                                   where q.IdEmpresa_pago == IdEmpresa_pago &&
                                   q.IdTipoCbte_pago == IdTipoCbte_pago &&
                                   q.IdCbteCble_pago == IdCbteCble_pago
                                   group q by new
                    {
                        q.IdEmpresa_op,
                        q.IdOrdenPago_op,
                        q.IdEmpresa_pago,
                        q.IdTipoCbte_pago,
                        q.IdCbteCble_pago
                    }
                    into gruoping
                        select new { gruoping.Key };

                    foreach (var item in consulta)
                    {
                        cp_orden_pago_cancelaciones_Info info = new cp_orden_pago_cancelaciones_Info();

                        info.IdEmpresa_op    = (item.Key.IdEmpresa_op == null) ? 0 : Convert.ToInt32(item.Key.IdEmpresa_op);
                        info.IdOrdenPago_op  = (item.Key.IdOrdenPago_op == null) ? 0 : Convert.ToDecimal(item.Key.IdOrdenPago_op);
                        info.IdEmpresa_pago  = item.Key.IdEmpresa_pago;
                        info.IdTipoCbte_pago = item.Key.IdTipoCbte_pago;
                        info.IdCbteCble_pago = item.Key.IdCbteCble_pago;

                        Lst.Add(info);
                    }
                }
                return(Lst);
            }
            catch (Exception ex)
            {
                string arreglo = ToString();
                tb_sis_Log_Error_Vzen_Data oDataLog      = new tb_sis_Log_Error_Vzen_Data();
                tb_sis_Log_Error_Vzen_Info Log_Error_sis = new tb_sis_Log_Error_Vzen_Info(ex.ToString(), "", arreglo, "", "", "", "", "", DateTime.Now);
                oDataLog.Guardar_Log_Error(Log_Error_sis, ref mensaje);
                mensaje = ex.ToString() + " " + ex.Message;
                throw new Exception(ex.ToString());
            }
        }
示例#11
0
        public ActionResult EditingUpdate_op([ModelBinder(typeof(DevExpressEditorsBinder))] cp_orden_pago_cancelaciones_Info info_det)
        {
            //var model = List_op_det.get_list(Convert.ToDecimal(SessionFixed.IdTransaccionSession));
            //if (model.Count() > 0)
            //{
            //    cp_orden_pago_cancelaciones_Info edited_info = model.Where(m => m.IdOrdenPago_op == info_det.IdOrdenPago_op).First();

            //    edited_info.MontoAplicado = info_det.MontoAplicado;
            //}
            // List_op_det.set_list(model, Convert.ToDecimal(SessionFixed.IdTransaccionSession));

            if (ModelState.IsValid)
            {
                List_op_det.UpdateRow(info_det, Convert.ToDecimal(SessionFixed.IdTransaccionSession));
            }
            var model = List_op_det.get_list(Convert.ToDecimal(SessionFixed.IdTransaccionSession));

            return(PartialView("_GridViewPartial_nota_credito_det", model));
        }
示例#12
0
 public Boolean guardarDB(cp_orden_pago_cancelaciones_Info Info)
 {
     try
     {
         using (Entities_cuentas_por_pagar Context = new Entities_cuentas_por_pagar())
         {
             cp_orden_pago_cancelaciones Entity = new cp_orden_pago_cancelaciones
             {
                 IdEmpresa            = Info.IdEmpresa,
                 Idcancelacion        = Info.Secuencia = get_id(Info.IdEmpresa),
                 Secuencia            = Info.Secuencia,
                 IdEmpresa_op         = Info.IdEmpresa_op,
                 IdOrdenPago_op       = Info.IdOrdenPago_op,
                 Secuencia_op         = Info.Secuencia_op,
                 IdEmpresa_op_padre   = Info.IdEmpresa_op_padre,
                 IdOrdenPago_op_padre = Info.IdOrdenPago_op_padre,
                 Secuencia_op_padre   = Info.Secuencia_op_padre,
                 IdEmpresa_cxp        = Info.IdEmpresa_cxp,
                 IdTipoCbte_cxp       = Info.IdTipoCbte_cxp,
                 IdCbteCble_cxp       = Info.IdCbteCble_cxp,
                 IdEmpresa_pago       = Info.IdEmpresa_pago,
                 IdTipoCbte_pago      = Info.IdTipoCbte_pago,
                 IdCbteCble_pago      = Info.IdCbteCble_pago,
                 MontoAplicado        = Info.MontoAplicado,
                 SaldoAnterior        = Info.SaldoAnterior,
                 SaldoActual          = Info.SaldoActual,
                 Observacion          = Info.Observacion,
                 fechaTransaccion     = DateTime.Now
             };
             Context.cp_orden_pago_cancelaciones.Add(Entity);
             Context.SaveChanges();
         }
         return(true);
     }
     catch (Exception e)
     {
         throw;
     }
 }
示例#13
0
        public bool ModificarBD(cp_conciliacionAnticipo_Info info)
        {
            try
            {
                using (Entities_contabilidad db_cont = new Entities_contabilidad())
                {
                    ct_cbtecble_Info info_diario = armar_info(info.Lista_det_Cbte, info.IdEmpresa, info.IdSucursal, Convert.ToInt32(info.IdTipoCbte), 0, info.Observacion, info.Fecha);
                    ct_cbtecble      Entity_cbte = db_cont.ct_cbtecble.Where(q => q.IdEmpresa == info.IdEmpresa && q.IdTipoCbte == info.IdTipoCbte && q.IdCbteCble == info.IdCbteCble).FirstOrDefault();

                    if (info_diario != null)
                    {
                        info_diario.IdCbteCble       = Convert.ToDecimal(info.IdCbteCble);
                        info_diario.IdUsuarioUltModi = info.IdUsuarioModificacion;
                        if (data_cbtecble.modificarDB(info_diario))
                        {
                            info.IdTipoCbte = info_diario.IdTipoCbte;
                            info.IdCbteCble = info_diario.IdCbteCble;
                        }
                    }
                }

                using (Entities_cuentas_por_pagar db = new Entities_cuentas_por_pagar())
                {
                    cp_ConciliacionAnticipo entity = db.cp_ConciliacionAnticipo.Where(q => q.IdConciliacion == info.IdConciliacion && q.IdEmpresa == info.IdEmpresa).FirstOrDefault();

                    if (entity == null)
                    {
                        return(false);
                    }

                    entity.IdProveedor           = info.IdProveedor;
                    entity.Fecha                 = info.Fecha;
                    entity.Observacion           = info.Observacion;
                    entity.IdSucursal            = info.IdSucursal;
                    entity.IdUsuarioModificacion = info.IdUsuarioModificacion;
                    entity.FechaModificacion     = DateTime.Now;

                    var lst_det_OP = db.cp_ConciliacionAnticipoDetAnt.Where(q => q.IdEmpresa == info.IdEmpresa && q.IdConciliacion == info.IdConciliacion).ToList();
                    db.cp_ConciliacionAnticipoDetAnt.RemoveRange(lst_det_OP);

                    var lst_det_Fact = db.cp_ConciliacionAnticipoDetCXP.Where(q => q.IdEmpresa == info.IdEmpresa && q.IdConciliacion == info.IdConciliacion).ToList();
                    db.cp_ConciliacionAnticipoDetCXP.RemoveRange(lst_det_Fact);

                    var lst_Cancelaciones = db.cp_orden_pago_cancelaciones.Where(q => q.IdEmpresa_op == info.IdEmpresa && q.IdTipoCbte_pago == info.IdTipoCbte && q.IdCbteCble_pago == info.IdCbteCble).ToList();
                    db.cp_orden_pago_cancelaciones.RemoveRange(lst_Cancelaciones);

                    if (info.Lista_det_OP != null)
                    {
                        int SecuenciaOP = 1;

                        foreach (var item in info.Lista_det_OP)
                        {
                            db.cp_ConciliacionAnticipoDetAnt.Add(new cp_ConciliacionAnticipoDetAnt
                            {
                                IdEmpresa      = info.IdEmpresa,
                                IdConciliacion = info.IdConciliacion,
                                Secuencia      = SecuenciaOP++,
                                IdOrdenPago    = item.IdOrdenPago,
                                MontoAplicado  = item.MontoAplicado
                            });
                        }
                    }

                    if (info.Lista_det_Fact != null)
                    {
                        int SecuenciaFact = 1;
                        int SecuenciaCanc = 1;

                        foreach (var item in info.Lista_det_Fact)
                        {
                            db.cp_ConciliacionAnticipoDetCXP.Add(new cp_ConciliacionAnticipoDetCXP
                            {
                                IdEmpresa       = info.IdEmpresa,
                                IdConciliacion  = info.IdConciliacion,
                                Secuencia       = SecuenciaFact++,
                                IdOrdenPago     = item.IdOrdenPago,
                                IdEmpresa_cxp   = item.IdEmpresa,
                                IdTipoCbte_cxp  = item.IdTipoCbte_cxp,
                                IdCbteCble_cxp  = item.IdCbteCble_cxp,
                                Fecha_cxp       = item.Fecha_cxp,
                                Observacion_cxp = item.Observacion_cxp,
                                MontoAplicado   = item.MontoAplicado
                            });

                            cp_orden_pago_cancelaciones_Info info_cancelacion = new cp_orden_pago_cancelaciones_Info();
                            info_cancelacion.IdEmpresa       = info.IdEmpresa;
                            info_cancelacion.Secuencia       = SecuenciaCanc++;
                            info_cancelacion.IdEmpresa_op    = item.IdEmpresa_cxp;
                            info_cancelacion.IdOrdenPago_op  = item.IdOrdenPago;
                            info_cancelacion.Secuencia_op    = 1;
                            info_cancelacion.IdEmpresa_cxp   = item.IdEmpresa_cxp;
                            info_cancelacion.IdTipoCbte_cxp  = item.IdTipoCbte_cxp;
                            info_cancelacion.IdCbteCble_cxp  = item.IdCbteCble_cxp;
                            info_cancelacion.IdEmpresa_pago  = info.IdEmpresa;
                            info_cancelacion.IdTipoCbte_pago = Convert.ToInt32(info.IdTipoCbte);
                            info_cancelacion.IdCbteCble_pago = Convert.ToInt32(info.IdCbteCble);
                            info_cancelacion.MontoAplicado   = item.MontoAplicado;
                            info_cancelacion.Observacion     = "CONCILIACION" + info.IdConciliacion;

                            data_op_cancelaciones.guardarDB(info_cancelacion);
                        }
                    }

                    db.SaveChanges();
                }
                return(true);
            }
            catch (Exception ex)
            {
                tb_LogError_Data LogData = new tb_LogError_Data();
                LogData.GuardarDB(new tb_LogError_Info {
                    Descripcion = ex.Message, InnerException = ex.InnerException == null ? null : ex.InnerException.Message, Clase = "cp_conciliacionAnticipo_Data", Metodo = "ModificarDB", IdUsuario = info.IdUsuarioCreacion
                });
                return(false);
            }
        }
示例#14
0
        public bool GuardarBD(cp_conciliacionAnticipo_Info info)
        {
            try
            {
                cp_parametros_Info info_parametros = new cp_parametros_Info();
                info_parametros = data_cp_parametro.get_info(info.IdEmpresa);

                using (Entities_contabilidad db_cont = new Entities_contabilidad())
                {
                    if (info_parametros != null && info_parametros.pa_TipoCbte_para_conci_x_antcipo != null)
                    {
                        ct_cbtecble_Info info_diario = armar_info(info.Lista_det_Cbte, info.IdEmpresa, info.IdSucursal, Convert.ToInt32(info_parametros.pa_TipoCbte_para_conci_x_antcipo), 0, info.Observacion, info.Fecha);

                        if (info_diario != null)
                        {
                            info_diario.IdUsuario = info.IdUsuarioCreacion;
                            if (data_cbtecble.guardarDB(info_diario))
                            {
                                info.IdTipoCbte = info_diario.IdTipoCbte;
                                info.IdCbteCble = info_diario.IdCbteCble;
                            }
                        }
                    }
                }

                using (Entities_cuentas_por_pagar db = new Entities_cuentas_por_pagar())
                {
                    db.cp_ConciliacionAnticipo.Add(new cp_ConciliacionAnticipo
                    {
                        IdEmpresa         = info.IdEmpresa,
                        IdConciliacion    = info.IdConciliacion = get_id(info.IdEmpresa),
                        IdSucursal        = info.IdSucursal,
                        IdProveedor       = info.IdProveedor,
                        Fecha             = info.Fecha,
                        Observacion       = info.Observacion,
                        IdTipoCbte        = info.IdTipoCbte,
                        IdCbteCble        = info.IdCbteCble,
                        Estado            = true,
                        IdUsuarioCreacion = info.IdUsuarioCreacion,
                        FechaCreacion     = DateTime.Now
                    });



                    if (info.Lista_det_OP != null)
                    {
                        int SecuenciaOP = 1;

                        foreach (var item in info.Lista_det_OP)
                        {
                            db.cp_ConciliacionAnticipoDetAnt.Add(new cp_ConciliacionAnticipoDetAnt
                            {
                                IdEmpresa      = info.IdEmpresa,
                                IdConciliacion = info.IdConciliacion,
                                Secuencia      = SecuenciaOP++,
                                IdOrdenPago    = item.IdOrdenPago,
                                MontoAplicado  = item.MontoAplicado
                            });
                        }
                    }

                    if (info.Lista_det_Fact != null)
                    {
                        int SecuenciaFact = 1;
                        int SecuenciaCanc = 1;

                        foreach (var item in info.Lista_det_Fact)
                        {
                            db.cp_ConciliacionAnticipoDetCXP.Add(new cp_ConciliacionAnticipoDetCXP
                            {
                                IdEmpresa       = info.IdEmpresa,
                                IdConciliacion  = info.IdConciliacion,
                                Secuencia       = SecuenciaFact++,
                                IdOrdenPago     = item.IdOrdenPago,
                                IdEmpresa_cxp   = item.IdEmpresa_cxp,
                                IdTipoCbte_cxp  = item.IdTipoCbte_cxp,
                                IdCbteCble_cxp  = item.IdCbteCble_cxp,
                                Fecha_cxp       = item.Fecha_cxp,
                                Observacion_cxp = item.Observacion_cxp,
                                MontoAplicado   = item.MontoAplicado
                            });

                            cp_orden_pago_cancelaciones_Info info_cancelacion = new cp_orden_pago_cancelaciones_Info();
                            info_cancelacion.IdEmpresa       = info.IdEmpresa;
                            info_cancelacion.Secuencia       = SecuenciaCanc++;
                            info_cancelacion.IdEmpresa_op    = item.IdEmpresa_cxp;
                            info_cancelacion.IdOrdenPago_op  = item.IdOrdenPago;
                            info_cancelacion.Secuencia_op    = 1;
                            info_cancelacion.IdEmpresa_cxp   = item.IdEmpresa_cxp;
                            info_cancelacion.IdTipoCbte_cxp  = item.IdTipoCbte_cxp;
                            info_cancelacion.IdCbteCble_cxp  = item.IdCbteCble_cxp;
                            info_cancelacion.IdEmpresa_pago  = info.IdEmpresa;
                            info_cancelacion.IdTipoCbte_pago = Convert.ToInt32(info.IdTipoCbte);
                            info_cancelacion.IdCbteCble_pago = Convert.ToInt32(info.IdCbteCble);
                            info_cancelacion.MontoAplicado   = item.MontoAplicado;
                            info_cancelacion.Observacion     = "CONCILIACION" + info.IdConciliacion;

                            data_op_cancelaciones.guardarDB(info_cancelacion);
                        }
                    }

                    db.SaveChanges();
                }

                return(true);
            }
            catch (Exception ex)
            {
                eliminar(info.IdEmpresa, Convert.ToInt32(info.IdTipoCbte), Convert.ToDecimal(info.IdCbteCble));

                tb_LogError_Data LogData = new tb_LogError_Data();
                LogData.GuardarDB(new tb_LogError_Info {
                    Descripcion = ex.Message, InnerException = ex.InnerException == null ? null : ex.InnerException.Message, Clase = "cp_conciliacionAnticipo_Data", Metodo = "GuardarDB", IdUsuario = info.IdUsuarioCreacion
                });
                return(false);
            }
        }
示例#15
0
        public List <cp_nota_DebCre_Info> Get_List_nota_DebCre(int IdEmpresa, int anio, int mes)
        {
            try
            {
                List <cp_nota_DebCre_Info> lM   = new List <cp_nota_DebCre_Info>();
                EntitiesCuentasxPagar      Base = new EntitiesCuentasxPagar();
                string msg = "";


                var select_ = from T in Base.vwcp_nota_DebCre_ATS
                              where T.IdEmpresa == IdEmpresa &&
                              T.cn_fecha.Year == anio &&
                              T.cn_fecha.Month == mes &&
                              T.Estado == "A"
                              select T;

                foreach (var item in select_)
                {
                    cp_nota_DebCre_Info dat = new cp_nota_DebCre_Info();

                    dat.IdEmpresa          = item.IdEmpresa;
                    dat.IdCbteCble_Nota    = item.IdCbteCble_Nota;
                    dat.IdTipoCbte_Nota    = item.IdTipoCbte_Nota;
                    dat.IdProveedor        = item.IdProveedor;
                    dat.cn_fecha           = item.cn_fecha;
                    dat.cn_serie1          = item.cn_serie1;
                    dat.cn_serie2          = item.cn_serie2;
                    dat.cn_Nota            = item.cn_Nota;
                    dat.cn_observacion     = item.cn_observacion;
                    dat.cn_subtotal_iva    = item.cn_subtotal_iva;
                    dat.cn_subtotal_siniva = item.cn_subtotal_siniva;
                    dat.cn_baseImponible   = item.cn_baseImponible;
                    dat.cn_Por_iva         = item.cn_Por_iva;
                    dat.cn_valoriva        = item.cn_valoriva;
                    dat.IdCod_ICE          = item.IdCod_ICE;
                    dat.cn_Ice_base        = item.cn_Ice_base;
                    dat.cn_Ice_por         = item.cn_Ice_por;
                    dat.cn_Ice_valor       = item.cn_Ice_valor;
                    dat.cn_Serv_por        = item.cn_Serv_por;
                    dat.cn_Serv_valor      = item.cn_Serv_valor;
                    dat.cn_BaseSeguro      = item.cn_BaseSeguro;
                    dat.cn_total           = item.cn_total;
                    dat.cn_vaCoa           = item.cn_vaCoa;
                    dat.cn_Autorizacion    = item.cn_Autorizacion;
                    dat.IdTipoServicio     = item.IdTipoServicio;
                    dat.IdCtaCble_Acre     = item.IdCtaCble_Acre;
                    dat.IdCtaCble_IVA      = item.IdCtaCble_IVA;
                    dat.IdUsuario          = item.IdUsuario;
                    dat.Fecha_Transac      = item.Fecha_Transac;
                    dat.Estado             = item.Estado;
                    dat.IdUsuarioUltMod    = item.IdUsuarioUltMod;
                    dat.Fecha_UltMod       = item.Fecha_UltMod;
                    dat.IdUsuarioUltAnu    = item.IdUsuarioUltAnu;
                    dat.MotivoAnu          = item.MotivoAnu;
                    dat.nom_pc             = item.nom_pc;
                    dat.ip                   = item.ip;
                    dat.Fecha_UltAnu         = item.Fecha_UltAnu;
                    dat.IdCbteCble_Anulacion = item.IdCbteCble_Anulacion;
                    dat.IdTipoCbte_Anulacion = item.IdTipoCbte_Anulacion;
                    dat.cn_tipoLocacion      = item.cn_tipoLocacion;
                    dat.IdCentroCosto        = item.IdCentroCosto;
                    dat.IdSucursal           = item.IdSucursal;
                    dat.IdTipoFlujo          = item.IdTipoFlujo;

                    dat.DebCre = (item.DebCre == "C") ? "Credito" : "Debito";

                    dat.IdIden_credito = item.IdIden_credito;
                    dat.IdTipoNota     = item.IdTipoNota;

                    dat.cn_Autorizacion_Imprenta = null;
                    dat.PagoLocExt          = item.PagoLocExt;
                    dat.PaisPago            = item.PaisPago;
                    dat.ConvenioTributacion = item.ConvenioTributacion;
                    dat.PagoSujetoRetencion = item.PagoSujetoRetencion;

                    dat.fecha_autorizacion = Convert.ToDateTime(item.fecha_autorizacion);

                    dat.Num_Nota = "NT" + item.DebCre + "#:" + item.cn_serie1 + "-" + item.cn_serie2 + "-" + item.cn_Nota;

                    dat.cn_Fecha_vcto = item.cn_Fecha_vcto;

                    dat.InfoProveedor.IdProveedor = item.IdProveedor;

                    dat.InfoProveedor.Persona_Info.IdTipoDocumento = item.IdTipoDocumento;
                    dat.InfoProveedor.Persona_Info.pe_cedulaRuc    = item.pe_cedulaRuc;
                    dat.InfoProveedor.Persona_Info.pe_Naturaleza   = item.pe_Naturaleza;
                    dat.InfoProveedor.Persona_Info.pe_razonSocial  = item.pe_razonSocial;


                    cp_orden_pago_cancelaciones_Data Odata_can  = new cp_orden_pago_cancelaciones_Data();
                    cp_orden_pago_cancelaciones_Info Info_cance = new cp_orden_pago_cancelaciones_Info();
                    Info_cance = Odata_can.Get_list_Cancelacion_x_Pagos(dat.IdEmpresa, dat.IdTipoCbte_Nota, dat.IdCbteCble_Nota, ref msg).FirstOrDefault();
                    if (Info_cance != null)
                    {
                        cp_orden_giro_Data OG_data = new cp_orden_giro_Data();
                        cp_orden_giro_Info Info_Og = new cp_orden_giro_Info();
                        Info_Og = OG_data.Get_Info_orden_giro(Convert.ToInt32(Info_cance.IdEmpresa_cxp), Convert.ToInt32(Info_cance.IdTipoCbte_cxp), Convert.ToDecimal(Info_cance.IdCbteCble_cxp));

                        if (Info_Og.IdEmpresa != 0)
                        {
                            dat.docModificado         = Info_Og.IdOrden_giro_Tipo;
                            dat.estabModificado       = Info_Og.co_serie.Substring(0, 3);
                            dat.ptoEmiModificado      = Info_Og.co_serie.Substring(4, 3);
                            dat.secModificado         = Info_Og.co_factura;
                            dat.autModificado         = Info_Og.Num_Autorizacion;
                            dat.cn_num_doc_modificado = Info_Og.co_factura;
                        }
                        lM.Add(dat);
                    }
                }
                return(lM);
            }
            catch (Exception ex)
            {
                string arreglo = ToString();
                tb_sis_Log_Error_Vzen_Data oDataLog      = new tb_sis_Log_Error_Vzen_Data();
                tb_sis_Log_Error_Vzen_Info Log_Error_sis = new tb_sis_Log_Error_Vzen_Info(ex.ToString(), "", arreglo, "", "", "", "", "", DateTime.Now);
                oDataLog.Guardar_Log_Error(Log_Error_sis, ref mensaje);
                mensaje = ex.ToString() + " " + ex.Message;
                throw new Exception(ex.ToString());
            }
        }
示例#16
0
        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)
                      };
            }
        }