Пример #1
0
        private RECIBO liquidarCuota()
        {
            RECIBO recibo;

            wsServiciosLIQUIDACION.LIQUIDACION_DETALLE[] lstDetalles = new wsServiciosLIQUIDACION.LIQUIDACION_DETALLE[1];
            if (grdCuotas.Rows != null && grdCuotas.Rows.Count > 0 && grdCuotas.SelectedRows != null && grdCuotas.SelectedRows.Count > 0 &&
                view_myCliente != null && view_myCliente.ID > 0)
            {
                if (grdCuotas.SelectedRows[0].Cells["NUMERO_RECIBO"].Value != null &&
                    String.IsNullOrEmpty(grdCuotas.SelectedRows[0].Cells["NUMERO_RECIBO"].Value.ToString()) || String.IsNullOrWhiteSpace(grdCuotas.SelectedRows[0].Cells["NUMERO_RECIBO"].Value.ToString()))
                {
                    //***********************************************************************
                    String sql =
                        @"SELECT 
                        TARIFA_DETALLE.ID
                        FROM
                        TARIFA_DETALLE
                        INNER JOIN TARIFA_CONCEPTO ON (TARIFA_DETALLE.ID_TARIFA_CONCEPTO = TARIFA_CONCEPTO.ID)
                        WHERE 
                        TARIFA_CONCEPTO.NOMBRE = 'CUOTA ACUERDO PAGO'";
                    DataSet ds = serviciosSQL.consultaSQL(sql, "id");
                    if (ds != null && ds.Tables != null && ds.Tables["id"] != null && ds.Tables["id"].Rows.Count > 0)
                    {
                        wsServiciosLIQUIDACION.LIQUIDACION_DETALLE detalle = new wsServiciosLIQUIDACION.LIQUIDACION_DETALLE();
                        detalle.ID_TARIFA_DETALLE = int.Parse(ds.Tables["id"].Rows[0][0].ToString());
                        detalle.VALOR_CONCEPTO    = float.Parse(grdCuotas.SelectedRows[0].Cells["VALOR"].Value.ToString());
                        lstDetalles[0]            = detalle;
                        //************************************************************************
                        wsServiciosLIQUIDACION.LIQUIDACION liquidacion = new wsServiciosLIQUIDACION.LIQUIDACION();
                        liquidacion.ID_CLIENTE = view_myCliente.ID;
                        TIPO_LIQUIDACION tipo = new TIPO_LIQUIDACION();
                        tipo.TIPO = "AP";
                        tipo      = serviciosTIPO_LIQUIDACION.buscarPrimeroTIPO_LIQUIDACION(tipo);
                        if (tipo != null && tipo.ID > 0)
                        {
                            liquidacion.ID_TIPO_LIQUIDACION = tipo.ID;
                        }
                        liquidacion.TOTAL = float.Parse(grdCuotas.SelectedRows[0].Cells["VALOR"].Value.ToString());

                        var clienteSerializado = JsonConvert.SerializeObject(view_myCliente);
                        wsServiciosLIQUIDACION.VIEW_CLIENTE clienteDesserializado = JsonConvert.DeserializeObject <wsServiciosLIQUIDACION.VIEW_CLIENTE>(clienteSerializado);

                        liquidacion = serviciosLIQUIDACION.crearMultipleLIQUIDACION_2(liquidacion, lstDetalles, clienteDesserializado);
                        if (liquidacion != null && liquidacion.ID > 0)
                        {
                            WSServiciosRECIBO.ServiciosRECIBO servicio = new WSServiciosRECIBO.ServiciosRECIBO();

                            var liquidacionSerializado = JsonConvert.SerializeObject(liquidacion);
                            WSServiciosRECIBO.LIQUIDACION liquidacionDesserializado = JsonConvert.DeserializeObject <WSServiciosRECIBO.LIQUIDACION>(liquidacionSerializado);

                            WSServiciosRECIBO.LIQUIDACION_DETALLE[] lstLiquidacionDetalle = new WSServiciosRECIBO.LIQUIDACION_DETALLE[1];
                            var detalleSerializado = JsonConvert.SerializeObject(lstDetalles[0]);
                            WSServiciosRECIBO.LIQUIDACION_DETALLE detalleDesserializado = JsonConvert.DeserializeObject <WSServiciosRECIBO.LIQUIDACION_DETALLE>(detalleSerializado);
                            lstLiquidacionDetalle[0] = detalleDesserializado;

                            clienteSerializado = JsonConvert.SerializeObject(clienteDesserializado);
                            WSServiciosRECIBO.VIEW_CLIENTE clienteTmp = JsonConvert.DeserializeObject <WSServiciosRECIBO.VIEW_CLIENTE>(clienteSerializado);

                            recibo = servicio.generarRECIBO(liquidacionDesserializado, lstLiquidacionDetalle, clienteTmp);
                            if (recibo != null && recibo.ID > 0)
                            {
                                MessageBox.Show("Liquidación realizada correctamente", "Liquidación correcta", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                return(recibo);
                            }
                            else
                            {
                                MessageBox.Show("Ocurrio algún problema y la liquidación fue incorrecta", "Liquidación incorrecta", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                return(null);
                            }
                        }
                        else
                        {
                            MessageBox.Show("Ocurrio un error desconocido y la liquidación no se realizó correctamente", "Liquidación incorrecta", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            return(null);
                        }
                    }
                    else
                    {
                        MessageBox.Show("La liquidación no puede continuar ya que no se a configurado el concepto y el detalle de la tarifa para CUOTA ACUERDO PAGO", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return(null);
                    }
                }
                else
                {
                    if (grdCuotas.SelectedRows[0].Cells["NUMERO_RECIBO"].Value != null &&
                        !String.IsNullOrEmpty(grdCuotas.SelectedRows[0].Cells["NUMERO_RECIBO"].Value.ToString()) &&
                        !String.IsNullOrWhiteSpace(grdCuotas.SelectedRows[0].Cells["NUMERO_RECIBO"].Value.ToString()))
                    {
                        recibo = new RECIBO();
                        recibo.NUMERO_RECIBO = grdCuotas.SelectedRows[0].Cells["NUMERO_RECIBO"].Value.ToString();
                        recibo = serviciosRECIBO.buscarPrimeroRECIBO(recibo);
                        return(recibo);
                    }
                    else
                    {
                        return(null);
                    }
                }
            }
            else
            {
                MessageBox.Show("No se seleccionó ningúna cuota de la lista", "Seleccione una cuota", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return(null);
            }
        }
Пример #2
0
        private void liquidar()
        {
            try
            {
                frmTipoLiquidacion frm = new frmTipoLiquidacion();
                if (frm.ShowDialog(this) == DialogResult.Yes)//Pago total
                {
                    wsServiciosLIQUIDACION.LIQUIDACION_DETALLE[] lstDetalles = new wsServiciosLIQUIDACION.LIQUIDACION_DETALLE[grdDatos.Rows.Count];
                    if (grdDatos.Rows != null && grdDatos.Rows.Count > 0 &&
                        myCliente != null && myCliente.ID > 0)
                    {
                        for (int i = 0; i < grdDatos.Rows.Count; i++)
                        {
                            wsServiciosLIQUIDACION.LIQUIDACION_DETALLE detalle = new wsServiciosLIQUIDACION.LIQUIDACION_DETALLE();
                            detalle.ID_TARIFA_DETALLE = int.Parse(grdDatos.Rows[i].Cells["ID_TARIFADETALLE"].Value.ToString());
                            detalle.VALOR_CONCEPTO    = float.Parse(grdDatos.Rows[i].Cells["VALOR"].Value.ToString());
                            lstDetalles[i]            = detalle;
                        }
                        wsServiciosLIQUIDACION.LIQUIDACION liquidacion = new wsServiciosLIQUIDACION.LIQUIDACION();
                        liquidacion.ID_CLIENTE = myCliente.ID;
                        TIPO_LIQUIDACION tipo = new TIPO_LIQUIDACION();
                        tipo.TIPO = "PT";
                        tipo      = serviciosTIPO_LIQUIDACION.buscarPrimeroTIPO_LIQUIDACION(tipo);
                        if (tipo != null && tipo.ID > 0)
                        {
                            liquidacion.ID_TIPO_LIQUIDACION = tipo.ID;
                        }
                        liquidacion.TOTAL = total;

                        wsServiciosLIQUIDACION.VIEW_CLIENTE tmpCliente = new wsServiciosLIQUIDACION.VIEW_CLIENTE();
                        tmpCliente.ID               = myCliente.ID;
                        tmpCliente.TIPO_DOCUMENTO   = myCliente.TIPO_DOCUMENTO;
                        tmpCliente.IDENTIFICACION   = myCliente.IDENTIFICACION;
                        tmpCliente.NOMBRES          = myCliente.NOMBRES;
                        tmpCliente.APELLIDOS        = myCliente.APELLIDOS;
                        tmpCliente.DIRECCION        = myCliente.DIRECCION;
                        tmpCliente.CIUDAD           = myCliente.CIUDAD;
                        tmpCliente.DEPARTAMENTO     = myCliente.DEPARTAMENTO;
                        tmpCliente.GENERO           = myCliente.GENERO;
                        tmpCliente.TELEFONO         = myCliente.TELEFONO;
                        tmpCliente.CELULAR          = myCliente.CELULAR;
                        tmpCliente.CORREO           = myCliente.CORREO;
                        tmpCliente.FECHA_NACIMIENTO = myCliente.FECHA_NACIMIENTO;

                        liquidacion = serviciosLIQUIDACION.crearMultipleLIQUIDACION_2(liquidacion, lstDetalles, tmpCliente);
                        if (liquidacion != null && liquidacion.ID > 0)
                        {
                            WSServiciosRECIBO.ServiciosRECIBO servicio = new WSServiciosRECIBO.ServiciosRECIBO();

                            var liquidacionSerializado = JsonConvert.SerializeObject(liquidacion);
                            WSServiciosRECIBO.LIQUIDACION liquidacionDesserializado = JsonConvert.DeserializeObject <WSServiciosRECIBO.LIQUIDACION> (liquidacionSerializado);

                            WSServiciosRECIBO.LIQUIDACION_DETALLE[] lstLiquidacionDetalle = new WSServiciosRECIBO.LIQUIDACION_DETALLE[lstDetalles.Length];
                            int i = 0;
                            foreach (wsServiciosLIQUIDACION.LIQUIDACION_DETALLE item in lstDetalles)
                            {
                                var detalleSerializado = JsonConvert.SerializeObject(item);
                                WSServiciosRECIBO.LIQUIDACION_DETALLE detalleDesserializado = JsonConvert.DeserializeObject <WSServiciosRECIBO.LIQUIDACION_DETALLE>(detalleSerializado);
                                lstLiquidacionDetalle[i] = detalleDesserializado;
                                i++;
                            }

                            var clienteSerializado = JsonConvert.SerializeObject(tmpCliente);
                            WSServiciosRECIBO.VIEW_CLIENTE clienteDesserializado = JsonConvert.DeserializeObject <WSServiciosRECIBO.VIEW_CLIENTE>(clienteSerializado);

                            recibo = servicio.generarRECIBO(liquidacionDesserializado, lstLiquidacionDetalle, clienteDesserializado);
                            if (recibo != null && recibo.ID > 0)
                            {
                                btnLiquidar.Enabled  = false;
                                lblNumRecibo.Text    = recibo.NUMERO_RECIBO;
                                btnVerRecibo.Enabled = true;
                                MessageBox.Show("Liquidación realizada correctamente", "Liquidación correcta", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            }
                            else
                            {
                                btnLiquidar.Enabled  = true;
                                lblNumRecibo.Text    = "#";
                                btnVerRecibo.Enabled = false;
                                MessageBox.Show("Ocurrio algún problema y la liquidación fue incorrecta", "Liquidación incorrecta", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            }
                        }
                        else
                        {
                            MessageBox.Show("Ocurrio un error desconocido y la liquidación no se realizó correctamente", "Liquidación incorrecta", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                    }
                }
                else//Acuerdo Pago
                {
                    wsServiciosLIQUIDACION.LIQUIDACION_DETALLE[] lstDetalles = new wsServiciosLIQUIDACION.LIQUIDACION_DETALLE[grdDatos.Rows.Count];
                    if (grdDatos.Rows != null && grdDatos.Rows.Count > 0 &&
                        myCliente != null && myCliente.ID > 0)
                    {
                        for (int i = 0; i < grdDatos.Rows.Count; i++)
                        {
                            wsServiciosLIQUIDACION.LIQUIDACION_DETALLE detalle = new wsServiciosLIQUIDACION.LIQUIDACION_DETALLE();
                            detalle.ID_TARIFA_DETALLE = int.Parse(grdDatos.Rows[i].Cells["ID_TARIFADETALLE"].Value.ToString());
                            detalle.VALOR_CONCEPTO    = float.Parse(grdDatos.Rows[i].Cells["VALOR"].Value.ToString());
                            lstDetalles[i]            = detalle;
                        }
                        wsServiciosLIQUIDACION.LIQUIDACION liquidacion = new wsServiciosLIQUIDACION.LIQUIDACION();
                        liquidacion.ID_CLIENTE = myCliente.ID;
                        TIPO_LIQUIDACION tipo = new TIPO_LIQUIDACION();
                        tipo.TIPO = "AP";
                        tipo      = serviciosTIPO_LIQUIDACION.buscarPrimeroTIPO_LIQUIDACION(tipo);
                        if (tipo != null && tipo.ID > 0)
                        {
                            liquidacion.ID_TIPO_LIQUIDACION = tipo.ID;
                        }
                        liquidacion.TOTAL = total;

                        wsServiciosLIQUIDACION.VIEW_CLIENTE tmpCliente = new wsServiciosLIQUIDACION.VIEW_CLIENTE();
                        tmpCliente.ID               = myCliente.ID;
                        tmpCliente.TIPO_DOCUMENTO   = myCliente.TIPO_DOCUMENTO;
                        tmpCliente.IDENTIFICACION   = myCliente.IDENTIFICACION;
                        tmpCliente.NOMBRES          = myCliente.NOMBRES;
                        tmpCliente.APELLIDOS        = myCliente.APELLIDOS;
                        tmpCliente.DIRECCION        = myCliente.DIRECCION;
                        tmpCliente.CIUDAD           = myCliente.CIUDAD;
                        tmpCliente.DEPARTAMENTO     = myCliente.DEPARTAMENTO;
                        tmpCliente.GENERO           = myCliente.GENERO;
                        tmpCliente.TELEFONO         = myCliente.TELEFONO;
                        tmpCliente.CELULAR          = myCliente.CELULAR;
                        tmpCliente.CORREO           = myCliente.CORREO;
                        tmpCliente.FECHA_NACIMIENTO = myCliente.FECHA_NACIMIENTO;

                        liquidacion = serviciosLIQUIDACION.crearMultipleLIQUIDACION_2(liquidacion, lstDetalles, tmpCliente);
                        if (liquidacion != null && liquidacion.ID > 0)
                        {
                            frmBuscarLiquidacion buscarLiquidacion = new frmBuscarLiquidacion(myCliente);
                            buscarLiquidacion.ShowDialog(this);
                        }
                        else
                        {
                            MessageBox.Show("Ocurrio un error desconocido y la liquidación no se realizó correctamente", "Liquidación incorrecta", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                    }
                }
            }
            catch (Exception exp)
            {
            }
        }